Prosta aplikacja na Arduino – sterownik linijki LED

Po zmontowaniu układu zgodnie z rysunkiem 3 należy go dołączyć do komputera osobistego kablem USB i można rozpocząć eksperymenty z programem. Na listingu 2 pokazano program pozwalający uzyskać efekt przesuwającego się punktu świetlnego.

 

Listing 2. Program sterujący linijką diod LED dla układu pokazanego na fot. 4 (prog_01.ino)

W pierwszych dwóch liniach programu, wykorzystując dyrektywę preprocesora #define, zdefiniowano dwie stałe: LED_POCZ i LED_KON o wartościach odpowiednio 2 i 9. Diody LED są dołączone do linii we/wy Arduino Uno o numerach: 2, 3, 4, 5, 6, 7, 8 i 9. W funkcji setup() linie te są ustawiane w tryb wyjściowy za pomocą funkcji:

Zdefiniowane stałe LED_POCZ i LED_KON odpowiadają pierwszej i ostatniej wykorzystywanej linii we/wy. W programie dostęp do tych linii jest realizowany za pomocą pętli for, która dla zwiększenia czytelności programu wykorzystuje te stałe:

Po ustawieniu wymaganej konfiguracji linii we/wy pożądany efekt, czyli przesuwający się punkt świetlny, uzyskuje się w pętli:

W każdej iteracji powyższej pętli jest zapalana kolejna dioda LED. Każda dioda świeci się przez 200 ms. Zmieniając wartość funkcji delay() można łatwo zmienić szybkość przesuwania się punktu świetlnego.

 

W tym miejscu warto zauważyć, że zmiana linii we/wy, do których są dołączone diody LED, w zasadzie demoluje nasz program. Niestety czasami projektując płytkę drukowaną okazuje się, że zmiana kolejności dołączenia tych diod, skutkowałaby znacznie łatwiejszą w wykonaniu płytką drukowaną. Jest łatwy sposób zabezpieczenia się przed tego typu niedogodnościami. Wystarczy do „adresowania” diod LED wykorzystać odpowiednio przygotowaną tablicę, tak jak to pokazano na listingu 3. Tablica leds[] zawiera numery linii we/wy, do których są dołączone diody LED. W przypadku układu pokazanego na rysunku 3 tablica leds[0] powinna wyglądać następująco:

W programie odwołanie do pierwszej diody LED w linijce świetlnej odbywa się poprzez wywołanie pierwszego elementu tablicy, czyli leds[0], co zostanie w trakcie pracy programu zastąpione przez odwołanie do linii we/wy o numerze 2.

Jeżeli z jakichś powodów okaże się, że diody należy dołączyć w inny sposób, np. zamieniając diodę pierwszą z ostatnią (rysunek 6), to wystarczy zmienić zawartość tablicy leds[] bez modyfikowania reszty programu:

 

Rys. 6. Widok połączeń Dołączenie 8 diod LED do Arduino Uno - wykonanie połączeń

Rys. 6. Widok połączeń Dołączenie 8 diod LED do Arduino Uno – wykonanie połączeń

 

Listing 3. Program sterujący linijką diod LED dla układu pokazanego na fot. 4 (prog_02.ino)

O autorze