Het komt vaker voor dat we een motor willen aansturen met een Arduino. Dat kan heel goed, maar meestal niet rechtstreeks. Een DC motor vraagt meestal veel meer stroom dat een Arduino pin kan leveren. De stroom voor de motor moet dan ook van een batterij komen. Het signaal om een motor aan of uit te zetten kan wel van een Arduino pin komen. Die kan dan bij voorbeeld een elektrische schakelaar (relais) bedienen die de stroom van de batterij aan en uit zet. Vervolgens moet zo'n motor vaak ook nog stil kunnen staan en ook een andere kant op draaien.
Als je een gelijkstroommotor links en rechtsom wil laten draaien zijn daar een paar manieren voor.
Je kan één relais met dubbele contacten gebruiken. De beschrijving voor deze aansluiting staat op pagina 17 (les 7) van 'Interactief ontwerpen met Arduino'.
Je kan ook een 'motor driver' gebruiken. Daarmee kan je een motor niet alleen links en rechtsom laten draaien maar ook harder en zachter. De beschrijving hiervan kan je vinden op pagina 6 en 7 van het boekje 'HWC.Robotica' https://sites.google.com/site/hwcrobotica/
Je kan ook 'relais' gebruiken. Dit zijn elektrisch bediende schakelaars. Er bestaan losse relais maar ook relais modules met meerdere relais erop gemonteerd. In de handel zijn verschillende versies met soms de aansluitingen op een iets andere positie. Het schema hieronder is gemaakt voor het relais dat wij het meest gebruiken (niet het keyes relais). Kijk goed hoe plus, min en de datalijnen (hier pin 6,7,8,9) aangesloten zijn.
Je kan een 4-relais module gebruiken.Het aansluitschema zie je hieronder. Met een multimeter kan je controleren of de contacten van een relais open of gesloten zijn.
De middelste contacten (met de schroefjes) van de relais verbinden met de batterij. Het contact dat naar de motor gaat verbinden met de kant die open is (no - normally open) als er geen stroom op het relais staat.
Werking:
Ofwel de relais 1A (+) en 1B (-) leveren de stroom voor de motor of de relais 2A (+) en 2B (-). In het ene geval draait de motor de ene kant uit en in het andere geval de andere kant omdat de plus en min omgekeerd worden.
Als testprogramma kan je de 'blink' sketch gebruiken (uitgebreid voor het aansturen van vier pinnen). Als je knoppen wil gebruiken om de relais te bedienen kan je als uitgangspunt de code van 'les 2 twee knoppen' gebruiken en die aanpassen (kijk ook daar in het schema hoe je de knoppen aansluit). Kijk ook naar de code van 'les 4 simpele drukmeting'.
Let op!!! De contacten van A1/A2 en B1/B2 mogen nooit tegelijkertijd gesloten zijn want dan maak je kortsluiting!
Schrijf dus in de code regels die ervoor zorgen dat als beide knoppen ingedrukt zijn geen van de relais op doorverbinden staan. Dat kan door b.v. de volgende regel:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {
// alle relaisaansluitingen LOW zetten (of HIGH, afhankelijk van het relais).
// Een knop op pin 2, de andere op pin 3.
}
Let op:
Het aansluiten van de relais kan verwarring en problemen opleveren.
Controleer eerst met welke stand van het relais - (NO (normally open) of NC (normally closed) - de pin hoog of laag overeenkomt. Je gaat dus kijken welke relaiscontacten open en gesloten zijn bij digitalWrite(HIGH) en digitalWrite(LOW).
Pas indien nodig de werking aan door of de code aan te passen ((LOW in plaats van HIGH of andersom) of door het wisselen van de contacten opp het relais.
De middelste van de drie contacten (COM) van het relais (met de schroefjes) is verbonden met de batterij. Een van de buitenste is verbonden met de motor.
Vaak zie je dat de VCC (5V) en GND (-) verbonden zijn met de 5v en gnd van de Arduino. Dat is eigenlijk geen goed idee. Een relais neemt nogal wat stroom en zeker als je een relaisblok aansluit ga je al snel over de maximale capaciteit van de Arduino heen.
Zeker als je sensoren erbij gaat aansluiten kan dat problemen opleveren: Door de spanningsdaling bij het inschakelen van het relais kan de sensorwaarde (aanzienlijk) beinvloed worden.
Het is daarom beter de gnd en vcc aansluitingen van het relais te verbinden met de + en - van de batterij (zoals in onderstaand schema). Je moet dan wel nog een verbinding maken tussen de gnd van de arduino en de - van de batterij.