В этом руководстве мы собираемся подключить двигатель постоянного тока к Arduino UNO и управлять его скоростью с помощью концепции ШИМ (широтно-импульсной модуляции). Эта функция включена в UNO для получения переменного напряжения выше постоянного. Здесь объясняется метод ШИМ; рассмотрим простую схему, показанную на рисунке.
Если кнопка нажата, если фигура, то мотор начнет вращаться и будет двигаться до тех пор, пока кнопка не будет нажата. Это нажатие является непрерывным и изображено на первой волне рисунка. Если, например, предположить, что кнопка нажимается на 8 мс и открывается на 2 мс в течение цикла 10 мс, в этом случае двигатель не будет испытывать полное напряжение батареи 9 В, поскольку кнопка нажата только 8 мс, поэтому среднеквадратичное напряжение на клеммах мотор будет около 7В. Из-за этого пониженного среднеквадратичного напряжения двигатель будет вращаться, но с пониженной скоростью. Теперь среднее время включения за период 10 мс = время включения / (время включения + время выключения), это называется рабочим циклом и составляет 80% (8 / (8 + 2)).
Во втором и третьем случаях кнопка нажимается еще меньше времени по сравнению с первым случаем. Из-за этого действующее значение напряжения на клеммах двигателя еще больше снижается. Из-за этого пониженного напряжения скорость двигателя еще больше снижается. Это снижение скорости при непрерывном рабочем цикле происходит до момента, когда напряжение на клеммах двигателя не будет достаточным для вращения двигателя.
Таким образом, мы можем заключить, что ШИМ может использоваться для изменения скорости двигателя.
Прежде чем идти дальше, нам нужно обсудить H-BRIDGE. Теперь эта схема выполняет в основном две функции: первая - управлять двигателем постоянного тока с помощью управляющих сигналов малой мощности, а вторая - изменять направление вращения двигателя постоянного тока.
Рисунок 1
фигура 2
Все мы знаем, что для двигателя постоянного тока, чтобы изменить направление вращения, нам нужно изменить полярность напряжения питания двигателя. Поэтому для изменения полярности мы используем H-мост. Теперь на рисунке 1 выше у нас есть четыре переключателя. Как показано на рисунке 2, для вращения двигателя A1 и A2 замкнуты. Из-за этого ток течет через двигатель справа налево, как показано во 2- й части рисунка 3. А пока рассмотрим, как двигатель вращается по часовой стрелке. Теперь, если переключатели A1 и A2 разомкнуты, B1 и B2 замкнуты. Ток через двигатель течет слева направо, как показано на 1- м шаге. часть рисунка 3. Это направление тока противоположно первому, поэтому мы видим потенциал на клеммах двигателя, противоположный первому, поэтому двигатель вращается против часовой стрелки. Так работает H-BRIDGE. Однако двигатели малой мощности могут приводиться в движение H-BRIDGE IC L293D.
L293D - это ИС H-BRIDGE, предназначенная для управления двигателями постоянного тока малой мощности и показанная на рисунке. Эта ИС состоит из двух h-мостов и может управлять двумя двигателями постоянного тока. Таким образом, эту ИС можно использовать для управления двигателями робота по сигналам микроконтроллера.
Как обсуждалось ранее, эта ИС имеет возможность изменять направление вращения двигателя постоянного тока. Это достигается за счет управления уровнями напряжения на INPUT1 и INPUT2.
Включить пин |
Входной контакт 1 |
Входной контакт 2 |
Направление двигателя |
Высоко |
Низкий |
Высоко |
Поверни направо |
Высоко |
Высоко |
Низкий |
Повернуть налево |
Высоко |
Низкий |
Низкий |
Стоп |
Высоко |
Высоко |
Высоко |
Стоп |
Как показано на рисунке выше, для вращения по часовой стрелке 2А должно быть высоким, а 1А - низким. Точно так же против часовой стрелки 1A должно быть высоким, а 2A должно быть низким.
Как показано на рисунке, Arduino UNO имеет 6 каналов ШИМ, поэтому мы можем получить ШИМ (переменное напряжение) на любом из этих шести контактов. В этом уроке мы собираемся использовать PIN3 как выход PWM.
Аппаратное обеспечение: ARDUINO UNO, блок питания (5 В), конденсатор 100 мкФ, светодиод, кнопки (две штуки), резистор 10 кОм (две штуки).
Программное обеспечение: Arduino IDE (Arduino nightly).
Принципиальная электрическая схема
Схема подключена на макетной плате согласно схеме, показанной выше. Однако при подключении светодиодных клемм необходимо соблюдать осторожность. Хотя в этом случае кнопки показывают эффект подпрыгивания, это не вызывает серьезных ошибок, поэтому на этот раз нам не о чем беспокоиться.
ШИМ от UNO прост, в обычных случаях настроить контроллер ATMEGA для сигнала ШИМ непросто, мы должны определить множество регистров и настроек для точного сигнала, однако в ARDUINO нам не нужно иметь дело со всеми этими вещами.
По умолчанию все файлы заголовков и регистры предопределены ARDUINO IDE, нам просто нужно их вызвать, и на этом у нас будет выход PWM на соответствующем выводе.
Теперь, чтобы получить выход ШИМ на соответствующем выводе, нам нужно поработать над тремя вещами:
|
Сначала нам нужно выбрать выходной контакт ШИМ из шести контактов, после этого нам нужно установить этот контакт как выходной.
Затем нам нужно включить функцию PWM в UNO, вызвав функцию analogWrite (pin, value). Здесь «пин» представляет номер пина, на котором нам нужен выход ШИМ, мы помещаем его как «3». Итак, на PIN3 мы получаем вывод ШИМ.
Значение представляет собой рабочий цикл включения, от 0 (всегда выключен) до 255 (всегда включен). Мы собираемся увеличивать и уменьшать это число нажатием кнопки.
UNO имеет максимальное разрешение «8», дальше нельзя идти, отсюда значения от 0 до 255. Однако можно уменьшить разрешение ШИМ с помощью команды «analogWriteResolution ()», введя значение от 4-8 в скобках, мы можем изменить его значение с четырехбитного ШИМ на восьмибитное ШИМ.
Переключатель предназначен для изменения направления вращения двигателя постоянного тока.