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

 

Arduino и TLC5940: управляем большим количеством сервомоторов

Автор: Mike(admin) от 27-03-2015, 06:00

Плата Arduino, очень популярная среди радиолюбителей и энтузиастов в области электроники, имеет достаточно широкие возможности в плане управления различными исполнительными механизмами и контроля их состояния. Arduino довольно часто применяют в проектах, связанных с робототехникой, где этой плате помимо контроля состояния датчиков и обработки логики действия объекта поручается управление различными электроприводами, сервомоторами, коллекторными двигателями и т.п. Но у большинства вариаций Arduino (Arduino UNO, Arduino Nano, Arduino Micro, Arduino Pro Mini) имеется одна небольшая проблемка. Они не располагают большим числом линий ввода/вывода, например, как у Arduino Mega, поэтому количество подключаемых к ним управляемых устройств весьма ограничено. Но если необходимо подключить к Arduino больше устройств, чем это позволяют линии ввода/вывода, то можно воспользоваться специальной микросхемой TLC5940, расширяющей возможности управления широтно-модулируемым сигналом (ШИМ).


Микросхема TLC5940 представляет собой 16-канальный драйвер ШИМ, предназначенный главным образом для работы с большим количеством светодиодов, светодиодными лентами и светодиодными матрицами.


Arduino и TLC5940: управляем большим количеством сервомоторов

Но, поскольку Tlc5940 просто ШИМ-драйвер, то без проблем можно задействовать эту микросхему для управления серводвигателями в количестве до 16 штук. Это может быть полезно, например, при создании робота-гексапода или любого другого механизма, где требуется большое количество приводов, управляемых от одной платы.


Документацию на микросхему 16-канального ШИМ-драйвера Tlc5940 можно взять здесь.


На рисунке, представленном ниже, показано расположение выводов микросхемы Tlc5940 следующая.


Tlc5940

Выводы out0 – out15 могут быть использованы для подключения сервоприводов. В данном примере мы задействуем пять сервомоторов, выделив для них выводы out0 – out4.


Управлять двигателями будем с помощью платы Arduino Uno. Для работы с Tlc5940 для Arduino имеется специальная библиотека, которую можно найти здесь. Она существенно упрощает взаимодействие с драйвером.


Ниже показано изображение, которое представляет собой схему подключения микросхемы 16-канального ШИМ-драйвера Tlc5940 к сервоприводам и Arduino.


Arduino и TLC5940: управляем большим количеством сервомоторов

Здесь используются резисторы номиналом 2.2 КОм.


Код для управления сервомоторами с помощью Arduino:



#include "Tlc5940.h"
#include "tlc_servos.h"
void setup()
{
  tlc_initServos();  
}
void loop()
{
  int i;
  
  for (i = 1;i <= 5; i++) {
    tlc_setServo(i, 0);
    Tlc.update();
    delay(300);
    tlc_setServo(i, 180);
    Tlc.update(); 
    delay(300);
  }
  
}

Переменная i задает количество серводвигателей, валы которых поочередно будут менять свое положение от 0 до 180 градусов. Изменение положения вала задается функцией tlc_setServo с двумя аргументами, первый аргумент определяет номер канала драйвера (номер подключенного двигателя), второй определяет угол поворота вала.


Ниже на видео показано функционирование большого количество сервоприводов, управляемых Arduino с помощью микросхемы 16-канального ШИМ-драйвера Tlc5940.





© digitrode.ru


<Via>


Теги: Arduino, сервомотор



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


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

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

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