Рубрики
Схемы на PIC

Подключение шагового двигателя 28BYJ-48 к микроконтроллеру PIC

Шаговый двигатель – это специальный тип электродвигателя, который осуществляет вращение небольшими шагами. Можно регулировать скорость и направление его вращения, а также число шагов, на которое должен «повернуться» двигатель. Существует два основных типа шаговых двигателей: униполярные и биполярные. Униполярные проще в управлении и использовании, а также дешевле. В данной статье мы рассмотрим подключение шагового двигателя 28BYJ-48 к микроконтроллеру PIC16F877A.

Шаговый двигатель 28BYJ-48 является униполярным, он прост в использовании и сравнительно недорог. Работает он от 5V постоянного тока (5V DC). Для управления им мы будем использовать микросхему драйвера шаговых двигателей ULN2003, которая представляет собой массив пар Дарлингтона (Darlington pair array). Она выдерживает ток нагрузки до 500mA. Использование данной микросхемы в нашем проекте обусловлено тем, что выдерживаемый контактами микроконтроллера PIC ток недостаточен для управления шаговым двигателем.

Также на нашем сайте мы рассматривали подключение шагового двигателя к другим микроконтроллерам (платам):

Необходимые компоненты

  1. Микроконтроллер PIC16F877A (купить на AliExpress).
  2. Шаговый двигатель 28BYJ-48 (купить на AliExpress).
  3. Драйвер шаговых двигателей ULN2003 (купить на AliExpress).
  4. Программатор PICkit 3 (купить на AliExpress).
  5. Кварцевый генератор 20 МГц (купить на AliExpress).
  6. Конденсаторы 33 пФ (2 шт.) (купить на AliExpress).
  7. Резистор 4,7 кОм (купить на AliExpress).
  8. Напряжение питания 5V с током не менее 500mA.
  9. Макетная плата.
  10. Соединительные провода.

Шаговый двигатель 28BYJ-48

Внешний вид шагового двигателя 28BYJ-48 и его характеристики представлены на следующих рисунке.

Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.

Распиновка шагового двигателя 28BYJ-48 приведена на следующем рисунке.

Как вы видите из представленного рисунка внутри двигателя находятся две катушки с отводами от их центральных частей. Красный провод является общим для обоих катушек и подключается к напряжению питания (VCC 5V).

Остальные 4 провода (розовый, красный, желтый и синий) используются для управления вращением шагового двигателя. Существует 3 режима управления вращением данного двигателя: режим полного шага, режим полушага и режим волнового управления.

Режим полного шага (Full Drive)

Если на оба статора двигателя одновременно подается питание, то двигатель делает один полный с полным крутящим моментом. Последовательность управления для данного режима представлена в следующей таблице.

Шаг Синий Розовый Желтый Оранжевый
1 1 1 0 0
2 0 1 1 0
3 0 0 1 1
4 1 0 0 1

Режим полушага (Half-Drive)

Его также называют режимом восьмитактной коммутации. В этом случае двигатель поочередно делает шаг и находится в режиме удержания, то есть работает по алгоритму: шаг – остановка – шаг – остановка и т.д. Вэтом случае также, как и в предыдущем, шаг делается только тогда, когда ток протекает через две обмотки двигателя. При остановке ток протекает только через одну фазу, которая в этот момент становится обмоткой удержания и фиксирует положение ротора. Достоинством данного режима по сравнению с режимом полного шага является более высокое угловое разрешение, а недостатком – меньший крутящий момент. Последовательность управления для данного режима представлена в следующей таблице.

Шаг Синий Розовый Желтый Оранжевый
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 1
6 0 0 0 1
7 1 0 0 1
8 1 0 0 0

Режим волнового управления (Wave Drive)

В этом режиме питание подается на один статор. Для совершения шага нужно также 4 действия, как и в режиме полного шага. В данном режиме двигатель потребляет меньше энергии, но соответственным образом уменьшается и его крутящий момент.

Шаг Синий Розовый Желтый Оранжевый
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1

Драйвер шагового двигателя ULN2003

Внешний вид драйвера шагового двигателя ULN2003 приведен на следующем рисунке.

На этом рисунке контакты, обозначенные надписью желтого цвета, используются для подключения двигателей, а контакты, обозначенные розовым цветом – для подключения микроконтроллера. Также необходимо установить правильное положение джампера, обозначенного красным цветом чтобы он подключал диод, обеспечивающий защиту двигателя.

В нашем проекте мы будем вращать двигатель в режиме полного шага сначала по часовой стрелке, а потом против часовой стрелки. Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Схема проекта

Схема подключения шагового двигателя 28BYJ-48 к микроконтроллеру PIC представлена на следующем рисунке.

Соединения между драйвером ULN2003A и микроконтроллером PIC16F877A следующие:
A.IN1 => Pin33
B.IN2 => Pin34
C.IN3 => Pin35
D.IN4 => Pin36

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Объяснение программы для микроконтроллера PIC

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы должны настроить биты конфигурации микроконтроллера и подключить заголовочные файлы необходимых библиотек. После этого мы можем переходить к функции void main.

В коде программы мы будем использовать три функции (которые соответствуют режимам полного шага, полушага и режиму волнового управления) для вращения двигателя по часовой и против часовой стрелки:

  1. void full_drive (char direction).
  2. void half_drive (char direction).
  3. void wave_drive (char direction).

Исходный код программы

Видео, демонстрирующее работу проекта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *