LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[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
}