Opis
Joystick podobny do urządzeń analogowych wykorzystywanych m. in. w kontrolerach PlayStation 2.
Kierunek ruchu wykrywany jest poprzez dwa potencjometry - po jednym (10 kΩ) na każdą oś. Urządzenie posiada przycisk załączany poprzez naciśnięcie gałki.
Aby obsługiwać urządzenie wymagany jest mikrokontroler z przetwornikiem analogowo-cyfrowym (wejściem analogowym w Arduino).
Poprzez sygnał analogowy przekazywane są informacje o położeniu gałki, w którym napięcie odpowiada danej pozycji. Każda z osi ma osobne wyprowadzenie analogowe. Poprzez wyjście cyfrowe wykrywany jest stan przycisku, w przypadku załączenia osiąga stan niski.
Podłączenie
Wyprowadzenia:
• VCC - Napięcie zasilania (5 V).
• GND - Masa układu.
• VRx- Analogowe wyjście dla osi pionowej (w pozycji środkowej wartość równa połowie
napięcia zasilania VCC/2).
• VRy - Analogowe wyjście dla osi poziomej (w pozycji środkowej wartość równa połowie
napięcia zasilania VCC/2).
• SW - Cyfrowy sygnał przycisku, w przypadku załączenia osiąga wartość GND, wyłączony -
jest w stanie floating - należy więc dołożyć rezystor podciągający do zasilania.
Gdzie:
1. SW
2. VRy
3. VRx
4. VCC
5. GND
Przykład kodu programu
#include <SoftwareSerial.h>
#define TxD 2
#define RxD 3
SoftwareSerial mySerial(RxD, TxD);
const int SW_pin = 8; // digital pin connected to SW
const int X_pin = 0; // analog pin connected to VRx
const int Y_pin = 1; // analog pin connected to VRy
void setup() {
pinMode(SW_pin, INPUT);
digitalWrite(SW_pin, HIGH);
Serial.begin(9600);
}
void loop() {
Serial.print("X: ");
Serial.print(analogRead(X_pin));
Serial.print(" Y: ");
Serial.print(analogRead(Y_pin));
Serial.print(" Z: ");
Serial.println(digitalRead(SW_pin));
delay(250);
}
Wynik programu
Monitor portu szeregowego wyświetla pozycję X, Y oraz Z w zależności od pozycji joystick’a.
Joystick w pozycji neutralnej
Joystick przechylony w lewo
Joystick przechylony w prawo
Joystick przechylony w dół
Joystick przechylony w górę
Wciśnięcie przycisku