- Potrebni materijali
- Koračni motor (28BYJ-48)
- ULN2003 IC vozač motora
- Kružni dijagram i veze
- Rotirajući koračni motor sa STM32F103C8
- PROGRAMIRANJE STM32 za koračni motor
Koračni motor je istosmjerni motor bez četkica koji se može rotirati u malim kutovima, ti se kutovi nazivaju stepenicama. Koračni motor obično koristi 200 koraka da završi rotaciju od 360 stupnjeva, što znači da se okreće za 1,8 stupnjeva po koraku. Koračni motor koristi se u mnogim uređajima kojima je potrebno precizno rotacijsko kretanje poput robota, antena, tvrdih diskova itd. Koračni motor možemo zakretati pod bilo koji određeni kut dajući mu odgovarajuće upute. Dostupne su uglavnom dvije vrste koračnih motora, jednopolarni i bipolarni. Unipolar je lakši za upravljanje, upravljanje i lakši za dobivanje. Ovdje u ovom vodiču povezujemo koračni motor sa pločom STM32F103C8 (plava pilula).
Potrebni materijali
- STM32F103C8 (plava tableta)
- Koračni motor (28BYJ-48)
- ULN2003 IC
- Potenciometar 10k
- Breadboard
- Žice kratkospojnika
Koračni motor (28BYJ-48)
28BYJ-48 je unipolarni koračni motor koji zahtijeva napajanje od 5V. Motor ima jednopolarni raspored sa 4 zavojnice i svaka zavojnica je ocijenjena na + 5V, stoga je relativno lako upravljati bilo kojim mikrokontrolerom poput Arduina, Raspberry Pi-a i STM32.Ali za to nam je potreban IC za motorni pogon poput ULN2003, jer koračni motori troše jaku struju i mogu oštetiti mikrokontrolere.

Drugi važan podatak koji treba primijetiti je Kut koraka: 5,625 ° / 64. To znači da će se motor, kada radi u slijedu od 8 koraka, pomicati za 5,625 stupnjeva za svaki korak, a bit će potrebno 64 koraka (5,625 * 64 = 360) da izvrši jedno potpuno okretanje. Ostale specifikacije su navedene u tehničkom listu ispod:

Također provjerite međusobno povezivanje koračnog motora s drugim mikrokontrolerima:
- Povezivanje koračnog motora s Arduino Uno
- Upravljanje koračnim motorom s Raspberry Pi
- Povezivanje koračnog motora s mikrokontrolerom 8051
- Povezivanje koračnog motora s PIC mikrokontrolerom
Koračnim motorom se također može upravljati bez ikakvog mikrokontrolera, pogledajte ovaj krug pokretačkog koračnog motora.
ULN2003 IC vozač motora
Koristi se za pogon motora prema impulsima primljenim od mikrokontrolera. Ispod je dijagram slike ULN2003:

Igle (IN1 do IN7) su ulazne igle (OUT 1 do OUT 7) odgovarajuće izlazne igle. COM dobiva pozitivan napon izvora potreban za izlazne uređaje. Daljnji priključci za koračni motor dati su u nastavku u odjeljku sheme.
Kružni dijagram i veze

Ispod je objašnjenje veza za gornji dijagram sklopa.
STM32F103C8 (plava tableta)
Kao što možemo vidjeti na donjem dijagramu, PWM pinovi su naznačeni u valnom formatu (~), postoji 15 takvih pinova koji se mogu koristiti za impulsni izlaz na koračni motor. Trebamo samo četiri pina, koristimo (PA0 doPA3).

STM32F103C8 s ULN2003 IC pokretačkim motorom
Pribadače (PA0 do PA3) smatraju se izlaznim zatikovima koji su povezani s ulaznim pinovima (IN1-IN4) ULN2003 IC.
|
PINOVI STM32F103C8 |
PINOVI ULN2003 IC |
|
PA0 |
IN1 |
|
PA1 |
IN2 |
|
PA2 |
IN3 |
|
PA3 |
IN4 |
|
5V |
COM |
|
GND |
GND |
ULN2003 IC s koračnim motorom (28BYJ-48)
Izlazne iglice (OUT1-OUT4) ULN2003 IC povezane su s nožicama koračnih motora (narančasta, žuta, ružičasta i plava).
|
PINOVI ULN2003 IC |
PINOVI KORAČNOG MOTORA |
|
IZLAZ1 |
NARANČA |
|
IZLAZ2 |
ŽUTA BOJA |
|
OUT3 |
RUŽIČASTA |
|
IZLAZ4 |
PLAVA |
|
COM |
CRVENA |
STM32F103C8 s potenciometrom
Potenciometar se koristi za podešavanje brzine koračnog motora.
|
POTENCIOMETAR |
STM32F103C8 |
|
LIJEVO (ULAZ) |
3.3 |
|
SREDIŠTE (IZLAZ) |
PA4 |
|
DESNO (GND) |
GND |
Rotirajući koračni motor sa STM32F103C8
Ispod je nekoliko koraka za upravljanje koračnim motorom:
- Podesite brzinu koračnog motora promjenjivim potenciometrom.
- Zatim ručno unesite korake za rotaciju u smjeru kazaljke na satu (+ vrijednosti) ili u smjeru suprotnom od smjera kazaljke na satu (-vrijednosti) putem SERIJSKOG MONITERA prisutnog u ARDUINO IDE (Alati-> Serijski monitor) ili CTRL + SHIFT + M.
- Prema ulaznoj vrijednosti datoj u serijskom monitoru, određeni koraci rotacije odvijaju se u koračnom motoru.
Na primjer
|
VRIJEDNOST DANA U SERIJSKOM MONITORU |
ROTACIJA |
|
2048 |
(360) CLK MUDRI |
|
1024 |
(180) CLK MUDRI |
|
512 |
(90) CLK MUDRI |
|
-2048 |
(-360) ANTI CLK MUDR |
|
-1024 |
(-180) ANTI CLK MUDR |
|
-512 |
(-90) ANTI CLK MUDR |

PROGRAMIRANJE STM32 za koračni motor
Kao i prethodni tutorial, STM32F103C8 programirali smo s Arduino IDE-om putem USB priključka bez upotrebe FTDI programera. Da biste saznali više o programiranju STM32 s Arduino IDE, slijedite vezu. Možemo ga nastaviti programirati poput Arduina. Kompletni kod dan je na kraju projekta.
Prvo moramo uključiti datoteke biblioteke koraka #include
#include
Tada definiramo br. koraka koje treba izvršiti rotacijom, ovdje koristimo 32, jer koristimo Puni korak (redoslijed od 4 koraka), dakle (360/32 = 11,25 stupnjeva). Dakle, za jedan korak osovina se pomiče za 11,25 stupnjeva što je kut koraka. U slijedu od 4 koraka potrebna su 4 koraka za jedno potpuno okretanje.
#define STEPS 32
Također možemo koristiti način rada u pola koraka gdje postoji kut koraka od 8 koraka (360/64 = 5,625).
Koraci po okretu = 360 / KUT KUT
Kako podešavamo brzinu, moramo uzeti analognu vrijednost iz PA4 koja je spojena na potenciometar. Zato moramo proglasiti pin za to
const int brzinam = PA4
Zatim smo analognu vrijednost pretvorili u digitalnu pohranjivanjem tih vrijednosti u varijablu cjelobrojnog tipa, nakon čega moramo mapirati ADC vrijednosti za podešavanje brzine, pa koristimo donju izjavu. Ovdje saznajte više o korištenju ADC-a sa STM32.
int ADC = analogRead (speedm); int rezultat = mapa (adc , 0, 4096, 1, 1023);
Za postavljanje brzine koristimo stepper.setSpeed (rezultat); Imamo raspon brzine (1-1023).
Moramo stvoriti instancu kao u nastavku kako bismo postavili pinove koji su povezani s motorom. Budite oprezni u ovim koracima jer većina njih ovdje pogriješi u ovom uzorku. Daju pogrešan obrazac i zbog toga se zavojnice ne mogu napajati.
Stepenasti stepenik (KORACI, PA0, PA2, PA1, PA3);
Ispod se koristi naredba za dobivanje vrijednosti koraka sa serijskog monitora. Na primjer, treba nam 2048 vrijednosti za jedno puno okretanje (32 * 64 = 2048), odnosno 64, bit će prijenosni omjer, a 32 će biti polukorak za jednu rotaciju.
zakreni = Serial.parseInt ();
Ispod koda koristi se za pozivanje instance i pokretanje motora. Ako je vrijednost zakretanja 1, jedanput poziva funkcijski steper i gotov je jedan potez.
stepper.step (okretati);
Kompletni kod s demonstracijskim videom dan je u nastavku. Ovdje također provjerite sve projekte koračnog motora, uz međusobno povezivanje s raznim drugim mikrokontrolerima
