Итак, шаговым двигателем называют
электромеханическое устройство, преобразующее электрические сигналы в
дискретные угловые перемещения вала. Т.е. перемещение происходит шагом на определенный угол, а скорость и количеством шагов мы уже управляем сами! Для управлением таких двигателей необходим контроллер и драйвер.
Шаговые двигатели находят применение у
радиолюбителей в основном в такой сфере,как робототехника. Так же они
вам непременно понадобятся, если вы хотите собрать ЧПУ станок или 3D
принтер, почему нет!
В середине шагового двигателя
находится зубчатое колесо - ротор, по краям - несколько электромагнитов с
такими же зубцами. На рисунке видно, что когда зубцы колеса находятся в
точности напротив верхнего электромагнита, зубцы правого и левого
электромагнитов смещены на четверть расстояния между зубцами, а нижнего -
на половину этого расстояния. Для поворота штока такого двигателя
необходимо подключать питание к катушкам последовательно, при этом в
одном направлении будет происходить вращение штока мотора по часовой
стрелки, в другом против.
Шаговые двигатели можно разделить на
две группы - биполярные и униполярные. Внешне они отличаются количеством
подключаемых проводов - биполярные - 4 вывода, униполярные - 6 (иногда
5).
Униполярные двигатели имеют
две обмотки, от середины каждой обмотки сделан отвод. Это позволяет
изменять направление магнитного поля, создаваемого обмоткой, простым
переключением половинок обмотки.
Драйвер управления таким двигателем
имеет 4 транзисторных ключа. Средние выводы обмоток могут быть
объединены внутри двигателя, поэтому такой двигатель может иметь и 5
выводов.
Для приведения такого двигателя в
движение необходимо последовательно выводить на порты логическую единицу
в такой последовательности 1a,2a,1b,2b (для движения по часовой
стрелки!). Диоды служат для защиты транзистора от выбросов обратного
напряжения с мотора.
Вместо транзисторных ключей удобно использовать микросхему ULN2003A.
int i;
for(i=1;i<=100;i++) // 100 шагов двигателя
{
PORTB.0 = 1;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 0;
delay_ms(20); // Задает скорость движения
PORTB.0 = 0;
PORTB.1 = 1;
PORTB.2 = 0;
PORTB.3 = 0;
delay_ms(20);
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;
PORTB.4 = 0;
delay_ms(20);
PORTB.0 = 0;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;
delay_ms(20);
};
Видео работы:
for(i=1;i<=100;i++) // 100 шагов двигателя
{
PORTB.0 = 1;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 0;
delay_ms(20); // Задает скорость движения
PORTB.0 = 0;
PORTB.1 = 1;
PORTB.2 = 0;
PORTB.3 = 0;
delay_ms(20);
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;
PORTB.4 = 0;
delay_ms(20);
PORTB.0 = 0;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;
delay_ms(20);
};
Комментариев нет:
Отправить комментарий