02 Szkielet programu Arduino, podłączamy LED

Każdy program komputerowy jest zbiorem rozkazów. Dedykowany układ zwany licznikiem rozkazów wywołuje kolejne rozkazy jeden po drugim. W Arduino pewne sprawy są uproszczone. Otóż w każdym programie najpierw niektóre instrukcje wykonują się jednorazowo (viod setup), a następnie inne, wykonują się w pętli (void loop). Symbolami // oznaczamy komentarze. Czyli informacje mieszczące się w jednej linijce, które pomagają człowiekowi w zrozumieniu programu. Podczas kompilacji zostają one pominięte. Jeśli chcemy umieścić dłuższy komentarz, to należy zawrzeć go /* w takich symbolach */.

W praktyce pierwsza funkcja (setup) będzie zawierała najczęściej pewne ustawienia. Dzięki nim dane piny mikrokontrolera będą ustawione jako wejścia lub wyjścia. Uruchomimy bardziej zaawansowane peryferia oraz wykonamy akcje, które mają dziać się tylko raz, po włączeniu zasilania.

W drugiej funkcji (loop) umieścimy właściwy kod aplikacji, który będzie wykonywał się cały czas (w pętli).

Podłączamy diodę LED wg poniższego schematu:



i piszemy pierwszy program:

Funkcja pinMode(Pin, Tryb) umożliwia wybranie, czy dany pin jest wejściem, czy wyjściem. Pin może być liczbą całkowitą z zakresu od 0 do 13, zaś Tryb to:
  • OUTPUT [ang. WYJŚCIE] - ustawia pin jako wyjście
  • INPUT [ang. WEJŚCIE] - ustawia pin jako wejście
  • INPUT_PULLUP [ang. WEJŚCIE_Z_PODCIĄGNIĘCIEM] - ustawia pin jako wejście z domyślnym stanem HIGH. Stan zmienia podłączenie wejścia do GND.
Dzięki takiej konfiguracji możemy ustawić stan logiczny na wyjściu (i dzięki temu włączyć diodę). Do tego celu służy funkcja digitalWrite(Pin, Stan). Stan jest stanem logicznym, który może być HIGH bądź LOW (wysoki bądź niski).

W naszym przykładzie dioda została już podłączona do masy, dlatego Arduino musi doprowadzić do niej stan wysoki stąd digitalWrite(8, HIGH);.

Każdy rozkaz kończymy średnikiem!

Po jednorazowym ustawieniu pinu w stan wysoki jego wartość nie zmieni się do momentu, gdy sami ustawimy mu inną wartość. W związku z tym, program taki jak powyższy sprawi, że dioda będzie świeciła się cały czas.



Opóźnienia w programie (miganie diodą)
Tym razem dioda będzie migać. Do tego potrzebna jest nowa funkcja, której zadaniem będzie wprowadzanie opóźnienia – delay. Schemat połączeń jest dokładnie taki sam jak w pierwszym przypadku. Kod poniżej:

Stan wyjścia zmienia się tu cały czas w pętli nieskończonej. W programie zostały dodane opóźnienia z pomocą funkcji delay(Czas) (dzięki temu miganie jest widoczne). Funkcja ta jako argument przyjmuje liczbę milisekund, jakie mają zostać przeczekane.

Bez wprowadzonych opóźnień układ zmieniał by stan swojego wyjścia tak szybko, że zauważenie zmian gołym okiem byłoby niemożliwe. Możesz przeprowadzić taki eksperyment ustawiając opóźnienie na 0ms

Zadanie 1.
Sprawdź przy jakiej najmniejszej wartości opóźnień będziesz w stanie zauważyć miganie diody! Co stanie się, gdy dioda będzie migała zbyt szybko?

Zadanie 2.
Wybierz wolny pin i podłącz do niego drugą diodę. Napisz program, który sprawi, że obie diody będą migały na zmianę. Zapisz program pod nazwą prog_01c,

Zadanie 3.
Napisz program, który zapala kolejno 4 diody LED jak na filmie poniżej.

*** tutaj będzie film ***

Zadanie 4.
Napisz program sterujący światłami na przejściu dla pieszych jak poniżej.





Część informacji pochodzi ze strony http://forbot.pl/blog/