Welkom bij project 14! Vandaag gaan we leren hoe je een joystick kunt gebruiken om een servo aan te sturen. Dit project is ideaal om te begrijpen hoe je een analoge invoer (de joystick) kunt gebruiken om een mechanische beweging (de servo) te besturen. Het is een leuke en interactieve manier om te zien hoe je Arduino kunt inzetten voor fysieke besturing.
Stap 1: het circuit bouwen
Benodigdheden:
Voor dit project heb je de volgende onderdelen nodig:
- 1x Arduino Uno
- 1x servomotor
- 1x Joystick module
- 5x man-man jumper wires
- 1x breadboard
Volg de onderstaande stappen om je circuit op te zetten:
- Joystick Aansluiten:
- Verbind de GND-pin van de joystick met een GND-pin op de Arduino.
- Verbind de VCC-pin van de joystick met de 3.3V-pin op de Arduino.
- Verbind de VRx-pin (horizontale as) van de joystick met analoge pin A0 van de Arduino.
- Verbind de VRy-pin (verticale as) van de joystick met analoge pin A1 van de Arduino.
- Servo Aansluiten:
- Verbind de bruine draad van de servo met een GND-pin op de Arduino.
- Verbind de rode draad van de servo met de 5V-pin op de Arduino.
- Verbind de oranje draad van de servo met digitale pin 9 van de Arduino.
Stap 2: De code schrijven
Nu het circuit klaar is, gaan we de code schrijven die de joystick gebruikt om de servo aan te sturen. Kopieer en plak de volgende code in de Arduino IDE:
#include <Servo.h>
Servo myServo; // Creëer een object voor de servo
int vrxPin = A0; // Horizontale as van de joystick
int vryPin = A1; // Verticale as van de joystick
int servoPin = 9; // Servo pin
void setup() {
myServo.attach(servoPin); // Verbind de servo met de pin
Serial.begin(9600); // Start seriële communicatie voor debugging
}
void loop() {
int vrxValue = analogRead(vrxPin); // Lees de waarde van de horizontale as
int vryValue = analogRead(vryPin); // Lees de waarde van de verticale as
if (vrxValue < 100) { //Als de joystick naar links is:
myServo.write(180); // Servo naar links (180 graden)
}
if (vrxValue > 550) { //Als de joystick naar rechts is:
myServo.write(0); // Servo naar rechts (0 graden)
}
if (vryValue > 550) { //Als de joystick naar boven is:
myServo.write(90); // Servo naar het boven (90 graden)
}
if (vryValue < 100) { // Als de joystick naar beneden is gericht
// Doe niets
}
delay(50); // Korte pauze om schokken te voorkomen
}
Uitleg van de Code:
- Servo Library: De Servo bibliotheek wordt gebruikt om de servo aan te sturen.
- Joystick Input: De waarden van de joystick worden gelezen via analogRead() van de VRx (horizontale as) en VRy (verticale as) pinnen.
- Servo Positie: Als de joystick naar boven is gericht (waarde van VRy > 700), bepaalt de waarde van VRx de hoek van de servo:
- Links (VRx < 100): Servo naar 180 graden.
- Rechts (VRx > 550): Servo naar 0 graden.
- Midden (VRy < 550): Servo naar 90 graden.
- Naar beneden: Als de joystick naar beneden wordt bewogen (VRy < 100), wordt de servo niet bewogen.
Stap 3: De code uploaden
Library activeren:
Zoek bij de library’s “servo” en instaleer deze (als deze nog niet geinstaleerd is).
- Sluit je Arduino aan op je computer met de USB-kabel.
- (Klik op select board en dan op Arduino Uno.)
- Klik op de uploadknop (pijltje) in de Arduino IDE om de code naar je Arduino te sturen.
Gefeliciteerd! Je hebt nu een joystick bestuurd servo-systeem gemaakt. Probeer de joystick te bewegen en kijk hoe de servo reageert. Dit is een geweldige basis voor projecten zoals robotarmen, afstandsbedieningen en nog veel meer. Veel plezier met experimenteren en tot het volgende projecten!
