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

 

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, сервомотор




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

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

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