- Необходими материали
- Стъпков двигател (28BYJ-48)
- ULN2003 IC драйвер за двигател
- Електрическа схема и връзки
- Въртящ се стъпков двигател със STM32F103C8
- ПРОГРАМИРАНЕ STM32 за стъпков двигател
Стъпковият двигател е безчетков постояннотоков двигател, който може да се върти под малки ъгли, тези ъгли се наричат стъпки. Обикновено стъпковият двигател използва 200 стъпки за завършване на 360 градусово завъртане, означава неговото завъртане с 1,8 градуса на стъпка. Стъпковият двигател се използва в много устройства, които се нуждаят от прецизно въртеливо движение, като роботи, антени, твърди дискове и др. Предлагат се основно два вида стъпкови двигатели, еднополюсни и биполярни. Unipolar е по-лесен за управление, управление и по-лесен за получаване. Тук в този урок ние свързваме стъпков двигател с платка STM32F103C8 (Синьо хапче).
Необходими материали
- STM32F103C8 (синьо хапче)
- Стъпков двигател (28BYJ-48)
- ULN2003 IC
- Потенциометър 10k
- Макет
- Джъмперни проводници
Стъпков двигател (28BYJ-48)
28BYJ-48 е Униполярен степер мотор, който изисква 5V доставките. Двигателят има еднополярно разположение от 4 намотки и всяка намотка е оценена за + 5V, поради което е сравнително лесно да се управлява с всякакви микроконтролери като Arduino, Raspberry Pi също STM32.Но ние се нуждаем от IC за задвижване като ULN2003, за да го задвижваме, защото стъпкови двигатели консумирайте силен ток и това може да повреди микроконтролерите.
Друга важна информация, която трябва да забележите, е Ъгълът на стъпка: 5.625 ° / 64. Това означава, че двигателят, когато работи в последователност от 8 стъпки, ще се движи с 5.625 градуса за всяка стъпка и ще отнеме 64 стъпки (5.625 * 64 = 360), за да завърши едно пълно завъртане. Други спецификации са предоставени в таблицата с данни по-долу:
Също така проверете взаимодействието със стъпков двигател с други микроконтролери:
- Свързване на стъпков двигател с Arduino Uno
- Управление на стъпков двигател с Raspberry Pi
- Свързване на стъпков двигател с микроконтролер 8051
- Свързване на стъпков двигател с микроконтролер PIC
Стъпков двигател може да се управлява и без никакъв микроконтролер, вижте тази схема на драйвер за стъпков двигател.
ULN2003 IC драйвер за двигател
Използва се за задвижване на двигателя според импулсите, получени от микроконтролера. По-долу е диаграмата на картината на ULN2003:
Пиновете (IN1 до IN7) са входни щифтове и (OUT 1 до OUT 7) са съответните изходни щифтове. COM се дава положително напрежение на източника, необходимо за изходните устройства. Допълнителни връзки за стъпков двигател са дадени по-долу в раздела на електрическата схема.
Електрическа схема и връзки
По-долу е обяснението на връзките за горната схема.
STM32F103C8 (синьо хапче)
Както можем да видим на диаграмата по-долу, PWM щифтовете са посочени във вълнов формат (~), има 15 такива щифта, които могат да се използват за импулсен изход към стъпков двигател. Трябват ни само четири щифта, използваме (PA0 до PA3).
STM32F103C8 с интегрална схема за двигател ULN2003
Пиновете (PA0 до PA3) се считат за изходни щифтове, които са свързани с входни щифтове (IN1-IN4) на ULN2003 IC.
ПИНОВЕ НА STM32F103C8 |
ПИНОВЕ НА ULN2003 IC |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC със стъпков двигател (28BYJ-48)
Изходните щифтове (OUT1-OUT4) на ULN2003 IC са свързани към щифтовете на стъпковите двигатели (оранжево, жълто, розово и синьо).
ПИНОВЕ НА ULN2003 IC |
ПИНОВЕ НА СТЪПЧЕН ДВИГАТЕЛ |
ИЗХОД1 |
ОРАНЖЕВ |
ИЗХОД2 |
ЖЪЛТ |
ИЗХОД3 |
РОЗОВ |
ИЗХОД4 |
СИН |
COM |
ЧЕРВЕН |
STM32F103C8 с потенциометър
Потенциометър се използва за настройка на скоростта на стъпковия двигател.
ПОТЕНЦИОМЕТЪР |
STM32F103C8 |
НАЛЯВО (ВХОД) |
3.3 |
ЦЕНТЪР (ИЗХОД) |
PA4 |
ДЯСНО (GND) |
GND |
Въртящ се стъпков двигател със STM32F103C8
По-долу има няколко стъпки за управление на стъпковия двигател:
- Задайте скоростта на стъпковия двигател чрез променлив потенциометър.
- След това въведете ръчно стъпки за завъртане по посока на часовниковата стрелка (+ стойности) или в посока, обратна на часовниковата стрелка (-стойности) чрез СЕРИАЛЕН МОНИТОР, наличен в ARDUINO IDE (Инструменти-> Сериен монитор) или CTRL + SHIFT + M.
- Според стойността на входа, дадена в серийния монитор, в стъпковия двигател се извършват определени стъпки на въртене.
Например
СТОЙНОСТ, ДАДЕНА В СЕРИАЛЕН МОНИТОР |
ЗАВЪРТАНЕ |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) АНТИ КЛЪК МЪДЪР |
-512 |
(-90) ANTI CLK WISE |
ПРОГРАМИРАНЕ STM32 за стъпков двигател
Подобно на предишния урок, ние програмирахме STM32F103C8 с Arduino IDE през USB порт, без да използваме FTDI програмист. За да научите повече за програмирането на STM32 с Arduino IDE, следвайте връзката. Можем да продължим да го програмираме като Arduino. Пълният код е даден в края на проекта.
Първо трябва да включим файловете на степерната библиотека #include
#include
Тогава дефинираме не. стъпки за завършване при въртене, тук използваме 32, защото използваме Full-Step (последователност от 4 стъпки), така (360/32 = 11.25 градуса). Така че за една стъпка валът се придвижва с 11,25 градуса, което е краен ъгъл. В последователност от 4 стъпки са необходими 4 стъпки за едно цялостно завъртане.
#define STEPS 32
Можем да използваме и режим на половин стъпка, където има 8 стъпкови последователности (360/64 = 5,625) крак ъгъл.
Стъпки на оборот = 360 / ЪГЪЛ СТЪПКА
Тъй като настройваме скоростта, трябва да вземем аналогова стойност от PA4, която е свързана към потенциометъра. Така че трябва да декларираме pin за това
const int speedm = PA4
След това сме преобразували аналоговата стойност в цифрова, като съхраняваме тези стойности в променлива от цял тип, след което трябва да картографираме ADC стойностите за настройка на скоростта, така че използваме изложението по-долу. Научете повече за използването на ADC със STM32 тук.
int adc = analogRead (speedm); int резултат = карта (adc , 0, 4096, 1, 1023);
За да зададем скорост, използваме stepper.setSpeed (резултат); Имаме диапазон на скоростта (1-1023).
Трябва да създадем екземпляр като по-долу, за да зададем щифтовете, които са свързани към мотора. Бъдете внимателни в тези стъпки, тъй като повечето от тях правят грешка тук в този модел. Те дават грешен модел и поради това намотките не могат да се захранват.
Стъпков степер (СТЪПКИ, PA0, PA2, PA1, PA3);
Извлечението по-долу се използва за получаване на стойността на стъпките от серийния монитор. Например ни трябват 2048 стойности за едно пълно завъртане (32 * 64 = 2048), което е 64 ще бъде предавателното число и 32 ще бъде половин стъпка последователност за едно завъртане.
завъртане = Serial.parseInt ();
По-долу кодът се използва за извикване на екземпляра и стартиране на мотора. Ако стойността на завъртане е 1, тя извиква еднократно функцията stepper и се извършва едно преместване
stepper.step (завъртане);
Пълният код с демонстрационно видео е даден по-долу. Тук също проверете всички проекти, свързани със стъпковия двигател, с взаимодействие с различни други микроконтролери