Een L293D Motordriver Aansluiten op een DC-Motor met Arduino – Stap-voor-Stap Handleiding
Wat is de L293D Motordriver?
De L293D is een 16-pins chipset die fungeert als een tweekanaals H-brugdriver voor motoren. De primaire functie is het sturen van twee DC-motoren of één stappenmotor. Omdat de shield standaard twee L293D-chips bevat, kan hij vier DC-motoren aansturen – ideaal voor vierwielige robots.
De shield biedt in totaal vier H-bruggen, elk good voor een continue motorstroom van 0,6 A (piek 1,2 A). De onboard 74HC595 schuifregister breidt de acht besturingspinnen van de dubbele L293D IC uit naar vier digitale pinnen op de Arduino, wat pinnen bespaart.
Kenmerken van de L293D Motordriver
- Sturing van richting en snelheid van twee onafhankelijke DC-motoren.
- Motorspanning (Vs/Vcc2): 4,5 V tot 36 V.
- Logica-spanning (Vss/Vcc1): 4,5 V tot 7 V.
- Continue uitgangsstroom per kanaal: 600 mA (piek 1,2 A).
- Schakeltijd: max. 300 ns (5 V – 24 V).
- Ingebouwde thermische beveiliging met automatische afschakeling.
- Beschikbaar in SOIC, DIP en TSSOP behuizingen.
Pinconfiguratie van de L293D Shield
| Pin | Naam | Functie |
|---|---|---|
| 1 | Enable 1,2 | Activeert ingangspinnen 1 (pin 2) en 2 (pin 7). |
| 2 | Input 1 | Directe controle van Output 1 (digitale sturing). |
| 3 | Output 1 | Aansluiting voor één kant van Motor 1. |
| 4, 5 | Ground | Twee groundpinnen (0 V) aan weerskanten van de chip. |
| 6 | Output 2 | Aansluiting voor de andere kant van Motor 1. |
| 7 | Input 2 | Directe controle van Output 2 (digitale sturing). |
| 8 | Vs (Vcc2) | Motorspanningsingang 4,5 – 36 V. |
| 9 | Enable 3,4 | Activeert ingangspinnen 3 (pin 10) en 4 (pin 15). |
| 10 | Input 3 | Directe controle van Output 3. |
| 11 | Output 3 | Aansluiting voor één kant van Motor 2. |
| 12, 13 | Ground | Twee extra groundpinnen. |
| 14 | Output 4 | Aansluiting voor de andere kant van Motor 2. |
| 15 | Input 4 | Directe controle van Output 4. |
| 16 | Vss (Vcc1) | Logica-spanningsingang +5 V voor de IC. |
Werkingsprincipe: De H-brug
De L293D gebruikt twee paren Darlington-transistoren (Q1/Q4 en Q2/Q3) met freewheel-diodes die de collector-emitter verbinden om terugloopspanning (back-EMF) af te vangen.
- Wanneer Q1 en Q4 geleiden (Q2/Q3 uit), stroomt stroom van Vcc via de motor naar massa → motor draait in één richting.
- Wanneer Q2 en Q3 geleiden (Q1/Q4 uit), keert de stroomrichting om → motor draait in de tegenovergestelde richting.
De draairichting wordt dus bepaald door welk transistorpaar actief is, wat via de logica-ingangen (Input 1-4) wordt gestuurd. PWM op de Enable-pinnen regelt de snelheid.
Project: DC-motor Sturen met Arduino Uno
Benodigdheden
- Arduino Uno (of Pro Mini)
- L293D motordriver chip (of shield)
- 2× kleine DC-motoren
- 2× 10 kΩ potentiometers (voor snelheidsinstelling)
- Breadboard en jumperdraadjes
- Externe voeding voor de motoren (bijv. 12 V)
Stap 1: De Schakeling Bouwen
Voed de logica van de L293D (pin 16) met 5 V van de Arduino. De motorvoeding (pin 8) koppel je aan de externe bron (bijv. 12 V). Verbind de grond van beide voedingen. De Arduino-pinnen 3, 5, 6, 9 (PWM) gaan naar de Enable- en Input-pinnen van de driver. Let op: Zorg dat de externe spanning nooit de 36 V overschrijdt en dat de polariteit klopt om schade te voorkomen.
Stap 2: AFMotor Bibliotheek Installeren
- Open de Arduino IDE → Schets → Bibliotheek opnemen → Bibliotheken beheren…
- Zoek naar Adafruit Motor Shield Library en klik op Installeren.
Stap 3: Arduino Code
#include <AFMotor.h>
AF_DCMotor motor(4); // Motor op M4 aansluiten
void setup() {
motor.setSpeed(200); // 0-255
motor.run(RELEASE); // Motor vrijgeven
}
void loop() {
uint8_t i;
// Vooruit versnellen
motor.run(FORWARD);
for (i = 0; i < 255; i++) { motor.setSpeed(i); delay(10); }
// Vooruit afremmen
for (i = 255; i != 0; i--) { motor.setSpeed(i); delay(10); }
// Achteruit versnellen
motor.run(BACKWARD);
for (i = 0; i < 255; i++) { motor.setSpeed(i); delay(10); }
// Achteruit afremmen
for (i = 255; i != 0; i--) { motor.setSpeed(i); delay(10); }
motor.run(RELEASE);
delay(1000);
}
Stap 4: Testen
Upload de sketch. De motor moet nu zacht opstarten, volle snelheid bereiken, afremmen, de richting omkeren en daarna stoppen. Pas de potentiometers aan om de PWM-waarden in de code te vervangen door analoge invoer voor handmatige snelheidsregeling.
Equivalente IC's
Alternatieven voor de L293D zijn de ULN2003 (Darlington-array, alleen laagschakelend), SN754410 (pincompatibel, 1 A continue stroom) en LB1909MC.
Toepassingen
- Robotica: differentieel gestuurde wielen, armen, grepers.
- CNC-machines: stappenmotorsturing.
- Relais- en solenoidbesturing.
- Hoogstroom LED-sturing.
Conclusie
De L293D is een betaalbare, veelzijdige driver voor het onafhankelijk sturen van twee DC-motoren in snelheid en richting. In combinatie met een Arduino en de Adafruit-bibliotheek heb je in minder dan een uur een werkende motorsturing. Voor hogere stromen (>1 A) overweeg de SN754410 of MOSFET-gebaseerde drivers zoals de DRV8871.
Industriële technologie
- Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
- RC-ontvanger PPM-signalen decoderen met Arduino: Stapsgewijze handleiding
- Bouw een Android-bestuurd extern voertuig met Raspberry Pi Motor Shield
- De massa van de aarde meten met Arduino: een stapsgewijze DIY-gids
- Een PHP-webinterface bouwen om je Arduino Uno te besturen
- DIY Handgebaren-gestuurde Arduino Robotarm – Stap‑voor‑Stap Bouwhandleiding
- Arduino Web-gestuurde XY-plotter met stappenmotorcontroller
- Zelf een mini‑oscilloscoop bouwen met Arduino Nano – Stap‑voor‑stap handleiding
- Bouw een Real-time Digitale Kompas met Arduino & Processing
- Hoe Een Borstelde DC-motor Werkt: Eenvoudige Mechanica & Betrouwbare Kracht
- Stap-voor-Stap Gids voor Het Inspecteren en Diagnosticeren van DC-Motorproblemen