цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Робот на основе Arduino. Часть I – управление двигателями

Робот на основе Arduino. Часть I – управление двигателями

Автор: Mike(admin) от 25-04-2014, 07:01

Arduino – настолько распространенная и простая плата, что сложно не сделать на ее основе какого-нибудь незамысловатого робота. Например, такого:


Робот на основе Arduino

Сегодня мы рассмотрим связь с драйвером TB6612FNG и управление двигателем с помощью этого драйвера.


Но почему мы должны использовать драйвер? Нельзя ли просто соединить двигатель напрямую с Arduino, как, например, соединить светодиод или любой другой компонент? К сожалению, нельзя. Выходные порты просто не смогут выдать столько тока, сколько нужно для вращения двигателя. В данном проекте используется контроллер платы Arduino, максимальный ток вывода которого составляет 40 мА, а небольшой двигатель может потреблять уже 500 мА.


Двигатели Mabuchi FA-130RA-18100


Двигатели, которые использовались для построения вышеприведенного робота, называются FA-130RA-18100. Это компактные игрушечные моторы. Они могут потреблять около 0.1 – 0.2 А на холостых оборотах. В реальной работе их токопотребление может составить 0.5 А. Если вы боитесь, что ваше приложение будет потреблять больше тока, то следует предусматривать какую-нибудь защиту от превышения тока, например, можно поставить предохранитель или организовать в микроконтроллере обратную связь по току.


Контроллер двигателя Toshiba TB6612FNG


Контроллер TB6612FNG является недорогим и легко монтируемым на плату решением. Некоторые компании продают этот контроллер уже в виде готового модуля, например, Pololu TB6612FNG Motor Driver Carrier. Он может стоить около $5.


Основные характеристики драйвера:


  • Два независимых канала двунаправленного управления двигателем

  • Диапазон логического напряжения 2.7 - 5.5 В

  • Диапазон напряжения питания двигателя 2.5 - 13.5 В

  • Непрерывный выходной ток 1 А, максимум на канал 3 А; можно соединять каналы, чтобы удвоить выходной ток.

Соединение TB6612FNG с микроконтроллером, источником питания и двигателями


Робот на основе Arduino

Левая сторона:


• GND – земля микроконтроллера
• VCC – питание от микроконтроллера (2.7-5.5 В)
• AO1 – выход к контакту (-) двигателя A
• AO2 - выход к контакту (+) двигателя A
• BO2 - выход к контакту (+) двигателя B
• BO1 - выход к контакту (-) двигателя B
• VMOT – положительная полярность источника питания двигателя
• GND - отрицательная полярность источника питания двигателя

Правая сторона:


• PWMA – на ШИМ-вывод микроконтроллера
• AIN2 - на цифровой вывод микроконтроллера
• AIN1 - на цифровой вывод микроконтроллера
• STBY – на цифровой вывод микроконтроллера или соединить с питанием
• BIN1 - на цифровой вывод микроконтроллера
• BIN2 - на цифровой вывод микроконтроллера
• PWMB – на ШИМ-вывод микроконтроллера
• GND – земля микроконтроллера

Итак, как нам этим управлять?


Во-первых, ничего работать не станет, если вывод STBY не будет в высоком логическом состоянии. Его можно «навечно» подтянуть к питанию, или управлять им с помощью микроконтроллера.


Если вы хотите, чтобы двигатель A крутился по часовой стрелке, установите AIN1 в лог. «1», AIN2 в лог. «0», PWMA >0. Для вращения против часовой стрелки AIN1 в лог. «0», AIN2 в лог. «1», PWMA >0. Если вы не хотите регулировать скорость с помощью ШИМ (PWM), то можете выводы PWMA и PWMB соединить с питанием. В случае с Arduino это будет эквивалентно AnalogWrite(5,255);. В случае управления скоростью с помощью ШИМ нужно озаботиться минимальной шириной импульса, при которой будет обеспечиваться минимальная скорость. Низкие значения ШИМ могут привести также к прерывистой работе двигателя. В данном случае минимальное значение ШИМ, при котором двигатель бесперебойно вращался на минимальных оборотах, составило 35. В целом, это значение зависит от выбранного источника питания двигателя, мощности двигателя и веса робота.


Теперь, когда вы можете контролировать направление и скорость вращения каждого двигателя, вы можете легко управлять роботом. Равномерное вращение двигателей A и B приведет к движению робота по прямой. При этом для организации ровного движения робота могут потребоваться эксперименты со значениями ШИМ. Так, например, для одного мотора может потребоваться значение 255, а для другого 249. Вращая только один двигатель можно осуществлять повороты.


Документация на драйвер


Документация на двигатель




Робот на основе Arduino. Часть II – шасси, средства передвижения и питание


Робот на основе Arduino. Часть III – подключение, программирование и пробный пуск


Робот на основе Arduino. Часть IV – ультразвуковой датчик HC-SR04




Перевод © digitrode.ru


<Источник>


Теги: Arduino, Робот, HC-SR04



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

Комментарии:

Оставить комментарий