Ons robotvoertuig: beweging en aansturing

Ons robotvoertuig moet natuurlijk kunnen bewegen, en hiervoor hebben we motoren nodig. Het voertuig wordt een trike – een driewieler met twee aangedreven wielen en één zwenkwiel voor de sturing.  

De twee motoren kunnen niet rechtstreeks op de Arduino worden aangesloten, omdat de Arduino niet genoeg stroom kan leveren. Om dit op te lossen, gebruiken we een H-bridge. Deze schakeling fungeert als een tussenstation:  

  • De motoren worden via de H-bridge aangesloten op een externe voeding, die wel voldoende vermogen levert. 
  • De Arduino stuurt alleen de H-bridge aan, die vervolgens de motoren regelt.  

Het circuit

De stroom nodig om een motor te laten draaien is te groot om door een Arduino geleverd te worden. Daarom wordt er gebruik gemaakt van een motor-driver. Via de motordriver kan de Arduino de motor aansturen.

Om de draairichting te kunnen regelen, wordt er gebruik gemaakt van een H-bridge.

Motoren aansturen met een L298N motor-driver en Arduino UNO

Met een Arduino UNO kun je eenvoudig modules aansluiten om sensoren uit te lezen of actuatoren (zoals motoren) aan te sturen, zonder dat je een expert in elektronica hoeft te zijn. Je hoeft niet te begrijpen hoe de module precies werkt, alleen welke verbindingen je moet maken en welke instructies je moet gebruiken.  

Een veelgebruikte motor-driver is de L298N-module, gebaseerd op de L298N-chip. Deze module maakt het mogelijk om motoren aan te sturen met behulp van een Arduino.  

Voeding aansluiten

De module heeft drie belangrijke voedingsaansluitingen:  

  • +12V – Hier sluit je de voedingsspanning voor de motor aan. 
  • GND – De gemeenschappelijke massa (ground) voor de motor en Arduino. 
  • +5V – Deze aansluiting wordt verbonden met de **5V-pin van de Arduino**.  

Belangrijk:  

  • Sluit de GND van de module ook aan op de GND van de Arduino, zodat alle componenten dezelfde massa hebben. 
  • Hoewel de motorvoeding gemarkeerd is als +12V, kun je hier een spanning tussen +5V en +35V aansluiten.
    • Gebruik je een spanning tussen +7V en +12V? Dan kun je de ingebouwde spanningsomvormer gebruiken. Deze zet de spanning om naar +5V, wat gebruikt wordt voor de module en (optioneel) de Arduino.
      Let op: Om dit te laten werken, moet je de jumper op de module plaatsen.
      Gebruik je een spanning hoger dan +12V? Verwijder dan de jumper om schade te voorkomen.  

Motoren aansluiten

De module heeft twee kanalen om motoren aan te sturen. De aansluitingen ENA, IN1 en IN2 dienen voor motor A aan te sturen. ENB, IN3 en IN 4 voor motor B

  • Motor A → Sluit aan op OUT1 en OUT2 (linkse helft). 
  • Motor B → Sluit aan op OUT3 en OUT4 (rechtse helft).  

Werking motordrive

H-bridge aansturing

We weten al dat een motor kan worden aangestuurd met een H-bridge, en de L298N motordriver bevat zo’n H-bridge. Laten we eens bekijken hoe we de aansluitingen van de module kunnen gebruiken om de H-bridge te bedienen en welk effect dit heeft op de motor.  

Voor de eenvoud focussen we alleen op motor A. De aansturing van motor B werkt op dezelfde manier.  

Basiswerking van de motordrive

De module heeft drie belangrijke signalen voor motor A:  

ENA – Schakelt de voeding voor de motor in/uit.  

N1 & IN2 – Bepalen de draairichting van de motor.  

Hoe beïnvloeden deze signalen de motor?
  1. ENA laag (uitgeschakeld):
    De motor krijgt geen voeding en staat stil, ongeacht IN1 en IN2. 
  2. ENA hoog (ingeschakeld) & IN1 laag, IN2 laag:
    Beide motorzijden zijn verbonden met GND → geen spanning over de motor → motor stilstaan
  3. ENA hoog & IN1 hoog, IN2 laag:
    Linkerzijde motor op +V, rechterzijde op GND → spanning over de motor → motor draait (bijv. wijzerzin)
  4. ENA hoog & IN1 laag, IN2 hoog:
    Linkerzijde motor op GND, rechterzijde op +V → spanning omgekeerd → motor draait tegengesteld (tegenwijzerzin). 
  5. ENA hoog & IN1 hoog, IN2 hoog:
    Beide motorzijden op +V → geen spanningverschil → motor stilstaan.  
Samenvatting in een tabel

Conclusie

ENA bepaalt of de motor voeding krijgt.  

  • IN1 & IN2 bepalen de draairichting: 
    • IN1=Hoog, IN2=Laag → één richting. 
    • IN1=Laag, IN2=Hoog → tegengestelde richting. 
    • Beide hoog of laag → **motor stopt**. 

Motor B (ENB, IN3, IN4) werkt op exact dezelfde manier.  

Met deze logica kun je eenvoudig twee motoren onafhankelijk aansturen met één L298N-module!

Oefening motor

Simulatie opdracht A

Classes => Maze Runner Online => Op weg naar de start! => Oefening H-brdige

Sluit een motor aan op een Arduino en laat de motor volgende cyclus uitvoeren:

  • 5 seconden in wijzerzin draaien
  • 2 seconden stilstaan (stoppen)
  • 5 seconden in tegenwijzerzin draaien
  • 2 seconden stilstaan

Fysieke uitvoering

Maak nu de oefening fysiek.

Hier zie je een mogelijk circuit waarbij:

  • ENA → GPIO4
  • IN1 → GPIO3
  • IN2 → GPIO2
Oef Motor

Simulatie opdracht B

Classes => Maze Runner Online => Op weg naar de start! => Oefening H-bridge

Je kan ook verderwerken met je oplossing van de vorige simulatie.

In deze oefening gaan we twee motoren aansluiten op een H-bridge. Denkbeeldig wordt de oefening gebruikt om een voertuig aan te sturen met 2 wielen (en een zwenkwiel). 

We spreken af dat motor A de linkerwiel aandrijving is, en motor B de rechterwiel. Draaien beide motoren in wijzerzin, dan zal het voertuig vooruit bewegen.

Het voertuig moet als volgt bewegen:

  • vooruit
  • stilstaan
  • naar links draaien
  • stilstaan
  • naar rechts draaien
  • stilstaan
  • achteruit
  • stilstaan

Elke beweging gebeurt gedurende 5 seconden, en tussen elke beweging staat het voertuig telkens 2 seconden stil.