[PROJEKT] Sterowanie diodą RGB za pomocą joysticka w Arduino
Arduino, jako popularny moduł startowy przeznaczony do prototypowania, zyskuje coraz większą liczbę zwolenników. Wszystko dzięki wykorzystaniu uniwersalnych rozwiązań połączeniowych oraz intuicyjnemu oprogramowaniu. Platforma Arduino szybki rozwój zawdzięcza powiększającej się liczbie pasjonatów elektroniki. W artykule znajduje się przewodnik, który pozwoli wykonać sterowany joystickiem kontroler diody RGB.
Aby wykonać tytułowy projekt, należy skupić się na jego głównych etapach. Pierwszym jest zapoznanie się z działaniem diody RGB oraz początkowe jej wysterowanie. Na rysunku 1 pokazano sposób dołączenie diody RGB do modułu Arduino Nano.
Rys. 1. Schemat połączenia Arduino Nano z diodą RGB
W projekcie wykorzystano diodę RGB ze wspólną anodą. Z tego powodu to wyprowadzenie należy dołączyć do linii wyjściowej Arduino o oznaczeniu 5 V – jest to wyjście do zasilania układów peryferyjnych Arduino. Pozostałe wyprowadzenia diody dołączono do linii Arduino o numerach: 9, 10 i 11 (oznaczenie na rysunku 1: PWM1…PWM3). Są to linie mogące pracować w trybie PWM. Wysterowanie diody LED odbywa się poprzez zmianę współczynnika wypełnienia sygnału PWM rozkazem:
analogWrite(nr_linii_PWM, wartość_współczynnika_wypełnienia_PWM);
Wprowadzana wartość współczynnika PWM musi mieć wartość z przedziału od 0 do 255. Podając wartość 0 otrzymujemy pełny przepływ prądu oraz największą intensywność świecenia danej barwy. Przykładowy program sterujący diodą RGB pokazano na listingu 1.
List. 1. Przykładowy kod wysterowania diody RGB
int red = 9, green = 10, blue = 11; //przypisanie portów PWM jako wyjścia na diodę RGB void setup() { pinMode(red, OUTPUT); //przypisanie systemowe portów jako wyjścia pinMode(green, OUTPUT); pinMode(blue, OUTPUT); } void loop() { analogWrite(blue,255); //wartość światłości barwy niebieskiej analogWrite(green,0); //wartość światłości barwy zielonej analogWrite(red,100); //wartość światłości barwy czerwonej delay(100); //opóźnienie }
Kolejnym etapem jest zapoznanie się z zasadą funkcjonowania joysticka. Składa się on z dwóch potencjometrów, które w wyniku przemieszczania drążka odpowiednio zmieniają swoją wartość. Poza tym zawiera on przycisk, który jest uaktywniany za pomocą wciśnięcia drążka. Sposób dołączenia joysticka (moduł modJOY2) do Arduino Nano przedstawiono na rysunku 2.
Rys. 2. Sposób dołączenia modułu modJOY2 do Arduino Nano
Linie modułu modJOY2 oznaczone '+’ i ’-’ należy dołączyć do linii 5V i GND modułu Arduino Nano. Na wyprowadzenia X i Y jest podawany sygnał analogowy związany z położeniem drążka w module. Wyprowadzenie B to wyjście przycisku umiejscowionego pod drążkiem, jego przyciśnięcie powoduje zwarcie z wyprowadzeniem oznaczonym jako '+’. W przypadku połączeń pokazanych na rysunku 2 po naciśnięciu joysticka nastąpi podanie na linię wejściową D13 Arduino napięcia o wartości 5 V (czyli wysokiego poziomu napięcia, co w języku Arduino jest oznaczane stałą „HIGH„).
List. 2. Przykładowy kod do testowania joysticka
int inx=A0, iny=A1; //zmienne położenia potencjometrów xosi x i y int button=13; //przypisanie portu jako wejście przycisku int x,y; //zmienne położenia potencjometrów int stan=1; //tryb pracy void setup() { pinMode(button, INPUT);//przypisanie systemowe portów jako wejście Serial.begin(9600); //ustalenie komunikacji poprzez port USB } void loop() { x=analogRead(inx); //przypisanie wartości analogowych napięcia z potencjometrów y=analogRead(iny); Serial.print("Pozycja X = " ); //wysłanie informacji poprzez port USB Serial.print(x); Serial.print("\t Pozycja Y = "); Serial.print(y); Serial.print("\t Stan Button = "); Serial.println(stan); delay(100); //opóźnienie }