Servo
Een servo-motor kan naar een precieze hoek draaien (tussen 0 en 180 graden). Handig voor een grijper, een wijzer of een sweepende sensor.
Materiaal
- Nano op het shieldArduino Nano RP2040 Connect op het Leaphy Murphy Shield
- Servo-motorDraait 180 graden
De servo heeft drie kabels:
- Bruin (of zwart): GND
- Rood: VCC, de plus
- Oranje (of geel): stuursignaal
Controlevraag
Welke kleur kabel gaat naar 3.3V?
Antwoord
De rode kabel. De bruine/zwarte kabel gaat naar GND en de oranje/gele kabel naar een digitale pin.
Aansluiten

Op het shield heeft elke pin van de Nano een eigen rijtje van drie pinnen. De binnenste, naast de Nano, is de pin zelf (bijvoorbeeld D7). De middelste is 3V3 en de buitenste is GND. Sluit een onderdeel aan op het rijtje van zijn pin: dan zitten signaal, 3V3 en GND naast elkaar, en past er een stekker van drie pinnen op. In het schema zegt de legenda welke draad op welke pin komt.
De stekker van de servo past precies op het rijtje van D6:
- Bruin (GND) op de buitenste rij, GND
- Rood (VCC) in het midden, 3V3
- Oranje (stuursignaal) op de binnenste rij, naast de Nano: de pin D6
Een MG90 of SG90 is gemaakt voor 4,8 tot 6 V. Op 3,3 V draait hij wel, maar zwakker: met een zware grijper kan hij haperen of halverwege blijven staan. Start het bord opnieuw op zodra de servo beweegt? Dan trekt hij meer stroom dan het bord kan leveren. Vraag je docent dan om een aparte voeding van 5 V voor de servo, met de GND van die voeding aan de GND van het bord.
Code
from leaphymicropython.actuators.servo import set_servo_angle
from time import sleep
set_servo_angle("D6", 0)
sleep(1)
set_servo_angle("D6", 90)
sleep(1)
set_servo_angle("D6", 180)
De servo draait nu naar 0, dan 90 en dan 180 graden.
Uitleg van set_servo_angle
set_servo_angle(pin_name, angle)
- pin_name: naam van de pin als tekst, met een
Dervoor:"D6","D7", ... - angle: een getal tussen 0 en 180 graden.
Opdracht: heen en weer zwaaien
Laat de servo continu heen en weer zwaaien tussen 0 en 180 graden, met 1 seconde tussen elke stand.
Oplossing
from leaphymicropython.actuators.servo import set_servo_angle
from time import sleep
while True:
set_servo_angle("D6", 0)
sleep(1)
set_servo_angle("D6", 180)
sleep(1)