[PROJEKT] Sterowanie diodą RGB za pomocą joysticka w Arduino
Na listingu 2 znajduje się program do testowania pracy joysticka analogowego z modułu modJOY2. Po zaprogramowaniu Arduino Nano tym kodem zostanie otworzona komunikacja pomiędzy płytką a komputerem. Aby zaobserwować wysyłane wartości, można wykorzystać Monitor portu szeregowego uruchamiany po naciśnięciu ikony wskazanej czarną strzałką na rysunku 3.

Rys. 3. Wskazany strzałką przycisk uruchamia Monitor Portu Szeregowego

Rys. 4. Komunikaty odczytywane przez Monitor Portu Szeregowego
Na rysunku 4 można zobaczyć wartości sygnału wygenerowanego przez potencjometr X oraz Y. Widzimy także zliczane takty przycisku. W momencie zmiany położenia drążka joysticka wartości powinny ulegać zmianie w zakresie od 0 do 1023.

Rys. 5. Przykładowy schemat podłączenia diody RGB oraz modułu modJOY2 do Arduino Nano
Po pomyślnym przetestowaniu poszczególnych podzespołów naszego sterownika możemy przejść do wykonania kompletnego urządzenia. Aby prawidłowo je wykonać, zachęcamy do skorzystania ze schematu pokazanego na rysunku 5. Zbudowane według tego schematu urządzenie pokazano na rysunku 6. Kompletny program sterownika znajduje się na listingu 3.

Rys. 6. Sterownik wykonany zgodnie ze schematem z rysunku 5
List. 3. Program sterownika diody RGB
int red = 9, green = 10, blue = 11; //przypisanie portów PWM jako wyjścia na diodę RGB
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(red, OUTPUT); //przypisanie systemowe portów jako wyjścia
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
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);
if(digitalRead(button)==HIGH){ //funkcja zależna przejścia między trybami pracy
stan+=1;
delay(1000);
if(stan==4) //zapętlenie liczby trybów pracy
{
stan=1;
}
}
switch (stan) {
case 1:
analogWrite(blue,x/4); //tryb pracy niebieski
break;
case 2:
analogWrite(green,x/4); //tryb pracy zielony
break;
case 3:
analogWrite(red,x/4); //tryb pracy czerwony
break;
}
delay(100); //opóźnienie
}

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 



