Оглавление:
- Шаг 1: Создайте демонстрационную схему TLC5940
- Шаг 2:
- Шаг 3: Управление TLC5940
- Шаг 4:
- Шаг 5: Использование двух или более TLC5940
- Шаг 6: Управление сервоприводами с помощью TLC5940
- Шаг 7: Управление током и теплом
Видео: Arduino и микросхема драйвера ШИМ светодиодов TLC5940: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этой статье мы рассмотрим 16-канальную микросхему драйвера светодиодов Texas Instruments TLC5940. Наша причина сделать это - продемонстрировать другой, более простой способ управления многими светодиодами, а также сервоприводами. Прежде всего, вот несколько примеров TLC5940. Вы можете заказать TLC5940 в PMD Way с бесплатной доставкой по всему миру.
TLC5940 доступен в версии DIP, а также для поверхностного монтажа. Это действительно удобная часть, позволяющая регулировать яркость шестнадцати отдельных светодиодов с помощью ШИМ (широтно-импульсной модуляции) - и вы также можете последовательно подключить более одного TLC5940 для управления еще большим.
В этом руководстве мы объясним, как управлять одной или несколькими микросхемами TLC5940 со светодиодами, а также рассмотрим управление сервоприводами. На этом этапе загрузите копию TLC5940 (.pdf), поскольку вы будете ссылаться на нее в этом процессе. Кроме того, загрузите и установите библиотеку TLC5940 Arduino от Alex Leone, которую можно найти здесь. Если вы не знаете, как установить библиотеку, нажмите здесь.
Шаг 1: Создайте демонстрационную схему TLC5940
Следующая схема - это минимум, необходимый для управления шестнадцатью светодиодами от вашего Arduino или совместимого. Вы можете использовать его, чтобы поэкспериментировать с различными функциями и получить представление о том, что возможно. Тебе понадобится:
- Arduino Uno или совместимая плата
- 16 обычных светодиодов для повседневного использования, которые могут иметь прямой ток до 20 мА
- резистор 2 кОм (плюс-минус 10%)
- керамический 0,1 мкФ и электролитический конденсатор 4,7 мкФ
Обратите внимание на ориентацию светодиода - и помните, что TLC5940 - это драйвер светодиодов с общим анодом - поэтому все аноды светодиодов подключаются вместе, а затем к 5 В.
Шаг 2:
Для этой конкретной схемы вам не понадобится внешний источник питания 5 В, однако он может понадобиться в будущем. Назначение резистора - контролировать количество тока, который может протекать через светодиоды. Требуемое сопротивление резистора рассчитывается по следующей формуле:
R = 39,06 / Imax, где R (в Ом) - это номинал резистора, а Imax (в амперах) - это максимальное количество тока, которое вы хотите протекать через светодиоды.
Например, если у вас есть светодиоды с прямым током 20 мА, расчет резистора будет: R = 39,06 / 0,02 = 1803 Ом. После того, как вы собрали схему, откройте IDE Arduino и загрузите скетч BasicUse.pde, который находится в папке с примерами для библиотеки TLC5940.
Вам должен быть представлен результат, аналогичный тому, что показан на видео.
Шаг 3: Управление TLC5940
Теперь, когда схема работает, как нам управлять TLC5940? Во-первых, обязательные функции - включить библиотеку в начале скетча с:
#include "Tlc5940.h"
а затем инициализируйте библиотеку, поместив в void setup () следующее:
Tlc.init (x);
x - необязательный параметр - если вы хотите установить для всех каналов определенную яркость сразу после запуска скетча, вы можете вставить значение от 0 до 4095 для x в функцию Tlc.init ().
Теперь, чтобы включить или выключить канал / светодиод. Каждый канал пронумерован от 0 до 15, и яркость каждого канала может быть отрегулирована от 0 до 4095. Это двухэтапный процесс … Во-первых, используйте одну или несколько из следующих функций, чтобы настроить требуемые каналы и соответствующую яркость (ШИМ уровень):
Tlc.set (канал, яркость);
Например, если вы хотите, чтобы первые три канала были включены на полную яркость, используйте:
Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set (2, 4095);
Вторая часть заключается в использовании следующего для обновления TLC5940 необходимыми инструкциями из первой части:
Tlc.update ();
Если вы хотите отключить сразу все каналы, просто используйте:
Tlc.clear ();
Шаг 4:
Вам не нужно вызывать TLC.update () после функции очистки. Ниже приведен быстрый пример эскиза, который устанавливает значения яркости / ШИМ для всех каналов на разные уровни:
#include "Tlc5940.h" void setup () {Tlc.init (0); // инициализируем TLC5940 и отключаем все каналы}
пустой цикл ()
{для (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); задержка (1000); для (int я = 0; я <16; я ++) {Tlc.set (я, 2046); } Tlc.update (); задержка (1000); для (int я = 0; я <16; я ++) {Tlc.set (я, 3069); } Tlc.update (); задержка (1000); для (int я = 0; я <16; я ++) {Tlc.set (я, 4095); } Tlc.update (); задержка (1000); }
Возможность управления индивидуальной яркостью для каждого канала / светодиода также может быть полезна при управлении светодиодами RGB - затем вы можете легко выбрать необходимые цвета с помощью разных уровней яркости для каждого элемента. Демонстрация показана на видео.
Шаг 5: Использование двух или более TLC5940
Вы можете последовательно подключить несколько TLC5940, чтобы управлять большим количеством светодиодов. Во-первых, подключите следующий TLC5940 к Arduino, как показано на демонстрационной схеме, за исключением того, что подключите вывод SOUT (17) первого TLC5940 к выводу SIN (26) второго TLC5940, когда данные проходят от Arduino через с первого TLC5940 на второй и так далее. Затем повторите процесс, если у вас есть третий и т. Д. Не забудьте резистор, который устанавливает ток!
Затем откройте файл tlc_config.h, расположенный в папке библиотеки TLC5940. Измените значение NUM_TLCS на количество подключенных вместе TLC5940, затем сохраните файл и удалите файл Tlc5940.o, который также находится в той же папке. Наконец перезапустите IDE. Затем вы можете ссылаться на каналы второго и последующих TLC5940 последовательно с первого. То есть первое - 0 ~ 15, второе - 16 ~ 29 и так далее.
Шаг 6: Управление сервоприводами с помощью TLC5940
Поскольку TLC5940 генерирует выходной сигнал ШИМ (широтно-импульсной модуляции), он также отлично подходит для управления сервоприводами. Как и светодиоды - вы можете контролировать до шестнадцати одновременно. Идеально подходит для создания роботов, похожих на пауков, странных часов или создания некоторого шума.
При выборе сервопривода убедитесь, что он не потребляет более 120 мА во время работы (максимальный ток на канал), а также обратите внимание на раздел «Управление током и нагревом» в конце этого руководства. И используйте внешнее питание с сервоприводами, не полагайтесь на линию 5V Arduino.
Подключить серво просто - линия GND подключается к GND, 5V (или вывод напряжения питания) подключается к вашему 5V (или другому подходящему источнику питания), а вывод сервоуправления подключается к одному из выходов TLC5940. Наконец - и это важно - подключите резистор 2,2 кОм между используемыми выходными контактами TLC5940 и 5 В. Управление сервоприводом не сильно отличается от светодиода. Вам понадобятся первые две линии в начале эскиза:
#include "Tlc5940.h" #include "tlc_servos.h"
затем в void setup () следующее:
tlc_initServos ();
Затем используйте следующую функцию, чтобы выбрать сервопривод (канал) для работы и требуемый угол (угол):
tlc_setServo (канал, угол);
Как и светодиоды, вы можете связать несколько из них вместе, а затем выполнить команду с помощью:
Tlc.update ();
Итак, давайте посмотрим все это в действии. В следующем примере эскиз охватывает четыре сервопривода под углом 90 градусов:
#include "Tlc5940.h" #include "tlc_servos.h"
установка void ()
{tlc_initServos (); // Примечание: это снизит частоту ШИМ до 50 Гц. }
пустой цикл ()
{для (int angle = 0; angle = 0; angle--) {tlc_setServo (0, angle); tlc_setServo (1, угол); tlc_setServo (2, угол); tlc_setServo (3, угол); Tlc.update (); задержка (5); }}
На видео показан этот эскиз в действии с четырьмя сервоприводами.
Если ваши сервоприводы не вращаются на правильный угол - например, вы запрашиваете 180 градусов, а они вращаются только на 90 или около того, потребуется небольшая дополнительная работа.
Вам нужно открыть файл tlc_servos.h, расположенный в папке библиотеки TLC5940 Arduino, и поэкспериментировать со значениями SERVO_MIN_WIDTH и SERVO_MAX_WIDTH. Например, измените SERVO_MIN_WIDTH с 200 на 203 и SERVO_MAX_WIDTH с 400 на 560.
Шаг 7: Управление током и теплом
Как упоминалось ранее, TLC5940 может обрабатывать максимум 120 мА на канал. Поэкспериментировав, вы можете заметить, что TLC5940 действительно нагревается - и это нормально.
Обратите внимание, что существует максимальный предел мощности, которая может рассеиваться до разрушения детали. Если вы используете обычные садовые светодиоды или сервоприводы меньшего размера, проблема с питанием не возникнет. Однако, если вы планируете максимально использовать TLC5940 - просмотрите примечания, предоставленные авторами библиотеки.
Заключение
И снова вы на пути к управлению невероятно полезной деталью с помощью Arduino. Теперь, проявив немного воображения, вы можете создавать всевозможные визуальные дисплеи или получать удовольствие от множества сервоприводов.
Этот пост предоставлен вам pmdway.com, который предлагает продукты TLC5940, а также все необходимое для производителей и любителей электроники с бесплатной доставкой по всему миру.
Рекомендуемые:
Устранение проблемы последовательного порта USB / драйвера Mac Lilypad: 10 шагов (с изображениями)
Устранение проблемы с последовательным портом / драйвером USB Lilypad для Mac: по состоянию на 2016 год вашему Mac меньше 2 лет? Вы недавно обновляли ОС (Yosemite или что-то более новое)? Ваши USB / MP3-диски Lilypad больше не работают? Мой Учебник покажет вам, как я исправил свои USB-накопители Lilypad. Ошибка, с которой я столкнулся, была связана
Visuino RAMPS для широтно-импульсной модуляции (ШИМ) с использованием светодиодов: 8 шагов
Visuino RAMPS для широтно-импульсной модуляции (PWM) с использованием светодиода: в этом уроке мы будем использовать светодиод, подключенный к Arduino UNO и Visuino, чтобы уменьшить яркость светодиода с помощью широтно-импульсной модуляции (PWM) и компонента Ramps. Посмотрите демонстрационное видео
Выбор шагового двигателя и драйвера для проекта автоматического затенения Arduino: 12 шагов (с изображениями)
Выбор шагового двигателя и драйвера для проекта автоматизированного затененного экрана Arduino: в этом руководстве я проделаю шаги, которые я предпринял, чтобы выбрать шаговый двигатель и драйвер для прототипа проекта автоматизированного затененного экрана. Шторы - это популярные и недорогие модели Coolaroo с ручным приводом, и я хотел заменить их
ШИМ с ESP32 - Диммирование светодиода с ШИМ на ESP 32 с Arduino IDE: 6 шагов
ШИМ с ESP32 | Диммирование светодиода с помощью ШИМ на ESP 32 с помощью Arduino IDE: в этой инструкции мы увидим, как сгенерировать сигналы ШИМ с ESP32 с помощью Arduino IDE & ШИМ в основном используется для генерации аналогового выхода из любого микроконтроллера, и этот аналоговый выход может быть любым в диапазоне от 0 В до 3,3 В (в случае esp32) & из
Создание драйвера лазера на плате Arduino: 6 шагов (с изображениями)
Создайте драйвер лазера из платы Arduino. Это руководство предназначено для создания драйвера лазера из платы на базе Arduino для лазера Adafruit мощностью 5 мВт. Я выбрал плату Arduino, так как в будущем, возможно, захочу управлять лазером удаленно со своего компьютера. Я также воспользуюсь образцом кода Arduino, чтобы