hu:arduino:joystick

Differences

This shows you the differences between two versions of the page.

hu:arduino:joystick [2019/09/01 13:52]
hu:arduino:joystick [2022/04/21 15:02] ()
 1:  1:
 +{{ :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 =====
 +
 +<code c>
 +// 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.");
 +  }
 +}
 +</code>