Arduino – Poradnik #9 – Funduino Joystick Shield V1.A

Cześć
W dzisiejszym artykule zajmiemy się obsługą modułu Funduino Joystick. Możemy go zakupić TUTAJ.

27-1-min

Moduł składa się z dwuosiowego Joysticka oraz 5 przycisków. Możemy go używać do sterowania w wielu projektach.
Shield ma wbudowane wejścia na ekran z Nokii 5110 oraz moduł radiowy nRF24L01.

Podłączenie
Podłączenie modułu jest banalnie proste, ponieważ ogranicza się tylko do nałożenia shield’a na Arduino.
Schemat podłączenia pinów wygląda tak
27-2-min

Kod


Odczyt aktualnego położenia Joysticka
Odczyt aktualnego położenia Joysticka jest bardzo prosty. Ponieważ działa on na takiej samej zasadzie jaką stosujemy w odczycie danych z potencjometru. Czyli sygnał wejściowy możemy odczytać za pomocą funkcji

W monitorze szeregowym otrzymamy wartości w zakresie od 0 do 1023 z osi X oraz Y.

 

Sprawdzenie aktualnego stanu przycisków

Aby sprawdzić stan przycisku musimy najpierw skonfigurować Arduino tak aby rozpoznać przyciski.

Aby sprawdzić czy przycisk został naciśnięty skorzystamy z funkcji If, Else.
Mamy możliwość odczytu wartości przycisku także przy pomocy funkcji digitalRead()

Przycisk jest wciśnięty gdy na danym pinie jest stan Niski (LOW) gdy jest stan wysoki (HIGH) oznacza to że przycisk nie jest wciśnięty

Poniżej kod zwracający wartość wszystkich przycisków, które są dostępne w module.

 

Pełny kod
Teraz przedstawię Ci połączenie funkcji sprawdzania stanu przycisków oraz odczytu danych z joysticka. Program jest bardzo oczywisty (o ile czytałeś poprzednie części kursu)
Kod wygląda tak:

W monitorze szeregowym będą wyświetlane informację dotyczące wszystkich wartości w tym module(przycisków oraz joysticka)

 

Aktualny kierunek joysticka

Bardzo ciekawą funkcją jest odczytanie aktualnego kierunku joysticka.
Joystick może być wyśrodkowany lub położony w jednym z ośmiu kierunków (do góry, w prawo i w górę, w prawo, w prawo i w dół, w dół, w lewo, w dół i w lewo, lewo do góry)

Zakres joysticka to 0-1023 w takim razie wyśrodkowanie będzie mniej więcej przybierało wartość 511-512. Wartość może być odrobinę niedokładna. Z tego powodu musimy określić swoisty próg wartości. ja zastosuję 505-515.

 

Następnie musimy zmapować naszą wartość w każdym wymiarze.

Rozpoczynamy to ustawiając kierunek w każdym wymiarze na 0 (na środku). Następnie używamy if/else w celu sprawdzenia czy wartość pozycji w każdym wymiarze jest powyżej czy poniżej wartości progowych.

 

Tutaj używamy if else do wypisania kierunku w monitorze szeregowym.
Kod jest bardzo prosty dlatego nie będę zagłębiał się w jego tłumaczenie.

 

W następnym artykule zajmiemy się połączeniem modułu nRF24l01 wraz z modułem. Czyli stworzymy Joystick, który później będziemy mogli zastosować w wielu projektach 🙂

Poradnik powstaje dzięki współpracy ze sklepem internetowym XBot.pl – roboty to lubią

24-4

Poprzednia część kursu

 

Jako przykład podałem kody, które dostajemy od producenta.