Analogovy joystick - manual

Zo stránky 3D liga wiki
Prejsť na navigáciu Prejsť na vyhľadávanie

Joystick

Joystick ktorý ste dostali má 2 osi (X a Y) a 1 tlačidlo (SW – stlačenie joysticku). Funguje ako dva potenciometre – otočením v smere X alebo Y sa mení odpor a tým aj analógová hodnota na výstupe.

Zapojenie

Pin joysticku Pin na RP2350-Zero
VCC 3.3V
GND GND
VRX (os X) GP26 (ADC)
VRY (os Y) GP27 (ADC)
SW (tlačidlo) GP6

Kód

Vyskúšaj toto: Skopíruj a spusti nasledujúci program. Otvor sériový monitor (115200 baud) a pohybuj joystickom. Sleduj ako sa menia hodnoty.

const int JOY_X  = 26;
const int JOY_Y  = 27;
const int JOY_SW = 6;

void setup() {
  Serial.begin(115200);
  analogReadResolution(12);  // 12-bitové ADC (0–4095)
  pinMode(JOY_SW, INPUT_PULLUP);  // tlačidlo – aktívne LOW
}

void loop() {
  int x  = analogRead(JOY_X);
  int y  = analogRead(JOY_Y);
  int sw = digitalRead(JOY_SW);  // 0 = stlačené, 1 = nestlačené

  Serial.print("X: "); Serial.print(x);
  Serial.print("  Y: "); Serial.print(y);
  Serial.print("  SW: "); Serial.println(sw == LOW ? "stlacene" : "volne");

  delay(100);
}
Novinka Vysvetlenie
INPUT_PULLUP Aktivuje vnútorný pull-up rezistor – tlačidlo číta LOW keď je stlačené a HIGH keď nie
sw == LOW Tlačidlo je aktívne LOW – stlačenie stiahne pin na GND