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)
#define LED_POCZ 2
#define LED_KON 9
void setup()
{
int i;
//linie 2...9 jako wyjścia
for (i = LED_POCZ; i <= LED_KON; i++)
pinMode(i, OUTPUT);
}
void loop()
{
int i;
//przesuwający się punkt
for (i = LED_POCZ; i <= LED_KON; i++)
{
digitalWrite( i, HIGH );
delay(200);
digitalWrite( i, LOW );
}
}
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:
pinMode(i, OUTPUT);
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:
for (i = LED_POCZ; i <= LED_KON; i++)
pinMode(i, OUTPUT);
Po ustawieniu wymaganej konfiguracji linii we/wy pożądany efekt, czyli przesuwający się punkt świetlny, uzyskuje się w pętli:
for (i = LED_POCZ; i <= LED_KON; i++)
{
digitalWrite( i, HIGH );
delay(200);
digitalWrite( i, LOW );
}
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:
int leds[] = {2, 3, 4, 5, 6, 7, 8, 9};
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:
int leds[] = {9, 3, 4, 5, 6, 7, 8, 2};

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)
int leds[] = {2, 3, 4, 5, 6, 7, 8, 9};
#define LEDS_SIZE 8
void setup()
{
int i;
//linie z tablicy leds jako wyjścia
for (i = 0; i < LEDS_SIZE; i++)
pinMode( leds[i], OUTPUT );
}
void loop()
{
int i;
//przesuwający się punkt
for (i = 0; i < LEDS_SIZE; i++)
{
digitalWrite( leds[i], HIGH );
delay( 200 );
digitalWrite( leds[i], LOW );
}
}

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



