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


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

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

Шаговый двигатель 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 и его характеристики представлены на следующих рисунке.

Внешний вид шагового двигателя 28-BYJ48

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

Технические характеристики шагового двигателя 28-BYJ48

Распиновка шагового двигателя 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 приведен на следующем рисунке.

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

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

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

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

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

Схема подключения шагового двигателя 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).

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

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

(Проголосуй первым!)
Загрузка...
703 просмотров

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

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