LEGO Wissel met Servo

Tijdens het LEGO en Arduino project heb ik een wissel met een servo bediend (zie Arduino Starterkit – Servo). Op deze pagina vertel ik hoe je het LEGO wissel met een servo kunt bedienen.

Even de stappen op een rijtje:

Bevestiging voor de servo

Voor het bevestigen van de servo is een servosteun nodig.

LEGO wissel servosteun

In de uitsparing past precies een SG90 of SM90 miniservo.

LEGO-onderdeel 6538c

Het LEGO-onderdeel 6538c Technic, as connector (glad met x gat + oriëntatie) is de verbinding tussen wissel en servo. De servo kant van de 6538c is met 5 mm uitgeboord.

Bouwinstructies

Bouwinstructie voor een linker en rechter wissel (klik op >> en kies voor Opslaan):

Download hier de LEGO Bestellijst Wissel-servosteun voor losse onderdelen.

Servo en drukknoppen

Om te testen gebruik ik de Arduino ONO R3, waarmee ik de servo met drukknoppen ga bedienen. Dat bleek direct te werken…

Breadboard met drukknoppen

Bij de proef ‘ ESP 32 servo en bezetspoor’ heb ik geleerd hoe je de drukknoppen moet aansluiten.

De servo aansluiten is weer een apart verhaal…

Om het wissel goed te bedienen moet de servo de juiste positie aannemen. Blijft de servo in een positie ‘brommen’ dan moet je positie een paar graden aanpassen.
Ik heb CODEY het volgende gevraagd:

Ik heb een Arduino UNO R3 en een SG90 servo 180 graden, een drukknop ‘1’, een drukknop ‘2’, een LED ‘rood’ en een led ‘groen’.
De beginpositie van de servo is 40 graden.
Als drukknop ‘1’ wordt 1x bediend, dan gaat LED ‘rood’ aan en draait de servo-positie 40 graden. Pas als de servo-positie 40 graden is dan gaat LED ‘groen’ aan en LED ‘rood’ gaat uit.
Als drukknop ‘2’ wordt 1x bediend, dan gaat LED ‘rood’ en dan draait de servo-positie 140 graden. Pas als de servo-positie 140 graden is dan gaat LED ‘groen’ aan.
Schrijf de complete code en geef de pin-layout.

Wissel met servo bevestiging

Het is even uitproberen maar voor de Arduino blijkt dit 35 en 127 graden te zijn.

Bij inschakelen van de voeding is de beginstand van de servo 35 of 137 graden (rechtswissel 35, linkswissel 137). Je moet het wissel bedienen om rechtsaf of linksaf te gaan.

De servo draaide erg traag. Ik heb CODEY gevraagd hoe dan komt.

De servo draait langzaam doordat het programma de servo in kleine stappen van 1 graad beweegt met een delay van 10 milliseconden tussen elke stap. Dit is bewust gedaan om een vloeiende en gecontroleerde beweging te maken.

Concreet:
In de functie moveServoTo schrijf je de servo positie stap voor stap (bijv. van 40 naar 130 graden per 1 graad).
Na elke stap wacht het programma 10 ms, wat de totale draaitijd verlengt.

Als je wilt dat de servo sneller draait, kun je de delay tussen de posities verkorten, bijvoorbeeld naar 5 ms of minder. Of je kunt grotere sprongen per stap maken (bijv. 2 of 3 graden per keer).

Met een delay van 5 ms draait het beter 😊

Het eindresultaat…

Er zijn nu voldoende gegevens om een proefopstelling te kunnen bouwen. 

Zoals je ziet is het gelukt om de servo met de Arduino te bedienen. Dit was best simpel.

Natuurlijk ging dit niet zonder de hulp van CODEY. (CODEY.ONLINE)

Graag gedaan!
“De Arduino UNO is voor een beginner als mij heel gebruiksvriendelijk.”

Hoe blij kun je zijn als het je uiteindelijk lekker snel lukt 😂


Ga terug naar LEGO Trein Wissels…