На этой странице представлена система управления шаговым двигателем 28BYJ-48 на драйвере ULN2003. С помощью нее вы сможете протестировать этот мотор-редуктор прежде, чем использовать в своих проектах.
Мы постоянно видим работу шаговых двигателей, даже не задумываясь об этом : стрелки электромеханических часов, приводы принтеров и сканеров. Они применяются там, где требуется точное позиционирование и заданная скорость, управлять которыми можно цифровым способом.
Шаговый двигатель 28BYJ-48 с драйвером ULN2003
В обычных электродвигателях крутящий момент на валу возникает в результате воздействия на проводник с током магнитного поля, не важно, чем оно создано : постоянным магнитом или обмотками под напряжением. Естественно, ни про какое точное управление здесь речи не идет. В шаговых моторах также есть обмотки в статоре, создающие магнитное поле и воздействующие на ротор, а вот в нем вместо проводников установлены постоянные магниты. Наверняка вы когда-нибудь пытались соединить два магнита : одной стороной они притягиваются, а другой отталкиваются. На этом и основан принцип действия шагового двигателя : подавая напряжение на обмотки статора в разных сочетаниях, вы заставляете ротор занимать то или иное положение (где-то магниты притягиваются к обмоткам, где-то отталкиваются). Да, ротор вращаться не будет, он зафиксируется в какой-то одной позиции, но если из импульсов тока к обмоткам сформировать "круговую" последовательность, вал мотора начнет крутиться. Как нельзя лучше для генерации таких импульсов подходит контроллер.
Цифровое управление имеет еще один важный плюс : меняя частоту подачи сигналов к обмоткам статора, можно регулировать скорость вращения ротора, при чем с очень большой точностью.
Есть и еще одно не очевидное преимущество шаговых двигателей. Один оборот вала мотора состоит из дискретных перемещений (шагов), число которых определяется количеством обмоток статора и магнитов ротора, и это число постоянное для конкретной модели двигателя, а значит угол шага тоже величина постоянная и меняться не может. Это свойство шаговых моторов позволяет отказаться от обратной связи по углу, так как вы всегда знаете (по количеству импульсов с микроконтроллера) на какой угол повернулся вал двигателя.
Система управления шаговым двигателем
И это еще не все. Что происходит с ротором обычного электродвигателя после снятия питания (остановки)? Он будет находиться в свободном состоянии - вы можете спокойно провернуть рукой вал привода, например, центробежного насоса мощностью 20-30 кВт, что уж говорить про микродвигатели. Это не страшно, если мы говорим про электромотор пожарного или балластного насоса. А если это привод грузоподъемного механизма или колес какого-нибудь робота - после остановки груз на гаке просто уйдет вниз, а робот-вездеход по инерции укатится в неизвестном направлении. То есть нужны тормоза, что сильно усложняет конструкцию. Но при использовании шагового двигателя эта проблема решается сама собой - после того, как ротор мотора повернется в нужное нам положение, питание с обмоток статора можно не снимать, и они своим магнитным полем зафиксируют положение вала - чем не тормоз?
СОСТАВ СИСТЕМЫ
PLC Arduino UNO с шилдом Sensor Shield v 5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания дисплея и мотора, шаговый двигатель 28BYJ-48 и драйвер ULN2003 для его управления, кнопочный пост с 5-ю кнопками.
Немного подробней о шаговом двигателе 28BYJ-48. Фактически это мотор-редуктор. Сам двигатель в полушаговом режиме (в скетче применен именно такой) может совершать 64 шага за оборот. Плюс имеется редуктор с передаточным коэффициентом 1/63,68395 (в интернете часто округляют до 64). Соответственно, на выходе мы имеем приблизительно 4075 шагов выходного вала на оборот или один шаг равен 0,0883°. Как видите, можно очень точно позиционировать вал.
Так как двигатель 28BYJ-48 потребляет большой ток (больше 200 мА), подключать и питать его напрямую от Arduino нельзя. Для этих целей служит драйвер на базе микросхемы ULN2003. К электродвигателю он подключается с помощью специального штекера, перепутать положение которого невозможно. Входные пины драйвера (IN1 - IN4) подсоединяются к любым цифровым пинам контроллера. Питание к драйверу (пины + и -) подается от отдельного источника (не менее 1 А). Для этих целей подойдет Sensor Shield. Перемычка на драйвере одета. Зачем она нужна, непонятно - если ее убрать, мотор работать не будет.
|