{{ :wiki:arduino:joystick_1.png?160|Joystick}} ====== Joystick ====== Das Modul vermittelt das Gefühl der 80er und 90er Jahre und ist eine universelle Steuerung. Zusätzlich zur Richtungsauswahl enthält es auch einen Druckknopf. Die Richtungsmarkierungen (x, y) werden über analoge Signale gelesen, so dass zusätzlich zu den vier Hauptrichtungen die Positionsbestimmung sehr flexibel sein kann. ===== Pinbelegung ===== ^pin^Beschreibung| |GND|Grund| |+ 5V|Stromversorgung| |VRx|Analog (0..1024) X-Positionskomponente| |VRy|Analoge (0..1024) Y-Positionskomponente| |SW|Digitales Signal (nach Drücken der Taste)| {{:wiki:arduino:joystick_2.png?400|Joystick}} ===== Verdrahtung ===== {{:wiki:arduino:joystick_4.png?600|Joystick Verdrahtung}} ===== Software ===== // OB121.com Joystick demo - Vámos Sándor 2018 #define joystickX A0 // X axe PIN A0. #define joystickY A1 // Y axe PIN A1. int button = 5; // Press key at PIN 5 const int PAUSE = 250; // wait long lastAction = -1; // time stamp void setup() { Serial.begin(9600); // komm with 9600 baud // Der Druckknopf wird durch einen Pull-up-Widerstand definiert, // dh die Signale werden auf LOW == HIGH und HIGH == LOW negiert pinMode(button, INPUT_PULLUP); } void loop() { // act ms state long currentTimestamp = millis(); // wait if(lastAction < (currentTimestamp-PAUSE)){ lastAction = currentTimestamp; // positions from joystick int x = analogRead(joystickX); int y = analogRead(joystickY); Serial.print("The current coordinates of the joystick (x,y): "); Serial.print(x); Serial.print(", "); Serial.println(y); } // Push button query if(digitalRead(button)==LOW){ Serial.println("The button has been pressed."); } }