Analogovy joystick - manual

Zo stránky 3D liga wiki
Verzia z 11:09, 2. august 2026, ktorú vytvoril Sebastian (diskusia | príspevky) (Vytvorená stránka „=== 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 ''' {| class="wikitable" |- ! Pin joysticku !! Pin na RP2350-Zero |- | '''VCC''' || 3.3V |- | '''GND''' || GND |- | '''VRX''' (os X) || GP26 (ADC) |- | '''VRY''' (os Y) || GP27 (ADC) |- | '''SW''' (tlačidlo) ||…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
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