Je leert hoe je een servo motor kunt aansturen met twee LDR's. De servo draait in de richting van de LDR die het meeste licht ontvangt, tussen 0 en 180 graden.
1 Arduino UNO
1 Servo motor
2 LDR's
2 Weerstanden van 10kΩ (voor spanningsdeler met de LDR’s)
Jumper wires
Breadboard
1. Verbind de eerste LDR:
2. Eén pin naar 5V.
3. Andere pin naar een vrije rij op het breadboard.
4. Verbind die rij ook via een 10kΩ weerstand met GND.
5. Verbind dezelfde rij met A0 van de Arduino.
6. Verbind de tweede LDR op dezelfde manier maar verbind de analoge pin met A1 van de Arduino.
7. Verbind de servo signaaldraad met pin 9 van de Arduino.
8. Verbind de voedingsdraad van de servo met 5V en de GND met GND van de Arduino.
Klik op de Code-knop , kopieer en plakt onderstaande code in Tinkercad
#include <Servo.h> // laad de servo-bibliotheek
Servo myservo;
int ldrLeft = A0; // linker LDR op analoge poort A0
int ldrRight = A1; // rechter LDR op analoge poort A1
int leftValue, rightValue; // variabelen om de waardes van de LDRs op te slaan
int hoek = 90; // beginstand van de servo op 90 graden (midden)
void setup() {
myservo.attach(9); // servo aangesloten op pin 9
Serial.begin(9600); // start de seriële monitor voor uitlezen
myservo.write(hoek); // zet de servo in de beginstand
}
void loop() {
leftValue = analogRead(ldrLeft); // lees de waarde van de linker LDR
rightValue = analogRead(ldrRight); // lees de waarde van de rechter LDR
if (leftValue > rightValue) {
hoek = min(hoek + 1, 180); // draai naar links, max 180 graden
} else if (rightValue > leftValue) {
hoek = max(hoek - 1, 0); // draai naar rechts, min 0 graden
}
myservo.write(hoek); // stuur de servo naar de nieuwe positie
Serial.print("Links: "); Serial.print(leftValue);
Serial.print(" Rechts: "); Serial.print(rightValue);
Serial.print(" Hoek: "); Serial.println(hoek);
delay(50); // wacht 50 milliseconden voor stabiliteit
}
1. Klik op Start simulatie.
2. Schuif de lichtbron van de 1e LDR van donker tot op de helft en zie welke kant de servo draait.
3. Schuif de lichtbron van de 2e LDR van donker tot over de helft en zie welke kant de servo draait.
Klik op de knop vragen om de vragen te beantwoorden.
Pas de code aan zodat de servo langzamer draait als het verschil tussen links en rechts groot is.
Klik op de knop vragen om de vragen te beantwoorden.
- Laat het resultaat zien aan je docent.
- Sla je ontwerp op in Tinkercad : Les 8.2: Bestuur een servo met een LDR.