Jak mrugać bez użycia funkcji opóźnienia w Arduino

Jak mrugać bez użycia funkcji opóźnienia w Arduino
Blink bezzw. Dlaczego więc istnieje potrzeba wykonania projektu bez opóźnienia () funkcji mrugających diod LED? W tym artykule spróbujemy ustalić odpowiedź na to pytanie i omówimy metodę, za pomocą której możemy mrugać bez użycia funkcji opóźnienia () w Arduino.

Dlaczego musimy mrugać bez użycia funkcji opóźnienia () w Arduino

Funkcja opóźnienia () powoduje opóźnienie określonego czasu w wykonywaniu instrukcji lub możemy powiedzieć, że funkcja opóźnienia () zatrzymuje cały program i żadna instrukcja nie zostanie wykonana, dopóki opóźnienie () nie zakończy się.

Oznacza to, że nie możemy wykonać żadnego innego zadania, dopóki opóźnienie nie zostanie zakończone, jest to główna troska, dlaczego czasami zniechęca się do użycia funkcji opóźnienia (). Zastanówmy się nad przykładem kuriera, on idzie do domu i nie znajduje nikogo w domu, jak powiedzieli sąsiedzi, zainteresowana osoba wróci do swojego domu za godzinę. Co powinien zrobić kurier? Albo może poczekać, albo dostarczyć paczki sąsiednich klientów i wrócić po godzinie, aby dostarczyć działkę tej osoby.

Podobnie w programowaniu nie zalecamy korzystania z funkcji opóźnienia () i zatrzymywania całego programu przez pewien czas, zamiast tego wolimy wykonywać inne zadanie, podczas gdy mrugnięcie diody LED.

Mrugnij bez użycia kodu funkcji opóźnienia () w Arduino

W Arduino możemy mrugnąć diodami LED bez użycia funkcji opóźnienia () przez bardzo prosty kod. Przed przejściem przez kod wyjaśnijmy cel niektórych wbudowanych funkcji, które są używane w kodzie:

Funkcje Zamiar
pinmode () Ta funkcja służy do zdefiniowania konkretnego PIN do działania jako wyjście lub wejściu
DigitalWrite () Ta funkcja służy do konfigurowania styku według stanów wysokich lub niskich
Seryjny.zaczynać() Ta funkcja jest używana do komunikacji szeregowej
Millis () Ta funkcja służy do wyodrębnienia czasu wykonywania kodu w milisekundach

Rozważ następujący kod:

int LED = 13;
int x = 1;
niepodpisany długi D1, D2;
void setup ()
pinmode (LED, wyjście);
DigitalWrite (LED, 1);
Seryjny.rozpocząć (9600);

void Loop ()
d2 = millis ();
if (d2-d1> = 1000)
x = 1-x;
D1 = Millis ();
DigitalWrite (LED, x);

Wyjaśnienie powyższego kodu to:

  • Zdefiniowaliśmy zmienną „x” z typem danych liczb całkowitych i zostanie ona użyta do zmiany stanu diody LED.
  • Definiujemy również zmienną LED z typem danych liczb całkowitych i przechowujemy w nim 13. Ten 13 zostanie użyty do trzynastu pinu Arduino.
  • Dwie zmienne D1 i D2 są zdefiniowane za pomocą niepodpisanego typu danych. „Niepodpisany długi” typ danych służy do przechowywania 32 bitów liczby i może przechowywać do 4 294 967 295 liczb, a rzeczą, aby stwierdzić, że ten typ danych nie przechowuje w nim liczb ujemnych.
  • W void setup () najpierw używamy funkcji pinmode () i deklarujemy pin 13 jako pin wyjściowy.
  • Następnie użyliśmy funkcji DigitalWrite (), aby uczynić stan PIN 13 wysoki.
  • Na koniec wykorzystaliśmy komunikację seryjną według szybkości transmisji 9600.
  • W Void Loop () wpisujemy kod mrugania diod LED, ponieważ chcemy go powtórzyć przez nieskończony okres.
  • Wyodręgamy czas wykonywania kodu do tej pory i przechowujemy wartość w zmiennej D2.
  • Następnie za pomocą instrukcji IF sprawdziliśmy warunek, jeśli (d2-d1> 1000), jeśli jest to prawdą, zmieni wartość x.
  • Następnie przechowujemy drugą wartość wykonywania kodu w D1.
  • Wreszcie, używając funkcji DigitalWrite (), zmieniło stan diody LED za pomocą wartości x.
  • Będzie to trwało przez czas nieskończony (ponieważ wartość D2-D1 w żadnym przypadku nie będzie większa niż 1000).

Symulacja

Będziemy uruchomić ten kod w symulacji Proteus, otworzymy Proteus i znajdziemy następujące składniki:

  1. Arduino Uno R3
  2. PROWADZONY
  3. Rezystor
  4. Grunt

Podłącz jeden zacisk rezystora z pinem 13 Arduino, podłącz dodatni zacisk diody LED z drugim zaciskiem rezystora i podłącz ziemię z ujemnym zaciskiem LED LED. Po zakończeniu obwodu kliknij dwukrotnie Arduino i prześlij w nim plik „sześciokątny” kodu Arduino.

Zagraj w projekt, a dioda LED zacznie migać, jak pokazano poniżej:

Konfiguracja sprzętu

Ten sam obwód, który jest symulowany na proteusie, zostanie złożony na tablicy chleba. Użyliśmy przewodów skoczków do podłączenia komponentów, które są LED, Arduino i rezystor:

Czarny drut zworki jest podłączony do ziemi Arduino i ujemnego zacisku diody LED. Następnie rezystor (220 omów) jest podłączony do dodatniego zaciska. Kod jest już przesłany na Arduino, działanie projektu jest:

LED z powodzeniem miga bez użycia funkcji opóźnienia ().

Wniosek

Funkcja Blink bezzw. Bez użycia funkcji opóźnienia () nie jesteśmy ograniczeni do jednego zadania i możemy uruchomić inne instrukcje kodu. W tym zapisie wyjaśniliśmy funkcję mrugnięcia bez opóźnienia () w Arduino za pomocą demonstracji jej symulacji, a także konfiguracji sprzętowej.