Dodaj produkty podając kody
Licznik w mikrokontrolerze
Założę się, że spotkałeś się w swoich projektach z taką sytuacją, że potrzebowałeś, aby jakaś część Twojego kodu wykonała się określoną przez Ciebie ilość razy i dopiero gdy wykona się odpowiednia ilość powtórzeń, Arduino wykona kolejną czynność. Nawet w życiu codziennym nieświadomie spotykałeś się z tego typu sytuacjami. Przykład? Proszę bardzo. Rodzice mówili Ci nie raz, abyś zastanowił się trzy razy, zanim coś zrobisz. Odzwierciedleniem tych słów w języku, w którym piszesz programy, na Arduino są funkcje "if" oraz "for". Zobacz jak prosto zaprogramować licznik w mikrokontrolerze.
Licznik w mikrokontrolerze — wykorzystane elementy
Pięciokrotny blink
Załóżmy, że wykonujesz swój nowy projekt i potrzebujesz, aby czerwona dioda LED pięć razy zapaliła się i zagasła, a następnie zaczekała dwie sekundy, zanim znów pięciokrotnie mignie. Początkujący zapewne rozwiązaliby ten problem w taki sposób:
digitalWrite (dioda, HIGH);
delay (500);
digitalWrite (dioda, LOW);
delay (500);
…
I tak pięć razy
…
delay (2000);
Sprawi to, że Twój kod nie będzie przejrzysty i będzie o wiele, wiele za długi. Wyobraź sobie, co by było gdyby dioda miała zabłysnąć 100 lub 1000 razy! W takim wypadku kod miałby kilkaset linijek, a wystarczyłoby tylko zastosować funkcję "if"...
Przykład funkcji "if" (jeżeli)
void loop()
{
digitalWrite (dioda, HIGH);
delay(500);
digitalWrite (dioda, LOW);
delay(500);
blysk++;
if (blysk == 5)
{
delay(2000);
blysk = 0;
}
}
Powyższy przykład będzie działał w następujący sposób:
- Zapal diodę
- Odczekaj 0,5 sekundy
- Zgaś diodę
- Odczekaj 0,5 sekundy
- Dodaj wartość 1 do zmiennej "blysk"
- Jeżeli wartość zmiennej "blysk" będzie równa 5, to wykonaj, polecenie w nawiasie klamrowym (zaczekaj 2 sekundy)
- Przypisz wartość 0 zmiennej "blysk"
Licznik w mikrokontrolerze — drobny upgrade
Rozbudujmy od razu nasz projekt, dodając kolejną diodę LED oraz kilka linijek kodu. Stworzymy również własną funkcję o nazwie "red". Czy rozumiesz działanie poniższego kodu? Jeżeli niezbyt, to nie masz się czym przejmować, wszystko Ci wyjaśnię.
void loop() {
for (licznik1 = 0; licznik1 < 5; licznik1++)
{
red();
}
if (licznik1 == 5)
{
licznik1 = 0;
}
}
void red() {
digitalWrite(czerwony, HIGH);
delay(100);
digitalWrite(czerwony, LOW);
delay(100);
}
- Do zmiennej "licznik1" o wartości 0 dodaj wartość 1 do momentu, gdy ta wartość osiągnie wartość 5
- Jeżeli wartość się powiększy, to wykonaj funkcję "red"
- Jeżeli zmienna "licznik1" osiągnie wartość 5 to wykonaj zadanie w nawiasie klamrowym
- Przypisz zmiennej "licznik1" wartość 0
Reszta kodu powinna być dla Ciebie zrozumiała. Możesz go pobrać i pozmieniać wartości zmiennych, aby lepiej zrozumieć jego działanie. Kliknij ten link, aby przejść do strony z kodami. Zerknij na filmik z działaniem układu.
Licznik w mikrokontrolerze — podsumowanie
Zapoznałeś się z podstawowymi elementami kodu, które będą Ci potrzebne do budowy bardziej zaawansowanych szkiców, a co za tym idzie — projektów. Wiesz już, że można tworzyć oddzielne funkcje o dowolnych nazwach, aby Twój kod był o wiele bardziej przejrzysty. Dodaj kilka elementów na płytce prototypowej i dokonaj własnych zmian w kodzie. Jeżeli masz jakieś pytania lub uwagi — pisz w komentarzu.