{{ :wiki:arduino:joystick_1.png?160|Joystick}} ====== Joystick ====== A modul a 80-as, 90-es évek feelingjét adja vissza, egyben pedig egy univerzális kezelőszerv. Egy nyomógombot is magába foglal az iránykijelölésen túl. Az iránymegjelelölések (x, y) beolvasása analóg-jeleken keresztül történik, így a négy fő irányon kívül a pozíciómeghatározás meglehetősen rugalmas lehet. ===== Csatlakozó ===== ^pin^leírás| |GND|Grund| |+5V|Táp| |VRx|Analóg (0..1024) X pozíció komponens| |VRy|Analóg (0..1024) Y pozíció komponens| |SW|Digitális jel (a gomb lenyomása után)| {{:wiki:arduino:joystick_2.png?400|Joystick}} ===== Vezetékezés ===== {{:wiki:arduino:joystick_4.png?600|Joystick vezetékezés}} ===== Szoftver ===== // OB121.com Joystick demo - Vámos Sándor 2018 #define joystickX A0 // X tengely PIN A0. #define joystickY A1 // Y tengely PIN A1. int button = 5; // Nyomógomb a PIN 5 const int PAUSE = 250; // Várakozás long lastAction = -1; // Időpecsét void setup() { Serial.begin(9600); // Kommunikáció alapbeállítással // A myomógomb felhúzóellenállással kerül definiálásra, azaz // a jelek negálásra kerülnek LOW == HIGH és HIGH == LOW pinMode(button, INPUT_PULLUP); } void loop() { // Aktuális ms állás az indulás óta long currentTimestamp = millis(); // A várakozási idő kivárása if(lastAction < (currentTimestamp-PAUSE)){ lastAction = currentTimestamp; // A joystick x és y pozíciói int x = analogRead(joystickX); int y = analogRead(joystickY); Serial.print("A joystick aktuális koordinátái (x,y): "); Serial.print(x); Serial.print(", "); Serial.println(y); } // Nyomógomb lekérdezése if(digitalRead(button)==LOW){ Serial.println("A nyomógomb lenyomásra került."); } }