Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:
- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač
Schéma zapojení:
Joystick: |
VCC |
5V na Arduinu |
GND |
GND na Arduinu |
VRx (Osa X) |
Analogový pin A0 |
VRy (Osa Y) |
Analogový pin A1 |
Servomotory: |
Servo X (například osa doleva/doprava) |
Signální kabel |
Digitální pin 9 |
VCC |
5V na Arduinu |
GND |
GND na Arduinu |
Servo Y (například osa dopředu/dozadu) |
Signální kabel |
Digitální pin 10 |
VCC |
5V na Arduinu |
GND |
GND na Arduinu |
Kód pro arduino:
#include <Arduino.h>
#include <Servo.h>
Servo servoX; // Servo motor for the X axis (e.g. left/right)
Servo servoY; // Servo motor for the Y axis (e.g. forward/backward)
int joyPinX = A0; // Analog pin for the joystick's X axis
int joyPinY = A1; // Analog pin for the joystick's Y axis
void setup() {
servoX.attach(9); // Attach servo X to pin 9
servoY.attach(10); // Attach servo Y to pin 10
}
void loop() {
// Read joystick values
int valX = analogRead(joyPinX);
int valY = analogRead(joyPinY);
// Convert joystick values to servo angle range (0–180°)
int angleX = map(valX, 0, 1023, 0, 180);
int angleY = map(valY, 0, 1023, 0, 180);
// Set the servo positions according to calculated angles
servoX.write(angleX);
servoY.write(angleY);
delay(15); // Short delay for smoother movement
}