Aklaypart.ru

Авто Журнал
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Шаговый двигатель ардуино как работает

Умные шторы. Управление шаговым двигателем на Arduino через bluetooth.

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

Технические характеристики Motor Shield L293D

Motor Shield L293D имеет следующие характеристики :

  • Максимальный продолжительный ток в каждом канале: 0,6 А;
  • Допустимый ток нагрузки 600мА на канал, пиковый ток — 1.2A
  • Питание моторов от 4.5 В до 36 В
  • 4-х канальное управление
  • Присутствует защита от перегрева
  • Присутствует контакт для дополнительного питания платы

Разберемся же, из чего состоит этот motor shield. На фотографии ниже вы можете найти цифры, на которые мы будем опираться.

1. Под цифрой «1» на плате находятся микросхемы, обеспечивающие работу шилда. Две крайние микросхемы называются L293D, они позволяют управлять слаботочными двигателями с током потребления до 600 мА на канал. По центру же находится микросхема, которая уменьшает количество управляющих выводов.

2. Под вторым номером находятся выводы, отвечающие за подключение сервоприводов. На плате обозначены контакты питания, так что подключить сервопривод не составит труда.

3. Под цифрой 3 обозначены клемма, к которым нужно подключать электродвигатели. Имеются 4 клемма под названиями: M1, M2, M3, M4. Следовательно, подключить к плате возможно только 4 электромотора.

4. Здесь размещены клемма, через которые вы можете запитать ваш шилд, ведь для работы моторов необходимо большее напряжение, чем напряжение от Arduino. Хотелось бы отметить важный момент, чтобы запитывать Motor Shield L293D иным источником необходимо снять перемычку, которая находится под цифрой 5

5. Под цифрой пять находится перемычка, отвечающая за питание шилда.

Также на motor shield L293D находится светодиод, который горит только тогда, когда подсоединенные электромоторы запитанны и могут выполнять свое предназначение. А если светодиод не проявляет признаков жизни, то ваши электромоторы работать не будут, так как источника питания не хватает на работу моторов или его совсем нет.

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

Шаг 2: Как использовать шаговый двигатель и драйвер

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

Читать еще:  Характеристика асинхронного двигателя siemens

1. Установите 3D-роутер

Уже есть прошивка (грбл)

Контрольное оборудование уже существует

Механический дизайн уже существует

Интеграция программного обеспечения уже на месте

2. Управление движением

Там нет механического дизайна

Нет контрольного программного обеспечения

3. Промышленная мехатроника

Плата управления и прошивки обмениваются:

Arduino и программирование C

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 28-BYJ48 представлен на следующем рисунке:

Первый вопрос, который напрашивается при взгляде на этот рисунок – почему в отличие от обычного двигателя из этого шагового двигателя выходят 5 проводов различных цветов? Чтобы понять это давайте сначала разберемся с принципами работы шагового двигателя.

Начнем с того, что шаговые двигатели не вращаются, а “шагают”, поэтому они и называются шаговыми двигателями. То есть в один момент времени они будут передвигаться только на один шаг. Чтобы добиться этого в устройстве шаговых двигателей присутствует несколько катушек и на эти катушки нужно подавать питание в определенной последовательности чтобы двигатель вращался (шагал). При подаче питания на каждую катушку двигатель делает один шаг, при последовательной подаче питания на катушки двигатель будет совершать непрерывные шаги, то есть вращаться. Давайте более подробно рассмотрим катушки, присутствующие внутри шагового двигателя.


Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.

Так почему же этот двигатель называется 28-BYJ48? Честно говоря, мы не знаем точного ответа на этот вопрос. Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.

Читать еще:  Вечный электромагнитный двигатель своими руками

На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 5V, поэтому необходимо подавать на красный провод 5V. Также мы знаем что это четырехфазный шаговый двигатель поскольку в нем четыре катушки. Передаточное число этого двигателя — 1: 64. Это означает, что вал, который вы видите снаружи, сделает одно полное вращение в том случае, когда двигатель внутри сделает 64 оборота. Это происходит благодаря шестерням, которые включены между двигателем и выходным валом. Эти шестерни помогают в увеличении крутящего момента.

Еще одним важным показателем, который нам следует знать, является угол шага: 5.625°/64. Это значит что когда двигатель сделает последовательность в 8 шагов он будет поворачиваться на 5.625° при каждом шаге и за один полный оборот он сделает 64 шага (5.625*64=360).

Расчет шагов на оборот для шагового двигателя

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

В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25).

Справедлива следующая формула:

Количество шагов за оборот = 360 / угол шага.

В нашем случае 360/11.25 = 32 шага за оборот.

Зачем нужен драйвер мотора для управления шаговым двигателем

Большинство шаговых двигателей будут работать только с помощью модуля драйвера мотора. Это связано с тем, что микроконтроллер (в нашем случае плата Arduino) не может обеспечить достаточный ток на своих контактах ввода/вывода для работы двигателя. Поэтому мы будем использовать внешний драйвер мотора для управления нашим шаговым двигателем — модуль ULN2003. В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.

  • Невысокие скорости вращения.
  • Возможность «проскальзывания» ротора
  • Возможно явление резонанса.
  • Может произойти потеря позиционирования при механических перегрузках.

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

Принципиальная схема подключения

Читать еще:  Включение противотуманок при запуске двигателя

К шаговому двигателю необходим драйвер. В нашем случае это драйвер ULN2003. Ток на обмотках шагового двигателя может достигать 160 мА, что слишком много для выводов ардуино. Поэтому управлять двигателем будем через драйвер.

Шаговый двигатель и драйвер ULN2003

Мы можем управлять двигателем напрямую из программы. Для этого будем последовательно подавать напряжение на разные пины драйвера. Таким образом создавать напряжение на обмотках статора. Ротор будет менять положение в соответствии с магнитным полем.

Загрузите данный скетч в ардуино. Таким образом мы запрограммируем постоянное движение шагового двигателя. Каждый шаг цикла отвечает за один оборот ротора двигателя.

Режимы работы двигателя

Для управления шаговым двигателем 28BYJ 48 используют один из двух режимов подключения.

  • полношаговый режим – 4 ступени импульсов на 1 шаг

КонтактТакты
1234
A — orange11
B — yellow11
C — pink11
D — blue11
  • полушаговый режим – 8 ступеней импульсов на 1 шаг

КонтактТакты
12345678
A — orange111
B — yellow111
C — pink111
D — blue111

Разбор програмного скетча для управления электромоторами с помощью Motor Shield L293D и Arduino

Схему соединений мы собрали. Скетч вставили и загрузили. У нас все получилось, но мне кажется, что мы что-то забыли. Мы забыли разобраться в том, как же работает наша установка! Рассматривать мы будем участки кода, которые могут вызвать у вас непонимание. Перейдем к изучению написанного кода.

В участке кода, представленном ниже, мы задаем максимальную скорость, для электромоторов. Мы указали максимальное значение скорости равное «255».

В данном участке кода мы командой «motor1. run (FORWARD);» задаем движение электродвигателям вперед, а командой «motor1. setSpeed (255);» указываем, с какой скоростью будут они работать. Если вы захотите установить максимальную скорость, то ее значение должно быть таким, которое указано в строчке «motor1. setSpeed (255);» (в нашем случае значение максимальной скорости равно 255).

Вы можете заметить строчки, в которых указана функция » delay «(Пример такого кода указан ниже). Эта функция отвечает за продолжительность действия того или иного действия. В нашем случае » delay » указывает, какое количество времени двигатель будет бездействовать.

Надеюсь у вас все получилось! Если у вас остались вопросы, можете написать нам в вконтакте или в комментариях ниже. Мы постараемся ответить на ваши вопросы в скором времени!

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector