Ovládání serva pomocí joystick modulu

Cílem tohoto projektu je se naučit jak ovládat servo pomocí joystick modulu a Arduina v našem případě pomocí Arduina Una R3. +Vysvětlení kódu.

  • Joystick měří pohyb páčky v různých směrech a přenáší ho jako hodnoty.
  • Servo nastavuje svou polohu na daný úhel podle vstupního signálu. Spolu joystick a servo umožňují přesné ovládání směru a polohy.

CO POTŘEBUJI?

  • Arduino (v tomto případě Uno R3 může být i klon)
  • Joystick module (QYF-860)
  • Servo (180°)
  • Dráty (6)

Viz foto:

ZAPOJENÍ

U joystick modulu používáme jenom osu X (VRX).

Viz schéma:

KÓD A OŽIVENÍ

V Arduino IDE zadáme kód a uploadujeme

#include <Servo.h>

Servo myServo;               // Vytvoření objektu Servo
int joystickXPin = A0;       // Pin, ke kterému je připojen joystick modul (VRx)
int servoPin = 9;            // Pin, ke kterému je připojeno servo

int servoAngle = 90;         // Výchozí úhel serva (střední pozice 90°)
int tolerance = 10;          // Tolerance pro středovou pozici joysticku (Jostick modul nebude ujíždět)

void setup() {
  myServo.attach(servoPin);  // Připojení serva na pin
  myServo.write(servoAngle); // Nastavení výchozí pozice serva na střed (90°) Protože máme 180° servo.
  Serial.begin(9600);        // Inicializace sériové komunikace (pro ladění)
}

void loop() {
  int joystickX = analogRead(joystickXPin);   // Čtení hodnoty joysticku (VRx)

  
  // Mapování hodnot joysticku (0 - 1023) na rozsah serva (0 - 180°)
  if (joystickX > 512 + tolerance || joystickX < 512 - tolerance) {
    servoAngle = map(joystickX, 0, 1023, 0, 180);
    myServo.write(servoAngle);  // Nastavení serva podle joysticku
  }

  // Krátké zpoždění pro stabilitu
  delay(10);
}

Jak funguje tento kód?

Tento kód ovládá servo motor pomocí joysticku. Joystick čte hodnotu z osy X a pomocí funkce map() převádí tuto hodnotu (0 až 1023) na úhel (0 až 180°), který určuje polohu serva. Servo se otáčí podle pohybu joysticku: čím více je joystick posunutý vpravo, tím více se servo otočí doprava, a naopak.

Další podobné články

Test ESC a BLDC motoru

Cílem tohoto Arduino projektu je testování a kalibrace obousměrného regulátoru otáček (ESC) pomocí PWM signálu. Program simuluje sekvenci pohybů: dopředu, neutrální pozici a reverzní chod, což umožňuje ověřit správnou funkci ESC včetně přepínání směru otáčení motoru.

Laserový alarm

Cílem tohoto projektu je vytvořit jednoduchý, ale funkční bezpečnostní systém, který detekuje narušení prostoru pomocí vysílače (laserového paprsku) a přijímače (fotorezistoru). Jakmile je paprsek přerušen, Arduino to vyhodnotí jako narušení a spustí alarm – například zvukový signál pomocí piezo bzučáku.