Articles

How to control a stepper motor with A4988 driver and Arduino

Dit artikel bevat alles wat u moet weten over het besturen van een stepper motor met de A4988 stepper motor driver en Arduino. Ik heb een bedradingsschema, een tutorial over het instellen van de huidige limiet en vele voorbeeldcodes opgenomen.

hoewel u deze driver kunt gebruiken zonder een Arduino-bibliotheek, raad ik u ten zeerste aan om ook eens te kijken naar de voorbeeldcode voor de AccelStepper-bibliotheek aan het einde van deze tutorial. Deze bibliotheek is vrij eenvoudig te gebruiken en kan de prestaties van uw hardware aanzienlijk verbeteren.

na elk voorbeeld breek ik op en leg ik uit hoe de code werkt, zodat je geen problemen zou moeten hebben om het aan je behoeften aan te passen.

als u meer wilt weten over andere stappenmotoren, dan kunnen de onderstaande artikelen nuttig zijn:

  • How to control a stepper motor with DRV8825 driver and Arduino
  • 28BYJ-48 Stepper Motor with ULN2003 Driver and Arduino Tutorial
  • How to control a Stepper Motor with Arduino Motor Shield Rev3
  • TB6600 Stepper Motor Driver with Arduino Tutorial

Supplies

Hardware components

A4988 stepper motor driver × 1 Amazon
AliExpress
NEMA 17 stepper motor × 1 Amazon
Arduino Uno Rev3 × 1 Amazon
Power supply (8-35 V) × 1 Amazon
AliExpress
Breadboard × 1 Amazon
Capacitor (100 µF) × 1 Amazon
Jumper wires ~ 10 Amazon
AliExpress
USB cable type A/B × 1 Amazon

Ik gebruik Deze driver graag in combinatie met een CNC-shield of uitbreidingsbord. Een dergelijk Schild bevat al condensatoren en biedt een eenvoudige manier om de microstepping resolutie te selecteren. Het maakt bedrading veel gemakkelijker en is een geweldige optie als u een meer permanente oplossing dan een breadboard nodig.

Tools

Small screwdriver Amazon
Multimeter Amazon
Alligator test leads (optional) Amazon

Software

Arduino IDE

Makerguides.com is een deelnemer in het Amazone-Services LLC Associates Program, een affiliate reclame programma ontworpen om een middel voor sites om geld te verdienen advertentiekosten door te adverteren en te koppelen aan producten op de Amazon.com.

Over de driver

In het hart van de A4988 chauffeur vindt u een chip gemaakt door Allegro MicroSystems: de A4988 DMOS Microstepping Driver met Vertaler en overstroombeveiliging. Deze geïntegreerde motorbestuurder maakt interfacing met een microcontroller super gemakkelijk aangezien u slechts twee pinnen nodig hebt om zowel de snelheid als de richting van de stappenmotor te controleren.

de bestuurder heeft een maximale uitgangsvermogen van 35 V en ± 2 A, wat geweldig is voor het besturen van kleine tot middelgrote stappenmotoren zoals een NEMA 17 bipolaire stappenmotor.

Als u grotere stappenmotoren zoals NEMA 23 moet besturen, kijk dan eens naar de TB6600 stappenmotor driver. Deze driver kan worden gebruikt met dezelfde code als de A4988 en heeft een huidige rating van 3.5 A.

  • TB6600 stappenmotor Driver met Arduino Tutorial

de A4988 driver chip heeft verschillende ingebouwde veiligheidsfuncties zoals overstroom, kortsluiting, onderspanning lockout en over-temperatuur bescherming. Meer specificaties vindt u in onderstaande tabel.

A4988 Specifications

Minimum operating voltage 8 V
Maximum operating voltage 35 V
Continuous current per phase 1 A
Maximum current per phase 2 A
Minimum logic voltage 3 V
Maximum logic voltage 5.5 V
Microstep resolution full, 1/2, 1/4, 1/8 and 1/16
Reverse voltage protection? Nee
afmetingen 15,5 × 20,5 mm (0,6″ × 0,8″)
kosten Controleprijs

voor meer informatie kunt u de datasheet hier raadplegen.

verschillen tussen de A4988 en DRV8825

De DRV8825 is vrij vergelijkbaar met de A4988, maar er zijn enkele belangrijke verschillen:

  • De DRV8825 biedt 1/32 microstepping, terwijl de A4988 alleen daalt tot 1/16-stap. Hogere microstepping resulteert in een soepelere, stillere werking, maar is niet altijd nodig.
  • de huidige limietpotentiometer bevindt zich op een andere plaats
  • de relatie tussen de referentiespanning en de huidige limiet is verschillend.
  • de DRV8825 vereist een minimale STAPPULSDUUR van 1,9 µs; de A4988 vereist minimaal 1µs.
  • de DRV8825 kan worden gebruikt met een motorvoeding met een hogere spanning (45 v vs 35 V). Dit betekent dat het minder gevoelig is voor schade door LC spanningspieken.
  • de DRV8825 kan iets meer stroom leveren dan de A4988 zonder extra koeling.

merk op dat de pinout van de DRV8825 precies hetzelfde is als voor de A4988, dus het kan gebruikt worden als een drop-in vervanging!

A4899 (links) vs DRV8825 (rechts)

Microstepinstellingen

stappenmotoren hebben doorgaans een stapgrootte van 1,8° of 200 stappen per omwenteling, dit verwijst naar volledige stappen. Een microstepping driver zoals de A4988 staat hogere resoluties toe door tussenliggende staplocaties toe te staan. Dit wordt bereikt door de spoelen met tussenstroomniveaus te activeren.

bijvoorbeeld, het besturen van een motor in quarter-step modus geeft de 200-stappen-per-omwenteling motor 800 microstappen per omwenteling door gebruik te maken van vier verschillende stroomniveaus.

A4988 pinout

met de resolution (step size) selector pins (MS1, MS2, en MS3) kunt u een van de vijf stappen resoluties selecteren volgens naar onderstaande tabel.

MS1 MS2 MS3 Microstep resolution
Low Low Low Full step
High Low Low 1/2 step
Low High Low 1/4 step
High High Low 1/8 step
High High High 1/16 step

alle drie de ingangen hebben interne 100 kΩ pull-down weerstanden, waardoor de drie microstep selectiepennen losgekoppeld worden in full-step modus.

Ik gebruik vaak een CNC-shield of uitbreidingsbord in combinatie met deze drivers. De uitbreidingsraad heeft 3 onderdompelingsschakelaars om MS1 – MS3 hoog of laag te plaatsen en op het CNC-Schild kunt u verbindingsdraden installeren. Als je de driver met een breadboard gebruikt, kun je gewoon jumperdraden gebruiken om de selector pinnen aan te sluiten op 5 V (dwz maak ze hoog).

bedrading-aansluiten van A4988 op Arduino en stappenmotor

bedradingsschema/schema voor A4988 stappenmotor driver met Arduino en stappenmotor.

het bedradingsdiagram/schema hierboven laat zien hoe u de a4899 driver kunt verbinden met een stappenmotor en de Arduino.

de verbindingen worden ook gegeven in de volgende tabel:

A4988 Connections

A4988 Connection
VMOT 8-35V
GND Motor ground
SLP RESET
RST SLP
VDD 5V
GND Logic ground
STP Pin 3
DIR Pin 2
1A, 1B, 2A, 2B Stepper motor
  • De motorvoeding is aangesloten op GND en VMOT (rechtsboven).
  • de twee spoelen van de stappenmotor zijn verbonden met 1A, 1B en 2A, 2B (zie hieronder).
  • de GND-pin (rechtsonder) is verbonden met de grondpin van de microcontroller en VDD is verbonden met 5V.
  • de STP-pin (step) en DIR-pin (direction) zijn verbonden met digitale pin 3 respectievelijk 2. Je kunt een andere digitale pincode kiezen als je wilt, maar dit zijn degene die ik heb gebruikt voor deze tutorial en de voorbeeldcode.
  • de SLP-pin is een actieve lage invoer. Dit betekent dat het trekken van deze pin laag de bestuurder in de slaapstand zet, waardoor het energieverbruik wordt geminimaliseerd. RST is ook een actieve lage input. Als je laag trekt, worden alle STAPINGANGEN genegeerd totdat je hoog trekt. Als u de pin niet gebruikt, kunt u deze aansluiten op de aangrenzende SLP/SLEEP-pin om deze hoog te brengen en de driver in te schakelen.
  • de en (enable) pin kan losgekoppeld worden gelaten, het wordt standaard laag getrokken. Wanneer deze pin hoog is ingesteld, wordt de driver uitgeschakeld.

in de rest van deze tutorial heb ik MS1, MS2 en MS3 losgekoppeld, zodat het stuurprogramma in volledige stapmodus werkt. Dit maakt het uitleggen van de code een beetje makkelijker. Normaal gesproken zou ik 1/8 of 1/16 microstepping gebruiken en de juiste pinnen aansluiten op 5V (zie de tabel in de inleiding).

waarschuwing

Het A4988 dragerbord maakt gebruik van keramische condensatoren met lage ESR, waardoor het gevoelig is voor destructieve LC-spanningspieken, vooral bij gebruik van stroomleidingen langer dan een paar centimeter.

om de driver te beschermen kunt u een elektrolytische condensator tussen VMOT en GND aansluiten. Pololu suggereert een condensator van 47 µF of meer (ik gebruikte een 100 µF condensator). Ik hou van deze assortimentsbakken van Amazon, op deze manier heb ik altijd een aantal condensatoren van de juiste grootte bij de hand.

hoe de juiste stappenmotor bedrading te bepalen?

Als u de datasheet van uw stappenmotor niet kunt vinden, kan het moeilijk zijn om erachter te komen hoe u uw motor correct kunt bedraden. Ik gebruik de volgende truc om te bepalen hoe 4-draads bipolaire stappenmotoren moeten worden aangesloten:

het enige wat je hoeft te identificeren zijn de twee paar draden die verbonden zijn met de twee spoelen van de motor. De draden van de ene spoel worden aangesloten op 1A en 1B en de andere op 2A en 2B, de polariteit maakt niet uit.

om de twee draden van één spoel te vinden, doe het volgende met de motor los:

  1. probeer de as van de stappenmotor met de hand te draaien en merk op hoe moeilijk het is om te draaien.
  2. kies nu een willekeurig paar draden uit de motor en raak de kale uiteinden aan elkaar.
  3. probeer vervolgens de as van de stappenmotor opnieuw te draaien.

als u veel weerstand voelt, hebt u een paar draden van dezelfde spoel gevonden. Als je de as vrij kunt draaien, probeer dan een ander paar draden. Sluit nu de twee spoelen aan op de pennen in het bedradingsschema hierboven.

(als het nog onduidelijk is, laat dan hieronder een reactie achter, Meer info is ook te vinden op de RepRap.org wiki)

hoe de huidige limiet instellen?

voordat je begint met het programmeren van je Arduino en de driver gaat gebruiken is er één belangrijk ding dat je moet doen dat veel mensen vergeten: stel de huidige limiet in!

deze stap is niet erg ingewikkeld, maar absoluut noodzakelijk om uw stappenmotor en de bestuurder te beschermen. Als u geen passende stroomlimiet instelt, kan uw motor meer stroom trekken dan deze of uw bestuurder aankan, dit zal waarschijnlijk één of beide beschadigen.

om de huidige limiet in te stellen, moet u een referentiespanning meten en de ingebouwde potentiometer dienovereenkomstig aanpassen. U hebt een kleine schroevendraaier nodig, een multimeter om de referentiespanning te meten en alligatortestsnoeren (optioneel maar erg handig).

stroomlimiet bedradingsschema voor A4988-stuurprogramma.

om de referentiespanning te meten, moet de bestuurder worden aangedreven. De A4988 heeft alleen stroom nodig via VDD (5V) en je moet RST en SLP met elkaar verbinden, anders gaat de driver niet aan. Het is het beste om de stappenmotor los te koppelen terwijl u dit doet.

als u de driver al bedraad hebt, kunt u alles behalve de stappenmotor aangesloten laten. U kunt stroom via de USB-poort van de Arduino toepassen.

A4988 Connection
VDD 5V
RST SLP
SLP RESET
GND Ground
Required connections to set the current limit

Current limit formula

The next step is to calculate the current limit with the following formule:

Huidige Limiet = Vref ÷ (8 × Rcs)

De Rcs is de huidige zinweerstand. Als u vóór januari 2017 een A4988 driver van Pololu hebt gekocht, is de Rcs 0,050 Ω. Drivers die daarna worden verkocht, hebben 0.068 Ω stroomweerstanden.

Dit betekent dus dat Voor een stroomlimiet van 1A voor een bord met 0,068 Ω stroomzinweerstanden, de Vref 540 mV moet zijn.

huidige zinweerstandslocaties. Foto: www.pololu.com

om de juiste huidige limiet te selecteren, kijkt u naar het datasheet van uw stappenmotor. Als u de huidige waarde van uw motor niet kunt vinden, raad ik u aan te beginnen met een huidige limiet van 1A. u kunt deze altijd later verhogen als uw motor/bestuurder stappen mist.

Bonus info: Bij gebruik van de driver in full-step modus, is de stroom door elke spoel beperkt tot ongeveer 70% van de ingestelde stroomlimiet. Dit betekent dat u de huidige limiet 40% hoger of 1.4 A in full-step modus moet instellen. Bij gebruik van microstepping is bovenstaande formule van toepassing.

merk op dat u de huidige limiet opnieuw moet kalibreren als u de voedingsspanning van de motor wijzigt. Als uw motor veel lawaai maakt, probeer dan de huidige limiet te verlagen. Het is het beste om de huidige limiet net hoog genoeg in te stellen, zodat de motor geen stappen mist.

Vref meten

nu moet u de referentiespanning (Vref) meten tussen de twee punten die op de foto hieronder zijn aangegeven (GND en de potentiometer) en deze aanpassen aan de waarde die u hebt berekend.

Vref-sondepunten (GND en potentiometer).

Ik adviseer om Alligator testsnoeren geklemd op de schroevendraaier om de huidige limiet in te stellen. Hiermee kunt u de potentiometer aanpassen en tegelijkertijd de referentiespanning meten.

Opmerking: Er is een andere manier om de huidige limiet te meten en dat is om direct het stroomverbruik van de stappenmotor te meten. Persoonlijk vind ik de bovenstaande methode een stuk makkelijker.

Pololu vermeldt het volgende op hun website:

opmerking: de spoelstroom kan sterk verschillen van de stroomtoevoer, dus u moet de stroom die gemeten is bij de stroomtoevoer niet gebruiken om de huidige limiet in te stellen. De juiste plaats om uw huidige meter te plaatsen is in serie met een van uw stappenmotor spoelen.

Pololu

huidige limiet FAQ

moet de stappenmotor aangesloten zijn of niet?
Nee, U hoeft de stappenmotor niet aan te sluiten op de bestuurder bij het instellen van de huidige limiet. Om aan de veilige kant, koppel uw motor, het soms interfereert met het meten van de Vref spanning.

moet ik de motor draaien door de Arduino-motorschets uit te voeren?Nee, zie bovenstaande vraag.

moet ik de potentiometer met de klok of tegen de klok in draaien om Vref te verhogen?
Dit hangt af van de fabrikant van de bestuurder. Als je een echte polulu breakout board van de DRV8825 of A4988 hebt draai je de potentiometer met de klok mee om Vref te verhogen en tegen de klok in om hem te verlagen.

koeling van de driver

de A4988 driver IC heeft een maximale stroomsterkte van 2 A per spoel, maar zonder koellichaam kan het slechts ongeveer 1 A per spoel leveren voordat het oververhit raakt.

het stuurprogramma wordt meestal geleverd met een kleine heatsink met kleeflaag, die ik u aanraad meteen te installeren. U kunt ook kopen een bos van kleine koellichamen van Amazon voor echt goedkoop.

basic Arduino example code om een stappenmotor te besturen

Nu u de driver hebt bedraad en de huidige limiet hebt ingesteld, is het tijd om de Arduino aan te sluiten op de computer en wat code te uploaden. U kunt de volgende voorbeeldcode uploaden naar uw Arduino met behulp van de Arduino IDE. Voor dit specifieke voorbeeld hoef je geen bibliotheken te installeren.

deze schets regelt zowel de snelheid, het aantal omwentelingen als de draairichting van de stappenmotor.

u kunt de code kopiëren door op de knop in de rechterbovenhoek van het codeveld te klikken.

hoe de code werkt:

de schets begint met het definiëren van de stap-en richtingspinnen. Ik heb ze verbonden met Arduino pin 3 en 2.

het statement #define wordt gebruikt om een naam te geven aan een constante waarde. De compiler zal alle verwijzingen naar deze constante vervangen door de gedefinieerde waarde wanneer het programma wordt gecompileerd. Dus overal waar je dirPin noemt, zal de compiler het vervangen door de waarde 2 wanneer het programma gecompileerd wordt.

i definieerde ook een stepsPerRevolution constante. Omdat ik de driver op full step mode heb gezet, zet ik hem op 200 stappen per omwenteling. Wijzig deze waarde als uw instelling anders is.

// Define stepper motor connections and steps per revolution:#define dirPin 2#define stepPin 3#define stepsPerRevolution 200

In het gedeelte setup() worden alle motorbesturingspennen gedeclareerd als digitale uitgang met de functie pinMode().

void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT);}

In het loop() gedeelte van de code laten we de motor één omwenteling langzaam draaien in de CW-richting en één omwenteling snel in de CCW-richting. Vervolgens laten we de motor 5 omwentelingen draaien in elke richting met een hoge snelheid. Dus hoe regel je de snelheid, draairichting en het aantal omwentelingen?

controle draairichting:

om de draairichting van de stappenmotor te regelen stellen we de DIR (richting) pin hoog of laag in. Hiervoor gebruiken we de functie digitalWrite(). Afhankelijk van hoe u de stappenmotor verbond, zal het plaatsen van de hoge dir-speld de motor CW of CCW laten draaien.

aantal stappen of omwentelingen:

in deze voorbeeldschets bepaalt De for lussen het aantal stappen dat de stappenmotor zal nemen. De code binnen de for lus resulteert in 1 stap van de stappenmotor. Omdat de code in de lus 200 keer wordt uitgevoerd (stepsPerRevolution), resulteert dit in 1 Revolutie. In de laatste twee lussen wordt de code binnen de for-lus 1000 keer uitgevoerd, wat resulteert in 1000 stappen of 5 omwentelingen.

merk op dat u de tweede term in de for-lus kunt wijzigen in het aantal stappen dat u wilt. for(int i = 0; i < 100; i++) zou resulteren in 100 stappen, of een halve omwenteling.

controlesnelheid:

De snelheid van de stappenmotor wordt bepaald door de frequentie van de pulsen die we naar de STAPPENPEN sturen. Hoe hoger de frequentie, hoe sneller de motor loopt. U kunt de frequentie van de pulsen regelen door delayMicroseconds() in de code te veranderen. Hoe korter de vertraging, hoe hoger de frequentie, hoe sneller de motor loopt.

AccelStepper library tutorial

De AccelStepper library geschreven door Mike McCauley is een geweldige bibliotheek om te gebruiken voor uw project. Een van de voordelen is dat het acceleratie en vertraging ondersteunt, maar het heeft ook veel andere leuke functies.

u kunt de laatste versie van deze bibliotheek hier downloaden of op de knop hieronder klikken.

u kunt de bibliotheek installeren door naar Sketch > Include Library > Add te gaan .ZIP bibliotheek … in de Arduino IDE.

een andere optie is om naar Tools > bibliotheken beheren… of typ Ctrl + Shift + I op Windows. De Bibliotheekbeheerder zal de lijst met geïnstalleerde bibliotheken openen en bijwerken.

u kunt zoeken naar ‘accelstepper’ en zoeken naar de bibliotheek van Mike McCauley. Selecteer de nieuwste versie en klik vervolgens op Installeren.

continue rotatie voorbeeldcode

de volgende schets kan worden gebruikt om een of meer stappenmotoren continu met een constant toerental te laten draaien. (Er wordt geen versnelling of vertraging gebruikt).

Hoe werkt de code:

de eerste stap is om de bibliotheek op te nemen met #include <AccelStepper.h>.

// Include the AccelStepper library:#include <AccelStepper.h>

de volgende stap is het definiëren van de A4988 naar Arduino verbindingen en het type motorinterface. Het type motorinterface moet worden ingesteld op 1 bij gebruik van een step-and-direction driver. U kunt de andere interface types hier vinden.

het statement #define wordt gebruikt om een naam te geven aan een constante waarde. De compiler zal alle verwijzingen naar deze constante vervangen door de gedefinieerde waarde wanneer het programma wordt gecompileerd. Dus overal waar je dirPin noemt, zal de compiler het vervangen door de waarde 2 wanneer het programma gecompileerd wordt.

// Define stepper motor connections and motor interface type. Motor interface type must be set to 1 when using a driver:#define dirPin 2#define stepPin 3#define motorInterfaceType 1

vervolgens moet u een nieuwe instantie van de AccelStepper-klasse aanmaken met het juiste type motorinterface en aansluitingen.

in dit geval heb ik de stappenmotor ‘stepper’ genoemd, maar u kunt ook andere namen gebruiken, zoals ‘z_motor’ of ‘liftmotor’ etc. AccelStepper liftmotor = AccelStepper(motorInterfaceType, stepPin, dirPin);. De naam die u aan de stappenmotor geeft, zal later worden gebruikt om de snelheid, positie en acceleratie voor die specifieke motor in te stellen. U kunt meerdere exemplaren van de AccelStepper klasse met verschillende namen en pins. Hiermee kunt u eenvoudig 2 of meer stappenmotoren tegelijkertijd bedienen.

// Create a new instance of the AccelStepper class:AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

In de setup() sectie van de code definiëren we de maximale snelheid in stappen/seconde. Snelheden van meer dan 1000 stappen per seconde kunnen onbetrouwbaar zijn, dus stel ik dit in als het maximum. Merk op dat ik de naam van de stappenmotor (‘stappenmotor’) opgeef, waarvoor ik de maximumsnelheid wil definiëren. Als u meerdere stappenmotoren hebt aangesloten, kunt u voor elke motor een ander toerental opgeven:

void setup() { // Set the maximum speed in steps per second: stepper.setMaxSpeed(1000); stepper2.setMaxSpeed(500);}

in de loop() stellen we eerst de snelheid in waarop de motor moet draaien. Hiervoor gebruiken we de functie setSpeed(). (u kunt dit ook plaatsen in de setup sectie van de code).

stepper.runSpeed() polls de motor en wanneer een stap moet worden uitgevoerd, voert u 1 stap uit. Dit hangt af van de ingestelde snelheid en de tijd sinds de laatste stap. Als u de richting van de motor wilt veranderen, kunt u een negatieve snelheid instellen: stepper.setSpeed(-400); draait de motor de andere kant op.

voorbeeldcode om het aantal stappen of omwentelingen te regelen

om de motor een bepaald aantal stappen te laten roteren, gebruik ik liever een while loop in combinatie met stepper.currentPosition(). U kunt de volgende voorbeeldcode gebruiken, om de motor heen en weer te laten lopen.

Code uitleg:

het eerste deel van de code tot aan de loop () sectie is precies hetzelfde als in het vorige voorbeeld.

In de lus maak ik gebruik van een while lus in combinatie met de functie currentPosition(). Eerst stel ik de huidige positie van de stappenmotor in op nul met stepper.setCurrentPosition(0).

 // Set the current position to 0: stepper.setCurrentPosition(0);

vervolgens maken we gebruik van de while lus. Een while lus zal continu en oneindig lus totdat de uitdrukking in de haakjes () onwaar wordt. Dus, in dit geval, controleer ik of de huidige positie van de stappenmotor niet gelijk is aan 400 stappen (!= betekent: is niet gelijk aan). Hoewel dit niet het geval is, draaien we de stappenmotor met een constant toerental zoals ingesteld door setSpeed().

in de rest van de lus doen we precies hetzelfde, alleen met een andere snelheid en doelpositie.

versnelling en vertraging voorbeeldcode

met de volgende schets kunt u versnelling en vertraging toevoegen aan de bewegingen van de stappenmotor, zonder ingewikkelde codering. In het volgende voorbeeld loopt de motor heen en weer met een snelheid van 200 stappen per seconde en een acceleratie van 30 stappen per seconde per seconde.

Code verklaring:

in de setup(), naast de maximumsnelheid, moeten we de acceleratie / vertraging definiëren. Hiervoor gebruiken we de functie setAcceleration().

void setup() { // Set the maximum speed and acceleration: stepper.setMaxSpeed(200); stepper.setAcceleration(30);}

In de loop sectie van de code heb ik een andere manier gebruikt om de motor een vooraf bepaald aantal stappen te laten draaien. De functie stepper.moveTo() wordt gebruikt om de doelpositie in te stellen. De functie stepper.runToPostion() beweegt de motor (met acceleratie/vertraging) naar de doelpositie en blokkeert totdat deze zich op de doelpositie bevindt. Omdat deze functie blokkeert, moet u dit niet gebruiken wanneer u andere dingen tegelijkertijd moet controleren.

conclusie

In dit artikel heb ik u laten zien hoe u een stappenmotor kunt besturen met de A4988 stappenmotor driver en Arduino. Ik hoop dat je het nuttig en informatief vond. Als je dat deed, deel het dan met een vriend die ook van elektronica en het maken van dingen houdt!

Ik heb deze driver persoonlijk veel gebruikt voor een hoop 3D printers en andere CNC gerelateerde projecten, maar ik zou graag willen weten welke projecten je van plan bent te bouwen (of al hebt gebouwd) met deze driver. Als u vragen, suggesties, of als u denkt dat er dingen ontbreken in deze tutorial, laat een reactie hieronder.