- Стъпкови двигатели:
- Изчисляване на стъпките на оборот за стъпков двигател:
- Защо така се нуждаем от модули на драйвер за стъпкови двигатели?
- Схема и обяснение за управление на позицията на стъпков двигател Arduino:
- Код за Arduino Board:
- Работа на стъпков двигател с Arduino:
Стъпковите двигатели все повече заемат позициите си в света на електрониката. Започвайки от нормална камера за наблюдение до сложни CNC машини / робот, тези стъпкови двигатели се използват навсякъде като задвижващи механизми, тъй като осигуряват точно управление. Стъпковият двигател е безчетков, синхронен двигател, който завършва пълно завъртане в няколко стъпки. В този урок за стъпков двигател Arduino ще научим за най-често наличния стъпков двигател 28-BYJ48 и как да го свържем с Arduino, използвайки модула на стъпков двигател ULN2003.
Стъпкови двигатели:
Нека да разгледаме този 28-BYJ48 стъпков двигател.
Добре, така че за разлика от нормалния двигател с постоянен ток, този има пет проводника с всички изискани цветове и защо е така? За да разберем това, първо трябва да знаем как работи степер и каква е неговата специалност. На първо място, степерните двигатели не се въртят, те стъпват и така са известни още като стъпкови двигатели. Значи те ще се движат само една стъпка наведнъж. Тези двигатели имат последователност от бобини, които се намират в тях и тези бобини трябва да се захранват по определен начин, за да накарат двигателя да се върти. Когато всяка намотка се захранва, двигателят прави стъпка и последователността на захранването ще накара двигателя да прави непрекъснати стъпки, като по този начин го кара да се върти. Нека да разгледаме бобините, намиращи се вътре в двигателя, за да знаем точно откъде идват тези проводници.
Както можете да видите, двигателят има еднополюсна 5-оловна бобина. Има четири намотки, които трябва да се захранват в определена последователност. Червените проводници ще бъдат снабдени с + 5V, а останалите четири проводника ще бъдат изтеглени на земята за задействане на съответната намотка. Използваме микроконтролер като Arduino, който захранва тези бобини в определена последователност и кара двигателя да изпълнява необходимия брой стъпки.
И така, защо този двигател се нарича 28-BYJ48 ? Сериозно!!! Не знам. Няма техническа причина този двигател да бъде наречен така; може би трябва да се потопим много по-дълбоко в него. Нека разгледаме някои от важните технически данни, получени от листа с данни на този двигател на снимката по-долу.
Това е глава, пълна с информация, но трябва да разгледаме няколко важни, за да знаем какъв тип степер използваме, за да можем да го програмираме ефективно. Първо знаем, че това е 5V стъпков двигател, тъй като захранваме червения проводник с 5V. Тогава също така знаем, че това е четирифазен стъпков двигател, тъй като в него има четири намотки. Сега предавателното число е дадено 1:64. Това означава, че шахтата, която виждате отвън, ще извърши едно пълно завъртане само ако двигателят вътре се завърти 64 пъти. Това се дължи на предавките, които са свързани между двигателя и изходния вал, тези зъбни колела помагат за увеличаване на въртящия момент.
Друга важна информация, която трябва да забележите, е Ъгълът на стъпка: 5.625 ° / 64. Това означава, че двигателят, когато работи в последователност от 8 стъпки, ще се движи с 5.625 градуса за всяка стъпка и ще отнеме 64 стъпки (5.625 * 64 = 360), за да завърши едно пълно завъртане. Можете да научите повече за работата на стъпкови двигатели с ARM LPC2148, ATMega16 Microcontroller, MSP430.
Изчисляване на стъпките на оборот за стъпков двигател:
Важно е да знаете как да изчислявате стъпките на оборот за вашия стъпков двигател, защото само тогава можете да го програмирате ефективно.
В Arduino ще работим с мотора в последователност от 4 стъпки, така че ъгълът на крачка ще бъде 11,25 °, тъй като е 5,625 ° (даден в таблицата с данни) за 8 стъпки, той ще бъде 11,25 ° (5,625 * 2 = 11,25).
Стъпки на оборот = 360 / ъгъл на стъпка
Тук 360 / 11.25 = 32 стъпки на оборот.
Защо така се нуждаем от модули на драйвер за стъпкови двигатели?
Повечето стъпкови двигатели ще работят само с помощта на драйвер модул. Това е така, защото модулът на контролера (в нашия случай Arduino) няма да може да осигури достатъчно ток от своите I / O щифтове за работа на двигателя. Така че ние ще използваме външен модул като ULN2003 модул като драйвер за стъпков двигател. Има много видове модули на водача и рейтингът на един ще се промени в зависимост от типа на използвания двигател. Основният принцип за всички модули на драйвера ще бъде източникът / потапянето на достатъчно ток, за да работи двигателят.
Схема и обяснение за управление на позицията на стъпков двигател Arduino:
Схемата на веригата за проекта за управление на стъпков двигател arduino е показана по-горе. Използвали сме стъпков двигател 28BYJ-48 и драйверния модул ULN2003. За захранване на четирите намотки на стъпковия двигател използваме цифровите щифтове 8,9,10 и 11. Драйверният модул се захранва от 5V щифт на Arduino Board.
Но захранвайте драйвера с външно захранване, когато свързвате малко товар към степния двигател. Тъй като просто използвам мотора за демонстрационни цели, използвах релсата + 5V на платката Arduino. Също така не забравяйте да свържете земята на Arduino със земята на модула Diver.
Код за Arduino Board:
Преди да започнем програмирането с нашия Arduino, нека разберем какво всъщност трябва да се случи в програмата. Както казахме по-рано, ще използваме метод на последователност от 4 стъпки, така че ще имаме четири стъпки, които трябва да изпълним за извършване на едно пълно завъртане.
Стъпка |
Pin Energized |
Енергизирани бобини |
Етап 1 |
8 и 9 |
А и Б |
Стъпка 2 |
9 и 10 |
Б и В. |
Стъпка 3 |
10 и 11 |
C и D |
Стъпка 4 |
11 и 8 |
D и A |
Модулът Driver ще има четири светодиода, с помощта на които можем да проверим коя бобина се захранва във всеки един момент. Видеото, което показва последователността на енергизирането, може да бъде намерено в края на този урок.
В този урок ще напишем кода на стъпковия двигател на arduino и за това ще програмираме Arduino по такъв начин, че да можем да въведем броя стъпки, които трябва да бъдат предприети от стъпковия двигател през серийния монитор на Arduino. Пълната програма може да бъде намерена в края на урока, няколко важни реда са обяснени по-долу.
Броят на стъпките на оборот за нашия стъпков двигател беше изчислен на 32; следователно въвеждаме това, както е показано в реда по-долу
#define STEPS 32
След това трябва да създадете екземпляри, в които ние посочваме щифтовете, към които сме свързали стъпковия двигател.
Стъпков степер (СТЪПКИ, 8, 10, 9, 11);
Забележка: Номерът на пиновете нарочно е разреден като 8,10,9,11. Трябва да следвате същия модел, дори ако смените щифтовете, към които е свързан мотора ви.
Тъй като използваме стъпковата библиотека Arduino, можем да настроим скоростта на двигателя, като използваме долния ред. Скоростта може да варира между 0 и 200 за стъпкови двигатели 28-BYJ48.
stepper.setSpeed (200);
Сега, за да накараме мотора да се движи с една стъпка, можем да използваме следния ред.
stepper.step (val);
Броят на стъпките, които трябва да бъдат преместени, ще бъде предоставен от променливата „val“. Тъй като имаме 32 стъпки и 64 като предавателно отношение, трябва да преместим 2048 (32 * 64 = 2048), за да направим едно пълно завъртане.
Стойността на променливата “val” може да бъде въведена от потребителя с помощта на серийния монитор.
Работа на стъпков двигател с Arduino:
След като се осъществи връзката, хардуерът трябва да изглежда нещо подобно на снимката по-долу.
Сега качете програмата по-долу във вашия Arduino UNO и отворете серийния монитор. Както беше обсъдено по-рано, ще трябва да направим 2048 стъпки, за да направим едно цялостно завъртане, така че когато въведем 2048, двигателят ще направи едно пълно завъртане по посока на часовниковата стрелка, като направи 2048 стъпки. За да завъртите в посока, обратна на часовниковата стрелка, просто въведете номера с отрицателен знак „-“. Така че, въвеждането на -1024 ще накара двигателя да се завърти наполовина в посока против часовниковата стрелка. Можете да въведете всякакви желани стойности, като въвеждането на 1 ще накара двигателя да направи само една стъпка.
Надявам се, че сте разбрали проекта и ви е било приятно да го изградите. Цялостната работа на проекта е показана във видеото по-долу. Ако имате някакви съмнения, публикувайте ги в раздела за коментари под нашия форум.