Für manche Anwendungen oder Projekte wird ein kleines Richtungseingabegerät benötigt. Das folgende Modul besitzt vier Richtungen, einen Auslöser und zwei zusätzliche Knöpfe als Eingabemöglichkeiten. Allerdings sind alle diese Eingaben als digitale Werte zu verstehen, d.h. es sind quasi Knöpfe und kein potentiometer-ähnlicher Joystick
Joystick-Modul | Arduino |
---|---|
COM (common) | GND |
UP (hoch) | beliebiger I/O-Pin |
DWN (herunter) | beliebiger I/O-Pin |
LFT (links) | beliebiger I/O-Pin |
RHT (rechts) | beliebiger I/O-Pin |
MID (Press) | beliebiger I/O-Pin |
SET (Set button) | beliebiger I/O-Pin |
RST (Reset button) | beliebiger I/O-Pin |
Hinweis: Wenn im Sketch nicht der Modus INPUT_PULLUP
verwendet wird, dann muss für
jeden angeschlossenen Eingang ein separater Pullup-Widerstand verwendet werden.
Der folgende Sketch fragt an den einzelnen Eingängen des Arduino die Werte des 5-Wege-Joysticks ab und gibt immer dann einen Text auf der seriellen Konsole aus, wenn der entsprechende Knopf gedrückt wurde. Im Zuge der Einfachheit wurde in dem Sketch auf jegliche Entprellung verzichtet.
const byte joystickPins[] = {2, 3, 4, 5, 6, 7, 8};
String joystickStr[] = {"UP", "DWN", "LFT", "RHT", "MID", "SET", "RST"};
void setup()
{
Serial.begin(9600);
for (byte i = 0; i < sizeof(joystickPins); i++) {
pinMode(joystickPins[i], INPUT_PULLUP);
}
}
void loop()
{
for (byte i = 0; i < sizeof(joystickPins); i++) {
if (digitalRead(joystickPins[i]) == LOW) {
Serial.println(joystickStr[i]);
}
}
delay(50);
}
zurück