hogyan kell irányítani a léptetőmotor A4988 vezető és Arduino
Ez a cikk mindent tartalmaz, amit tudni kell a léptetőmotor vezérléséről az A4988 léptetőmotor driver és Arduino. Tartalmaztam egy kapcsolási rajzot, egy bemutatót az aktuális határérték beállításáról, valamint számos példakódot.
bár ezt az illesztőprogramot Arduino könyvtár nélkül is használhatja, nagyon ajánlom, hogy nézze meg az AccelStepper könyvtár példakódját a bemutató végén. Ez a könyvtár meglehetősen könnyen használható, nagyban javíthatja a hardver teljesítményét.
minden példa után lebontom, és elmagyarázom, hogyan működik a kód, így nem kell probléma módosításával, hogy megfeleljen az Ön igényeinek.
Ha többet szeretne megtudni más léptetőmotor-meghajtókról, akkor az alábbi cikkek hasznosak lehetnek:
- 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 |
ezt az illesztőprogramot CNC-pajzsmal vagy bővítő táblával kombinálva szeretném használni. Egy ilyen pajzs már tartalmaz kondenzátorokat, és egyszerű módot kínál a mikrosteppelési felbontás kiválasztására. Ez teszi a kábelezés sokkal könnyebb, és egy nagyszerű lehetőség, ha szüksége van egy állandó megoldás, mint egy breadboard.
Tools
Small screwdriver | Amazon | ||
Multimeter | Amazon | ||
Alligator test leads (optional) | Amazon |
Software
Arduino IDE |
Makerguides.com egy résztvevő az Amazon-Szolgáltatások KFT Munkatársai Program, egy affiliate hirdetési program célja, hogy egy olyan helyeket keresni, hirdetési díjak a reklám -, illetve összekötő termékek Amazon.com.
a driver
a szív a A4988 sofőr meg fogja találni a chip által Allegro MicroSystems: a A4988 DMOS Microstepping Vezető Fordító Túláram Védelem. Ez az integrált motorvezérlő rendkívül egyszerűvé teszi a mikrokontrollerrel való érintkezést, mivel csak két csapra van szüksége mind a léptetőmotor sebességének, mind irányának szabályozásához.
a vezető maximális kimeneti kapacitása 35 V és ± 2 a, ami kiválóan alkalmas kis-és közepes méretű léptetőmotorok vezetésére, mint például a NEMA 17 bipoláris léptetőmotor.
ha nagyobb léptetőmotorokat kell vezérelnie, mint például a NEMA 23, nézze meg a TB6600 léptetőmotor-illesztőprogramot. Ez az illesztőprogram ugyanazzal a kóddal használható, mint az A4988, jelenlegi besorolása 3,5 A.
- tb6600 léptetőmotor Driver Arduino Tutorial
az A4988 illesztőprogram chip számos biztonsági funkcióval rendelkezik beépített, mint a túláram, a rövidzárlat, a feszültség alatti zárolás, valamint a túlmelegedés elleni védelem. További specifikációkat az alábbi táblázatban talál.
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? | No |
méretek | 15,5 × 20,5 mm (0,6″ × 0,8″) |
költség |
további információkért tekintse meg az adatlapot itt.
különbségek az A4988 és a DRV8825 között
a DRV8825 meglehetősen hasonlít az A4988-hoz, de vannak néhány kulcsfontosságú különbség:
- a DRV8825 1/32 mikrosteppelést kínál, míg az A4988 csak 1/16-lépésre megy le. A magasabb mikrosteppelés simább, csendesebb működést eredményez, de nem mindig szükséges.
- az aktuális határ potenciométer más helyen van
- a referenciafeszültség és az áramhatár közötti kapcsolat eltér.
- a DRV8825 minimális LÉPÉSIMPULZUS-időtartamot igényel 1, 9 µs; az A4988 minimális 1 µs-t igényel.
- a DRV8825 nagyobb feszültségű motor tápegységgel használható (45 V vs 35 V). Ez azt jelenti, hogy kevésbé érzékeny az LC feszültség tüskék károsodására.
- a DRV8825 valamivel több áramot képes szállítani, mint az A4988, további hűtés nélkül.
megjegyezzük, hogy a pinout a DRV8825 pontosan ugyanaz, mint az A4988, így lehet használni, mint egy csepp-in csere!
Microstep beállítások
léptetőmotorok általában egy lépés mérete 1,8° vagy 200 lépés per forradalom, ez arra utal, hogy a teljes lépéseket. A mikrosteppelő meghajtó, mint például az A4988, nagyobb felbontást tesz lehetővé, lehetővé téve a közbenső lépés helyét. Ezt úgy érik el, hogy a tekercseket közbenső áramszintekkel energizálják.
például a motor negyedlépéses üzemmódban történő vezetése a forradalomonkénti 200 lépésenkénti motor 800 mikrolépést biztosít forradalomonként négy különböző áramszint használatával.
a felbontás (lépésméret) választócsapok (MS1, MS2 és MS3) lehetővé teszik, hogy válassza ki az öt lépésből álló felbontás egyikét az alábbi táblázat szerint.
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 |
mind a három bemenet belső 100 kΩ lehúzható ellenállással rendelkezik, így a három mikrostepválasztó csap leválasztása teljes lépésben történik.
gyakran használok CNC-pajzsot vagy bővítő táblát ezekkel a meghajtókkal kombinálva. A bővítőlap 3 dip kapcsolóval rendelkezik az MS1 – MS3 magas vagy alacsony beállításához, a CNC-pajzson pedig jumpereket telepíthet. Ha a vezető egy breadboard, akkor csak használja jumper vezetékek csatlakoztatásához a választó csapok 5 V (azaz, hogy azok magas).
bekötése-összekötő A4988 Arduino és léptetőmotor
a fenti kapcsolási rajz/vázlatos ábra megmutatja, hogyan lehet az a4899 illesztőprogramot egy léptetőmotorhoz és az Arduino-hoz csatlakoztatni.
a kapcsolatok a következő táblázatban is szerepelnek:
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 |
- a motor tápegysége a GND-hez és a vmot-hoz van csatlakoztatva (jobb felső sarokban).
- a léptetőmotor két tekercse 1a, 1b és 2a, 2b-hez van csatlakoztatva (lásd alább).
- A GND pin (jobb alsó) csatlakozik a föld pin a mikrokontroller, valamint VDD csatlakozik 5V.
- Az STP (lépés), valamint a DIR (irány) pin csatlakoztatott digitális pin 3., illetve 2. Választhat egy másik digitális pin-kódot, ha szeretné, de ezeket használtam ehhez az oktatóanyaghoz és a példakódhoz.
- az SLP pin aktív alacsony bemenet. Vagyis, ha ezt a csapot alacsonyan húzza, a vezető alvó üzemmódba kerül, minimalizálva az energiafogyasztást. RST is aktív alacsony bemenet. Ha alacsonyra húzzuk, az összes LÉPÉSBEMENETET figyelmen kívül hagyjuk, amíg magasra nem húzza. Ha nem használja a pin-kódot, csatlakoztathatja azt a szomszédos SLP / SLEEP pin-kódhoz, hogy magasra emelje, és engedélyezze az illesztőprogramot.
- az EN (enable) pin leválasztható, alapértelmezés szerint alacsony. Ha ez a tű magasra van állítva, a vezető le van tiltva.
a bemutató többi részében az MS1-et, MS2-t és MS3-at leválasztottam, így a vezető teljes lépésben működik. Ez megkönnyíti a kód magyarázatát. Általában 1/8 vagy 1/16 mikrosteppet használnék, és a megfelelő csapokat 5V-hoz csatlakoztatnám (lásd a bevezetőben található táblázatot).
figyelmeztetés
az A4988 hordozódeszka alacsony ESR kerámia kondenzátorokat használ, ami érzékeny a pusztító LC feszültség tüskékre, különösen akkor, ha néhány hüvelyknél hosszabb tápellátást használ.
a vezető védelme érdekében elektrolit kondenzátort csatlakoztathat a VMOT és a GND közé. A Pololu 47 µF vagy annál nagyobb kondenzátort javasol (100 µF kondenzátort használtam). Szeretem ezeket a választék dobozokat az Amazon-tól, így mindig van néhány megfelelő méretű kondenzátor a kezemben.
hogyan lehet meghatározni a helyes léptetőmotor vezetékeket?
ha nem találja a léptetőmotor adatlapját, nehéz lehet kitalálni, hogyan kell megfelelően bekötni a motort. A következő trükköt használom annak meghatározására, hogyan lehet 4 vezetékes bipoláris léptetőmotort csatlakoztatni:
az egyetlen dolog, amit meg kell határozni, a két pár vezeték, amelyek a motor két tekercséhez vannak csatlakoztatva. Az egyik tekercs vezetékei az 1A-hoz és az 1B-hez, a másik pedig a 2A-hoz és a 2B-hez csatlakoznak, a polaritás nem számít.
Ha meg szeretné találni a két vezetéket egy tekercsből, tegye a következőket a leválasztott motorral:
- próbálja meg kézzel forgatni a léptetőmotor tengelyét, és vegye észre, milyen nehéz fordulni.
- most válasszon egy véletlen pár vezetéket a motorból, majd érintse meg a csupasz végeket együtt.
- Ezután próbálja meg újra forgatni a léptetőmotor tengelyét.
ha sok ellenállást érez, talált egy pár vezetéket ugyanabból a tekercsből. Ha szabadon forgathatja a tengelyt, próbáljon ki egy másik vezetéket. Most csatlakoztassa a két tekercset a fenti kapcsolási rajzon látható csapokhoz.
(Ha még nem tisztázott, kérjük, hagyjon megjegyzést alább, További információ is megtalálható a RepRap.org wiki)
hogyan állítsuk be az aktuális határértéket?
mielőtt elkezdené programozni az Arduino-t, és elkezdi használni az illesztőprogramot, van egy nagyon fontos dolog, amit meg kell tennie, hogy sokan elfelejtik: állítsa be az aktuális határértéket!
Ez a lépés nem túl bonyolult, de feltétlenül szükséges a léptetőmotor és a vezető védelme érdekében. Ha nem állít be megfelelő áramkorlátot, akkor a motor több áramot húzhat, mint amennyit a vezető képes kezelni, ez valószínűleg károsítja az egyiket vagy mindkettőt.
az aktuális határérték beállításához meg kell mérni a referenciafeszültséget, és ennek megfelelően kell beállítani a fedélzeti potenciométert. Szüksége lesz egy kis csavarhúzóra, egy multiméterre a referencia feszültség méréséhez ,valamint egy aligátor tesztvezetékre (opcionális, de nagyon praktikus).
a referencia feszültség méréséhez a vezetőt meg kell táplálni. Az A4988 csak VDD-n (5V) keresztül igényel energiát, és össze kell kapcsolni az RST-t és az SLP-t, különben a vezető nem kapcsol be. A legjobb, ha leválasztja a léptetőmotort, miközben ezt megteszi.
Ha már vezetékes fel a vezető, akkor hagyja mindent, de a léptetőmotor csatlakoztatva. A tápellátást az Arduino USB portján keresztül is alkalmazhatja.
A4988 | Connection |
---|---|
VDD | 5V |
RST | SLP |
SLP | RESET |
GND | Ground |
Current limit formula
The next step is to calculate the current limit with the following képlet:
jelenlegi határ = Vref ÷ (8 × Rcs)
az Rcs az aktuális érzékelési ellenállás. Ha 2017 januárja előtt vásárolt egy A4988 illesztőprogramot a Pololu-tól, az Rcs 0,050 Ω lesz. Az ezt követően értékesített meghajtók 0,068 Ω jelenlegi érzékelési ellenállással rendelkeznek.
tehát ez azt jelenti, hogy a 0,068 Ω áramérzékelő ellenállású tábla 1A áramkorlátja esetén a Vref-nek 540 mV-nek kell lennie.
a megfelelő áramhatár kiválasztásához nézze meg a léptetőmotor adatlapját. Ha nem találja a motor aktuális besorolását,azt javaslom, hogy kezdje az 1a áramkorláttal. később mindig növelheti, ha a motor / meghajtó hiányzik.
Bonus info: ha az illesztőprogramot teljes lépésben használja, az áram az egyes tekercseken keresztül a beállított áramkorlátnak körülbelül 70% – ára korlátozódik. Ez azt jelenti,hogy az aktuális határértéket 40%-kal magasabbra vagy 1,4 A-ra kell állítania teljes lépésben. Mikrosteppelés esetén a fenti képlet érvényes.
vegye figyelembe, hogy a motor tápfeszültségének megváltoztatásakor újra kell kalibrálnia az aktuális határértéket. Ha a motor sok zajt okoz, próbálja meg csökkenteni az aktuális határértéket. A legjobb, ha az aktuális határértéket elég magasra állítja, hogy a motor ne hagyja ki a lépéseket.
Vref mérése
most meg kell mérnie a referenciafeszültséget (Vref) az alábbi képen látható két pont között (GND és a potenciométer), majd állítsa be a kiszámított értékhez.
azt javaslom, hogy a csavarhúzóhoz rögzített alligátor tesztvezetékeket használjam az aktuális határérték beállításához. Ez lehetővé teszi a potenciométer beállítását, valamint a referencia feszültség egyidejű mérését.
megjegyzés: van egy másik módja az aktuális határérték mérésének, vagyis a léptetőmotor aktuális húzásának közvetlen mérésének. Személy szerint a fenti módszert sokkal könnyebbnek találom.
Pololu a következőket említi a saját honlapján:
megjegyzés: a tekercsáram nagyon eltérhet az áramellátási áramtól, ezért ne használja a tápegységen mért áramot az aktuális határérték beállításához. A megfelelő hely, hogy a jelenlegi mérő sorozat egyik léptetőmotor tekercsek.
Pololu
aktuális limit GYIK
szükségem van-e a léptetőmotor csatlakoztatására vagy sem?
nem, az aktuális határérték beállításakor nem kell csatlakoztatnia a léptetőmotort a meghajtóhoz. Ahhoz, hogy biztonságban legyen, húzza ki a motort, néha zavarja a Vref feszültség mérését.
el kell fordítanom a motort az Arduino Motor vázlatának futtatásával?
nem, lásd a fenti kérdést.
el kell fordítanom a potenciométer óráját – vagy az óramutató járásával ellentétes irányba a Vref emeléséhez?
Ez a vezető gyártójától függ. Ha a DRV8825 vagy az A4988 valódi Polulu kitörési táblája van, akkor a potenciométert az óramutató járásával megegyező irányba forgatja, hogy a Vref-et az óramutató járásával ellentétes irányba emelje, hogy csökkentse.
A vezető hűtése
az A4988 illesztőprogram IC maximális áramértéke tekercsenként 2 a, de hűtőborda nélkül csak tekercsenként körülbelül 1 A-t tud biztosítani, mielőtt túlmelegedni kezd.
a vezető általában egy kis ragasztós hátú hűtőbordával érkezik, amelyet azonnal telepítenie kell. Ön is vásárolhat egy csomó kis hűtőbordát az Amazon-tól, hogy igazán olcsó legyen.
Basic Arduino példakód egy léptetőmotor vezérléséhez
most, hogy bekötötted az illesztőprogramot és beállítottad az aktuális határértéket, itt az ideje, hogy az Arduino-t a számítógéphez csatlakoztasd, és feltölts egy kódot. Az Arduino IDE segítségével feltöltheti a következő példakódot az Arduino-ba. Ehhez a konkrét példához nem kell könyvtárakat telepítenie.
Ez a vázlat vezérli mind a sebességet, a fordulatszámot, mind a léptetőmotor forgási irányát.
a kódot a kód mező jobb felső sarkában található gombra kattintva másolhatja.
A kód működése:
a vázlat a lépés-és irányszögek meghatározásával kezdődik. Összekötöttem őket az Arduino pin 3-mal és 2-vel.
a#define
utasítás egy név állandó értékének megadására szolgál. A fordító a program összeállításakor helyettesíti az állandó hivatkozásokat a meghatározott értékkel. Tehát mindenhol, ahol megemlíti a dirPin
, a fordító a program összeállításakor a 2-es értékkel helyettesíti.
meghatároztam egy stepsPerRevolution
konstans értéket is. Mivel az illesztőprogramot teljes lépéses módba állítottam, forradalomonként 200 lépésre állítottam be. Módosítsa ezt az értéket, ha a beállítás más.
// Define stepper motor connections and steps per revolution:#define dirPin 2#define stepPin 3#define stepsPerRevolution 200
a setup()
szakaszban az összes motorvezérlő csapot digitális kimenetnek nyilvánítják a pinMode()
funkcióval.
void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT);}
a kód loop()
szakaszában hagyjuk, hogy a motor lassan forogjon a CW irányba, egy fordulat pedig gyorsan a CCW irányba. Ezután hagyjuk, hogy a motor 5 fordulatot forgasson mindkét irányban nagy sebességgel. Hogyan lehet szabályozni a fordulatszámot, a forgásirányt és a fordulatszámot?
irányítsd a forgási irányt:
a léptetőmotor forgási irányának szabályozásához a DIR (irány) csapot magas vagy alacsony értékre állítjuk. Ehhez a digitalWrite()
függvényt használjuk. Attól függően, hogy hogyan csatlakoztatta a léptetőmotort, a DIR tű magas beállítása lehetővé teszi a motor CW vagy CCW fordulását.
A lépések vagy fordulatok vezérlési száma:
ebben a példában vázlat, a For hurkok ellenőrzik a lépések számát a léptetőmotor fog. A for hurkon belüli kód a léptetőmotor 1 lépését eredményezi. Mivel a hurok kódja 200-szor kerül végrehajtásra (lépésekperrevolúció), ez 1 forradalmat eredményez. Az utolsó két hurokban a for hurkon belüli kódot 1000-szer hajtják végre, ami 1000 lépést vagy 5 fordulatot eredményez.
vegye figyelembe, hogy a for hurokban a második kifejezést tetszőleges számú lépésre módosíthatja. for(int i = 0; i < 100; i++)
100 lépést, azaz fél forradalmat eredményezne.
vezérlési sebesség:
a léptetőmotor sebességét az impulzusok frekvenciája határozza meg, amelyeket a léptető csaphoz küldünk. Minél nagyobb a frekvencia, annál gyorsabban fut a motor. Az impulzusok frekvenciáját a kódban a delayMicroseconds()
megváltoztatásával szabályozhatja. Minél rövidebb a késleltetés, annál nagyobb a frekvencia, annál gyorsabban fut a motor.
AccelStepper library tutorial
A Mike McCauley által írt AccelStepper könyvtár egy fantasztikus könyvtár, amelyet a projekthez használhat. Az egyik előnye, hogy támogatja a gyorsulást és a lassulást, de sok más szép funkcióval is rendelkezik.
a könyvtár legújabb verzióját itt töltheti le, vagy kattintson az alábbi gombra.
telepítheti a könyvtárat a Sketch > Könyvtár > Add .ZIP könyvtár … az Arduino IDE-ben.
egy másik lehetőség a > könyvtárak kezelése… vagy írja be a Ctrl + Shift + I parancsot a Windows rendszeren. A könyvtárkezelő megnyitja és frissíti a telepített könyvtárak listáját.
megkeresheti az “accelstepper” – t, és megkeresheti Mike McCauley könyvtárát. Válassza ki a legújabb verziót, majd kattintson a Telepítés gombra.
Folyamatos váltogatása példa kód
A következő vázlat lehet használni, hogy egy vagy több léptető motorok folyamatosan állandó sebességgel. (Nincs gyorsulás vagy lassulás).
A kód működése:
az első lépés a #include <AccelStepper.h>
könyvtár beillesztése.
// Include the AccelStepper library:#include <AccelStepper.h>
a következő lépés az A4988-as Arduino csatlakozások és a motor interfész típusának meghatározása. Lépés-és irányvezérlő használatakor a motor interfész típusát 1-re kell állítani. A többi interfész típus itt található.
a#define
utasítás egy név állandó értékének megadására szolgál. A fordító a program összeállításakor helyettesíti az állandó hivatkozásokat a meghatározott értékkel. Tehát mindenhol, ahol megemlíti a dirPin
, a fordító a program összeállításakor a 2-es értékkel helyettesíti.
// 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
ezután létre kell hoznia egy új példányt az AccelStepper osztályból a megfelelő motorinterfész típussal és csatlakozásokkal.
ebben az esetben a léptetőmotort “léptetőnek” hívtam, de más neveket is használhat, például “z_motor” vagy “liftmotor” stb. AccelStepper liftmotor = AccelStepper(motorInterfaceType, stepPin, dirPin);
. A léptetőmotornak adott nevet később használják az adott motor sebességének, helyzetének és gyorsulásának beállítására. Az AccelStepper osztály több példányát különböző nevekkel és pinekkel hozhatja létre. Ez lehetővé teszi, hogy egyszerre 2 vagy több léptetőmotort vezéreljen.
// Create a new instance of the AccelStepper class:AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
a setup()
szakaszban meghatározzuk a maximális sebességet lépésekben/másodpercben. A másodpercenként több mint 1000 lépés sebessége megbízhatatlan lehet, ezért ezt maximumként állítottam be. Vegye figyelembe, hogy megadom a léptetőmotor nevét (“léptető”), amelyre meg akarom határozni a maximális sebességet. Ha több léptetőmotor van csatlakoztatva, akkor minden motorhoz eltérő sebességet adhat meg:
void setup() { // Set the maximum speed in steps per second: stepper.setMaxSpeed(1000); stepper2.setMaxSpeed(500);}
a loop()
először beállítjuk azt a sebességet, amellyel a motort futtatni akarjuk. Ehhez a setSpeed()
függvényt használjuk. (ezt a kód beállítási szakaszában is elhelyezheti).
stepper.runSpeed()
Ez a beállított sebességtől és az utolsó lépés óta eltelt időtől függ. Ha meg akarja változtatni a motor irányát, beállíthat negatív sebességet: stepper.setSpeed(-400);
fordítva forgatja a motort.
példakód a lépések vagy fordulatok számának szabályozásához
ahhoz, hogy a motor bizonyos számú lépést forgasson, inkább egy while hurkot használok a stepper.currentPosition()
. Használhatja a következő példakódot, hogy hagyja, hogy a motor oda-vissza futjon.
kód magyarázata:
a kód első része a hurok() szakaszig pontosan ugyanaz, mint az előző példában.
a hurokban egy while hurkot használok a currentPosition()
funkcióval kombinálva. Először a léptetőmotor aktuális helyzetét nullára állítom a stepper.setCurrentPosition(0)
segítségével.
// Set the current position to 0: stepper.setCurrentPosition(0);
ezután használjuk a while hurkot. Egy ideig a hurok folyamatosan, végtelenül hurkol, amíg a zárójelben lévő kifejezés () hamis lesz. Tehát ebben az esetben ellenőrizem, hogy a léptetőmotor jelenlegi helyzete nem egyenlő-e 400 lépéssel (!= azt jelenti: nem egyenlő). Bár ez nem így van, a léptetőmotort állandó sebességgel futtatjuk, ahogy azt a setSpeed()
állítja be.
a hurok többi részében pontosan ugyanazt tesszük, csak más sebességgel és célpozícióval.
gyorsulás és lassulás példa kód
a következő vázlat segítségével a léptetőmotor mozgásához gyorsulást és lassulást adhat hozzá, bonyolult kódolás nélkül. A következő példában a motor oda-vissza fut, másodpercenként 200 lépés sebességgel, másodpercenként 30 lépés gyorsulással.
kód magyarázata:
a beállításban () a maximális sebesség mellett meg kell határoznunk a gyorsulást/lassulást. Ehhez a setAcceleration()
függvényt használjuk.
void setup() { // Set the maximum speed and acceleration: stepper.setMaxSpeed(200); stepper.setAcceleration(30);}
a kód hurokszakaszában más módon hagytam, hogy a motor előre meghatározott számú lépést forgasson. A stepper.moveTo()
függvény a célhelyzet beállítására szolgál. A stepper.runToPostion()
függvény a motort (gyorsulással/lassulással) a célállásba mozgatja, és addig blokkol, amíg a célállásban van. Mivel ez a funkció blokkoló, ezt nem szabad használni, ha más dolgokat egyszerre kell vezérelnie.
következtetés
ebben a cikkben megmutattam, hogyan kell irányítani egy léptetőmotort az A4988 léptetőmotor-meghajtóval és az Arduino-val. Remélem hasznosnak és informatívnak találta. Ha igen, kérjük, ossza meg egy barátommal, aki szintén szereti az elektronikát, így a dolgokat!
személy szerint sokat használtam ezt a meghajtót egy csomó 3D nyomtatóhoz és más CNC-hez kapcsolódó projekthez, de szeretném tudni, hogy milyen projekteket tervez építeni (vagy már épített) ezzel a meghajtóval. Ha bármilyen kérdése, javaslata van, vagy ha úgy gondolja, hogy a dolgok hiányoznak ebben a bemutatóban, kérjük, hagyjon megjegyzést alább.
Leave a Reply