Component · Driver
A4988-stappenmotordriver
Het goedkope dragerbord dat de stroom door een stappenmotorwikkeling regelt. Stroomgrens met een meter instellen, sense-valkuil, wanneer een TMC beter is.
Wat het is
Een A4988-drager is een bordje zo groot als een postzegel dat tussen een microcontroller en een bipolaire stappenmotor staat. Je geeft het twee signalen, een puls en een richting, en het regelt de rest: het activeert de wikkelingen in de juiste volgorde en regelt, cruciaal, hoeveel stroom er doorheen gaat.
Die tweede taak is belangrijk en wordt vaak overgeslagen. Een stappenmotorwikkeling is een laagohmige spoel, doorgaans 2 tot 4 ohm. Sluit je 24 V aan op 2,8 Ω, dan geeft de wet van Ohm 8,6 A en vernietigt een 1,7-A-motor in enkele seconden. De A4988 voorkomt dat door de voeding tienduizenden keren per seconde aan en uit te schakelen en de gemiddelde stroom op de ingestelde waarde te houden.
Het bord heeft dus precies één afstelling: een trimmerpotentiometer om de stroombegrenzing in te stellen. Stel je die goed in, dan merk je de driver niet. Stel je die verkeerd in, dan heb je een zwakke motor die stappen verliest of een hete motor die doorbrandt.
Pindindeling
| Pin | Richting | Functie |
|---|---|---|
| VMOT | Voeding in | Motorvoeding 8–35 V. Sluit over VMOT-GND een condensator van 100 µF aan, dicht bij het bord. |
| GND (motorzijde) | Voeding | Retourleiding voor hoge stroom |
| VDD | Voeding in | Logicavoeding 3–5,5 V, enkele mA |
| GND (logicazijde) | Voeding | Moet dezelfde massa delen als de motorvoeding |
| 1A, 1B | Uit | Eén motorwikkeling |
| 2A, 2B | Uit | De andere motorwikkeling |
| STEP | In | Eén stijgende flank = één microstap |
| DIR | In | Hoog of laag bepaalt de richting |
| ENABLE | In | Actief laag. Aan aarde binden om de wikkelingen te bekrachtigen. |
| RESET | In | Moet hoog zijn. Verbind het met SLEEP. |
| SLEEP | In | Moet hoog zijn om de driver te laten werken |
| MS1, MS2, MS3 | In | Microstapresolutie; intern naar beneden getrokken |
Twee pinnen verklaren de meeste meldingen van “het doet niets”: ENABLE zweeft of is hoog, terwijl de pin actief laag is en dus omlaag moet worden getrokken, en RESET zweeft, terwijl de pin hoog moet zijn. Daarom zegt elke bedradingshandleiding je RESET met SLEEP te verbinden.
Bedrading met een Arduino
Arduino 5V ──── VDD
Arduino GND ──── GND (logic) ──┬── GND (motor)
└── PSU −
PSU + (12–24 V) ──── VMOT ──┬── 100 µF electrolytic ──┘
Pin 3 ──── STEP RESET ──┬── SLEEP
Pin 4 ──── DIR
Pin 5 ──── ENABLE MS1, MS2, MS3 ──── 5 V (1/16 stepping)
Motor coil A ──── 1A, 1B
Motor coil B ──── 2A, 2B
Niet-onderhandelbare punten:
- 100 µF elektrolytisch tussen VMOT en GND, fysiek dicht bij het bord. Dit is de meest voorkomende oorzaak van een bord dat bij het inschakelen sterft.
- Gemeenschappelijke massa tussen de Arduino en de motorvoeding. Zonder die massa heeft het STEP-signaal geen referentie en vangt de driver ruis op.
- Haal de motor nooit los terwijl er stroom op staat. Een onderbroken, bekrachtigde wikkeling veroorzaakt een spanningspiek zonder bestemming.
- De wikkelingsparen zijn belangrijk; de polariteit binnen een paar niet. Zoemt de motor zonder te draaien, dan zijn de wikkelingsparen verkeerd. Draait hij de verkeerde kant op, verwissel dan twee draden van één wikkelingspaar.
Stroombegrenzing instellen: de getallen
Vref = I_phase × R_sense × 8
Meet Vref tussen de metalen schroef van de trimmerpotentiometer en een massapin, terwijl VMOT voeding krijgt en de motor is losgekoppeld. Stel in op 70–85% van de nominale motorstroom: het laatste vijfde levert heel weinig koppel op en veroorzaakt veel warmte.
| Doelstroom | R_sense = 0,1 Ω (R100) |
R_sense = 0,05 Ω (R050) |
|---|---|---|
| 0,6 A | 0,48 V | 0,24 V |
| 1,0 A | 0,80 V | 0,40 V |
| 1,2 A | 0,96 V | 0,48 V |
| 1,5 A | 1,20 V | 0,60 V |
| 1,7 A | 1,36 V | 0,68 V |
Lees de markering op de twee zwarte SMD-weerstanden bij de onderrand voordat je berekent. Stel je
1,2 V in op een R050-bord, dan stuur je 3 A door een motor die voor 1,7 A is ontworpen. Controleer
de markering dus altijd eerst: de verkeerde sense-weerstand kan de motor vernietigen.
Gebruik een schroevendraaier met een keramische punt. Een metalen schroevendraaier die op een onder spanning staand bord de potentiometer aan iets anders kortsluit, is een routineus middel om een driver te vernietigen.
Fysiek stel je het piekkoppel in dat de motor kan leveren, oftewel de T_peak in de
sinuswet die al het gedrag van een stappenmotor bepaalt.
Te laag betekent dat de rotor bij dezelfde belasting verder achterloopt en eerder doorslipt; te
hoog betekent onnodige warmte.
Microstappen
| MS1 | MS2 | MS3 | Resolutie | Stappen/omwenteling |
|---|---|---|---|---|
| laag | laag | laag | Volledige stap | 200 |
| hoog | laag | laag | Halve stap | 400 |
| laag | hoog | laag | Kwart stap | 800 |
| hoog | hoog | laag | Achtste stap | 1600 |
| hoog | hoog | hoog | Zestiende stap | 3200 |
Alle drie hoog is de normale keuze. De reden is belangrijk: microstappen maken de machine onder belasting niet nauwkeuriger. De fout door belasting verandert niet door de stap fijn te verdelen. Wel voorkomt microstapen dat de motor bij elke stap hoorbaar blijft trillen. Dat is het verschil tussen een machine die schreeuwt en een die zoemt, en tussen een oppervlak met zichtbare stapribbels en een glad oppervlak.
De kost is de pulsfrequentie. Bij 1/16 op een as van 80 stappen/mm vereist 100 mm/s 8 000 pulsen per seconde. Een Arduino Uno die stappen in software genereert, bereikt ergens 10 000–15 000 pulsen per seconde. Dat is een echte bovengrens voor een loodschroefas met 400 stappen/mm.
Stroom, warmte en het stroombudget
Het eigen verbruik van de A4988 is bescheiden; het probleem is de thermische dichtheid, niet het totale aantal watt. Ongeveer 0,5 W per fase bij 1 A in een behuizing met nauwelijks koper om de warmte te verspreiden. De praktische grenzen:
| Koeling | Veilige stroom in continu bedrijf |
|---|---|
| Kale chip, stilstaande lucht | ~1,0 A |
| Plaatkoeler | ~1,2 A |
| Koelplaat met luchtstroom | ~1,5 A |
| Daarboven | Gebruik een DRV8825 of TMC2209 |
De thermische beveiliging kondigt zich niet aan. De driver stopt, de motor stopt halverwege, de driver koelt af en start opnieuw. Wat je ziet, is een as die “willekeurig” een deel van de positie verliest. Een as die vaker laat in een lange klus of in een warme kamer uitvalt, heeft tot het tegendeel een thermische oorzaak.
Houd aan de voedingszijde rekening met het feit dat de chopper werkt als een buckconverter: de stroom uit een 24V-voeding ligt ver onder de fasestroom. Dimensioneer daarom op vermogen en tel de fasestromen niet op. Elke motor met een stroombegrenzing van 1,2 A en wikkelingen van 2,8 Ω dissipeert ongeveer 8 W, zolang hij bekrachtigd is, ook als hij stilstaat. Zie het stroombudget van een robot.
Minimaal werkende code
const int STEP_PIN = 3, DIR_PIN = 4, EN_PIN = 5;
void setup() {
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(EN_PIN, OUTPUT);
digitalWrite(EN_PIN, LOW); // active low — energise the coils
digitalWrite(DIR_PIN, HIGH);
}
void loop() {
for (int i = 0; i < 3200; i++) { // one revolution at 1/16
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(2); // datasheet minimum is 1 us
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(300); // this delay is the speed
}
delay(1000);
}
Goed voor een test op de werktafel, verkeerd voor een machine: de stapfrequentie springt direct naar het maximum, waardoor je boven de aanloopsnelheid van de motor een zoemend geluid zonder beweging krijgt. Gebruik AccelStepper of je eigen bewegingsprofiel voor alles dat een bestemming moet bereiken. In de stappenmotor-simulator kun je precies zien wat een ongetrapt commando met de rotor doet.
Welke stroom je werkelijk moet instellen
De nominale stroom op het motortypeplaatje gaat uit van de koelomstandigheden van een testopstelling: vastgeschroefd op een grote aluminiumplaat, in stilstaande lucht van 25 °C. Jouw machine is een afgedrukt bracket in een warme kamer.
Een bruikbare vuistregel, met de onderbouwing in plaats van alleen het getal:
| Situatie | Stel de stroombegrenzing in op | Waarom |
|---|---|---|
| Ruime koppelmarge, stilte gewenst | 60–70% van nominaal | Het koppel daalt lineair, de warmte met het kwadraat |
| Normale machine | 70–85% van nominaal | Het gebruikelijke antwoord |
| Echt beperkt door het koppel | 90–100% van nominaal | Alleen met koelplaat en luchtstroom |
| Boven nominaal | Nooit | Je koopt geen koppel, alleen warmte |
Waarom de ondergrens minder kost dan het lijkt, staat in de tweede kolom. Het koppel is evenredig met de stroom, maar de warmte is evenredig met de stroom in het kwadraat. Ga je van 1,7 A naar 1,2 A, dan geef je 29% van het koppel op en haal je de helft van de warmte weg:
1.7 A: P = 2 × 1.7² × 2.8 = 16.2 W per motor
1.2 A: P = 2 × 1.2² × 2.8 = 8.1 W per motor
Als de dimensioneringsberekening zegt dat je 12% van het beschikbare koppel gebruikt, leverde de 29% die je opgeeft dus nooit een bruikbaar koppel.
Ontkoppelen en de pin die de meeste bouwprojecten negeren
ENABLE bestaat omdat een stappenmotor ook volledig stilstaand zijn volledige ingestelde stroom vertrekt. Dat is anders dan elke andere motor die een beginner tegenkomt en heeft gevolgen:
// Two energised NEMA 17s at 1.2 A dissipate ~16 W doing nothing at all.
digitalWrite(EN_PIN, HIGH); // active low, so HIGH = coils off
Wanneer je dit gebruikt:
- Tussen taken op X en Y. Een plotter of lasergantry hoeft tijdens idle geen positie vast te houden. 16 W warmte in een afgedrukt frame gedurende een uur is genoeg om relevant te zijn.
- Nooit op een Z-as die gewicht draagt, tenzij het mechanisme zelfblokkerend is. Een T8-loodschroef kan niet terugdraaien, dus ontkoppelen is veilig. Een Z-as met een riemaandrijving zakt meteen zodra je de stroom uitzet.
- Nooit tijdens een beweging. De rotor blijft bewegen, het veld niet, en je hebt de positie weggegooid zonder te weten hoeveel. Stop eerst en ontkoppel daarna.
Het addertje dat mensen verrast: na het ontkoppelen rust de rotor in de dichtstbijzijnde houdstand, de vaste magnetische stand zonder stroom, die tot een volledige stap van de vorige stand kan liggen. Op een riemas met 80 stappen/mm betekent dat 0,2 mm ongemelde beweging. Stel dus na elke ontkoppeling opnieuw de nulstand in, of accepteer dat ontkoppelen in idle en een nauwkeurigheid beter dan een tiende millimeter niet samengaan.
SLEEP gaat nog verder: het schakelt ook de interne regelaar uit, waardoor het microampère in plaats van milliampère verbruikt. Het heeft ongeveer 1 ms nodig om wakker te worden en zet de interne stappositie terug naar de nulstand. Dat laatste is de valkuil: ontwaken uit SLEEP kan de motor tot een volledige stap verplaatsen. Voor vrijwel elke hobbymachine wil je ENABLE gebruiken en SLEEP op hoog zetten en verder vergeten.
Problemen oplossen
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| Er gebeurt helemaal niets | ENABLE hoog of RESET zwevend | Bind ENABLE laag; verbind RESET met SLEEP |
| Motor trilt maar draait niet | Wikkelingen door elkaar heen bedraad | Bepaal de wikkelingsparen met een ohmmeter |
| Bord sterft bij het inschakelen | Geen buffercondensator op VMOT | 100 µF elektrolytisch, dicht bij de pinnen |
| Stopt halverwege en start later | Thermische beveiliging | Verlaag Vref; voeg koeling en luchtstroom toe |
| Zwak en slaat stappen over bij lichte belasting | Vref te laag | Meet opnieuw; controleer de markering van de sense-weerstand |
| Motor schreeuwt en wordt heet | Vref te hoog | Bereken opnieuw; is de juiste R_sense gebruikt? |
| Alleen bij hoge snelheid stappen overslaan | Te lage voedingsspanning | Verhoog VMOT; extra stroom helpt niet |
| Alleen tijdens versnelling stappen overslaan | Acceleratie te agressief | Verlaag de acceleratie of verhoog Vref |
| Luid bij elke stap | Volledig stappen; MS-pins zweven | Bind MS1–MS3 hoog |
| Werkt op de werktafel, maar niet in het frame | Eindstop of STEP-ader vangt ruis op | Leid signaalleidingen weg van motorkabels |
A4988 of de alternatieven?
| Driver | Stroom | Microstappen | Geluid | Kies hem wanneer |
|---|---|---|---|---|
| A4988 | 1 A / 1,5 A met koeling | 1/16 | Hoorbaar | Goedkoop, overal verkrijgbaar, goed gedocumenteerd |
| DRV8825 | 1,5 A / 2,2 A met koeling | 1/32 | Hoorbaar | Je meer stroom of fijnere stappen nodig hebt |
| TMC2208 | ~1,2 A | 1/256 | Vrijwel stil | Geluid belangrijk is |
| TMC2209 | ~1,7 A | 1/256 | Vrijwel stil | Geluid belangrijk is en je sensorloze nulstandzoekfunctie wilt |
| L298N | 2 A | — | — | Gelijkstroommotoren. Geen stroomregeling. |
| TB6612FNG | 1,2 A | — | — | Gelijkstroommotoren, efficiënt |
De rijen voor de L298N en TB6612FNG staan er omdat hun datasheets stappenmotoren noemen en beide drivers technisch zo’n motor kunnen aansturen. Geen van beide regelt de stroom; daardoor is het beschikbare koppel veel lager en ontstaat veel warmteverlies. Het zijn drivers voor gelijkstroommotoren; gebruik ze voor aandrijfwielen.
De TMC-drivers zijn hun meerprijs waard zodra de machine ergens staat waar je hem kunt horen. Ze verrichten dezelfde taak, maar met een gladdere stroomgolf; een printer die ermee is uitgerust, maakt daardoor alleen ventilatorgeluid in plaats van motorgeluid.
Waar hij wordt gebruikt
Deze driver voedt beide assen van de penplotter, en de juiste installatie is een ijkpunt op de routekaart voor nauwkeurige beweging. De volledige bedrading en Vref-uitleg beschrijft de procedure stap voor stap.
Verken de graaf
Gebruikt in deze bouwprojecten
Projecten, leerroutes en simulators waarin de A4988-stappenmotordriver voorkomt.
Vergelijken
Alternatieven
Vragen
FAQ over de A4988-stappenmotordriver
Hoe bereken ik Vref voor een A4988?
Vref is de gewenste fasestroom maal de waarde van de sense-weerstand maal acht. Voor 1,2 A op een bord met 0,1-ohmweerstanden is dat 1,2 × 0,1 × 8 = 0,96 V, gemeten tussen het schuifcontact van de trimmerpotentiometer en aarde terwijl het bord via VMOT voeding krijgt en de motor is losgekoppeld. Het cruciale detail is de sense-weerstand: dragerborden worden geleverd met 0,1 ohm, aangeduid als R100, of 0,05 ohm, aangeduid als R050. De verkeerde keuze stuurt precies tweemaal zoveel stroom door de motor.
Waarom wordt mijn A4988 zo heet dat hij uitschakelt?
Bijna altijd is de stroombegrenzing te hoog ingesteld. Een kale A4988 verwerkt ongeveer 1 A in continu bedrijf; met een koelplaat en luchtstroom haalt hij rond 1,5 A. Daarboven activeert de thermische beveiliging, stopt de motor halverwege en start hij opnieuw zodra hij is afgekoeld. Dat lijkt op willekeurig stappen verliezen. Meet Vref opnieuw met de sense-weerstand die je werkelijk hebt, plaats de koelplaat en richt er een ventilator op. Heb je echt meer dan 1,5 A nodig, dan is de A4988 het verkeerde onderdeel.
Wat is het verschil tussen een A4988 en een DRV8825?
De DRV8825 verwerkt meer stroom, ongeveer 1,5 A zonder koeling en 2,2 A met koeling, ondersteunt 1/32 microstappen in plaats van 1/16 en verdraagt een hogere motorspanning van 45 V. Hij is pincompatibel en past dus in dezelfde socket, maar de Vref-formule is anders: Vref is stroom maal 0,5, en de trimmerpotentiometer draait de andere kant op. Een wisselaar plaatsen zonder de formule opnieuw te lezen is een gangbare manier om een motor te verbranden.
Heb ik de condensator over VMOT echt nodig?
Ja. Een elektrolytische condensator van 100 µF tussen VMOT en aarde, fysiek dicht bij het bord, is vereist en niet alleen aan te bevelen. De chopper trekt stroom in scherpe pulsen. Zonder grote buffercondensator in de buurt zet de inductie van je voeding die pulsen om in spanningspieken boven de limiet van 35 V van de chip. Borden die meteen bij het inschakelen sterven, hebben daar meestal aan geleden.
Wat doen MS1, MS2 en MS3 als ik ze niet aansluit?
Ze hebben interne pull-downweerstanden, dus zwevende pinnen kiezen voor volledig stappen: 200 stappen per omwenteling en een motor die bij elke stap hoorbaar blijft trillen. Verbind alle drie hoog voor 1/16 stappen, zoals de meeste bouwprojecten doen. De machine wordt er niet nauwkeuriger van onder belasting, maar hierdoor stopt het resonant, waardoor hij stiller wordt en de oppervlakteafwerking verbetert. Je microcontroller moet wel zestien keer zoveel pulsen per millimeter uitsturen.
Kan een A4988 een gelijkstroommotor of servomotor aansturen?
Nee. Het is een driver voor bipolaire stappenmotoren: hij verwacht twee wikkelingen en bestuurt die met een specifieke stroomvolgorde. Een gelijkstroommotor vereist een H-brug zoals de L298N of TB6612FNG; een hobby-servomotor heeft een PWM-signaal van 50 Hz nodig en helemaal geen driver. De STEP- en DIR-interface van de A4988 heeft voor geen van beide betekenis.
Verder lezen