- Szükséges anyagok
- Léptetőmotor (28BYJ-48)
- ULN2003 Motor Driver IC
- Áramkör és kapcsolatok
- Forgó léptetőmotor STM32F103C8-mal
- STM32 PROGRAMOZÁSA léptetőmotorhoz
A léptetőmotor kefe nélküli egyenáramú motor, amely kis szögekben forgatható, ezeket a szögeket lépéseknek nevezzük. Általában a léptetőmotor 200 lépésben használja a 360 fokos forgást, ami azt jelenti, hogy lépésenként 1,8 fokkal forog. A léptetőmotort számos olyan eszközben használják, amelyek pontos forgási mozgást igényelnek, mint például robotok, antennák, merevlemezek stb. Főként kétféle léptetőmotor áll rendelkezésre, az Unipolar és a Bipolar. Az Unipolar könnyebben kezelhető, vezérelhető és könnyebben beszerezhető. Ebben az útmutatóban összekapcsoljuk a léptetőmotort az STM32F103C8 (kék tabletta) táblával.
Szükséges anyagok
- STM32F103C8 (kék tabletta)
- Léptetőmotor (28BYJ-48)
- ULN2003 IC
- Potenciométer 10k
- Kenyérlemez
- Jumper huzalok
Léptetőmotor (28BYJ-48)
A 28BYJ-48 egy Unipolar Stepper motor, amely 5V-os tápfeszültséget igényel. A motor 4 tekercses egypólusú elrendezéssel rendelkezik, és mindegyik tekercs + 5 V-os besorolású, ezért viszonylag könnyen vezérelhető bármilyen mikrovezérlővel, például Arduino, Raspberry Pi és STM32 is. De a meghajtáshoz szükségünk van egy Motor Drive IC-re, mint az ULN2003, mert a léptető motorok nagy áramot fogyaszt, és károsíthatja a mikrovezérlőket.
Egy másik fontos adat, amelyet észre kell venni, a lépésszög: 5.625 ° / 64. Ez azt jelenti, hogy a motor, amikor 8 lépéses sorrendben működik, minden lépésnél 5,625 fokot mozog, és egy teljes forgatás elvégzéséhez 64 lépést (5.625 * 64 = 360) kell végrehajtani. Egyéb specifikációkat az alábbi adatlap tartalmazza:
Ellenőrizze a léptetőmotorral való kapcsolatot más mikrovezérlőkkel is:
- A léptető motor összekapcsolása az Arduino Uno-val
- Léptetőmotor-vezérlés Raspberry Pi-vel
- Léptetőmotor összekapcsolása a 8051 mikrokontrollerrel
- Összekötő léptetőmotor PIC mikrovezérlővel
A léptetőmotor mikrokontroller nélkül is vezérelhető, lásd ezt a léptetőmotor meghajtó áramkört.
ULN2003 Motor Driver IC
A motort a mikrovezérlőtől kapott impulzusok szerint hajtják. Az alábbiakban látható az ULN2003 képdiagramja:
A csapok (IN1 - IN7) bemeneti csapok, az (OUT 1 - OUT 7) pedig a megfelelő kimeneti csapok. A COM megkapta a kimeneti eszközökhöz szükséges pozitív forrásfeszültséget. A léptetőmotor további csatlakozásait a kapcsolási rajz szakaszában mutatjuk be.
Áramkör és kapcsolatok
Az alábbiakban bemutatjuk a fenti kapcsolási rajz kapcsolási magyarázatát.
STM32F103C8 (kék tabletta)
Amint az alábbi ábrán láthatjuk, a PWM csapok hullámformátumban vannak jelölve (~), 15 ilyen csap van, amelyek felhasználhatók a léptető motor impulzus kimenetére. Csak négy tűre van szükségünk, használjuk (PA0 toPA3).
STM32F103C8 ULN2003 motorvezérlő IC-vel
A csapok (PA0 – PA3) az ULN2003 IC bemeneti csapjaival (IN1-IN4) összekapcsolt kimeneti tüskéknek számítanak.
Az STM32F103C8 csapjai |
Az ULN2003 IC pincéi |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC léptetőmotorral (28BYJ-48)
Az ULN2003 IC kimeneti csapjai (OUT1-OUT4) csatlakoznak a léptetőmotor csapjaihoz (narancs, sárga, rózsaszín és kék).
Az ULN2003 IC pincéi |
LÉPTETŐ MOTOR TŰJEI |
OUT1 |
NARANCSSÁRGA |
OUT2 |
SÁRGA |
OUT3 |
RÓZSASZÍN |
OUT4 |
KÉK |
COM |
PIROS |
STM32F103C8 potenciométerrel
Potenciométert használnak a léptető motor fordulatszámának beállításához.
POTENCIOMÉTER |
STM32F103C8 |
BAL (BEMENET) |
3.3 |
KÖZPONT (KIMENET) |
PA4 |
JOBB (GND) |
GND |
Forgó léptetőmotor STM32F103C8-mal
Az alábbiakban bemutatjuk a léptetőmotor működésének néhány lépését:
- Állítsa be a léptető motor fordulatszámát a potenciométer változtatásával.
- Ezután adja meg manuálisan az elforgatás lépéseit az óramutató járásával megegyező irányban (+ értékek) vagy az óramutató járásával ellentétes irányban (értékek) keresztül az ARDUINO IDE-ben (Eszközök-> Soros monitor) vagy a CTRL + SHIFT + M soros monitoron keresztül.
- A soros monitoron megadott bemeneti érték szerint a léptetőmotor bizonyos forgási lépéseit hajtja végre.
Például
A SOROZATOS MONITORBAN ADOTT ÉRTÉK |
FORGÁS |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) CLK ELLENI BÖLCS |
-1024 |
(-180) CLK ELLENI BÖLCS |
-512 |
(-90) CLK ELLENI BÖLCS |
STM32 PROGRAMOZÁSA léptetőmotorhoz
Az előző oktatóanyaghoz hasonlóan az STM32F103C8-at az Arduino IDE-vel USB porton keresztül programoztuk, FTDI programozó használata nélkül. Az STM32 Arduino IDE programozásával kapcsolatos információkért kövesse a linket. Úgy folytathatjuk a programozást, mint egy Arduino. A teljes kódot a projekt végén adjuk meg.
Először bele kell foglalnunk a #include léptető könyvtárfájlokat
#include
Akkor meghatározzuk a nem. a forgatáshoz szükséges lépések közül itt a 32-et használjuk, mert a Full-Step (4 lépéses szekvenciát) használjuk (360/32 = 11,25 fok). Tehát egy lépésben a tengely 11,25 fokot mozog, ami lépésszög. 4 lépéses sorrendben 4 lépés szükséges egy teljes forgatáshoz.
#define 32. LÉPÉSEK
Használhatunk Fél lépés módot is, ahol 8 lépéssorozat (360/64 = 5,625) lépésszög van.
Lépésenkénti fordulat = 360 / STEP ANGLE
A sebesség beállításakor analóg értéket kell venni a potenciométerhez kapcsolt PA4-ből. Tehát deklarálnunk kell a PIN-kódot ehhez
const int sebesség = PA4
Ezután az analóg értéket digitálisokká alakítottuk át úgy, hogy ezeket az értékeket egész típusú változóban tároltuk, utána feltérképeznünk kell az ADC értékeket a sebesség beállításához, így az alábbi állítást használjuk. Tudjon meg többet az ADC és az STM32 használatáról itt.
int adc = analogRead (sebességm); int eredmény = térkép (adc , 0, 4096, 1, 1023);
A sebesség beállításához a stepper.setSpeed (eredmény); Sebességtartományunk (1-1023).
Létre kell hoznunk az alábbiakhoz hasonló példányt a motorhoz csatlakoztatott csapok beállításához. Legyen óvatos ezekben a lépésekben, mivel többségük hibát követ el ebben a mintában. Helytelen mintát adnak, és emiatt a tekercsek nem tudnak feszültség alá kerülni.
Léptető léptető (STEPS, PA0, PA2, PA1, PA3);
Az alábbi utasítással a lépések értékét kapja meg a soros monitorról. Például 2048 értékre van szükségünk egy teljes forgáshoz (32 * 64 = 2048), azaz 64 lesz az áttétel, és 32 félfordulós sorrend lesz egy forgáshoz.
forgatás = Serial.parseInt ();
Az alábbi kódot használjuk a példány meghívására és a motor futtatására. Ha az elforgatási érték 1, akkor a lépést egyszeri lépésre hívja, és egy lépés megtörténik.
stepper.step (forgatás);
Az alábbiakban bemutatjuk a teljes kódot a demonstrációs videóval. Itt ellenőrizheti az összes léptetőmotorral kapcsolatos projektet, különféle más mikrovezérlőkkel való kapcsolódással