Съдържание:
- Стъпка 1: Изградете демонстрационна верига TLC5940
- Стъпка 2:
- Стъпка 3: Управление на TLC5940
- Стъпка 4:
- Стъпка 5: Използване на два или повече TLC5940s
- Стъпка 6: Управление на сервомоторите с TLC5940
- Стъпка 7: Управление на тока и топлината
Видео: Arduino и TLC5940 PWM LED драйвер IC: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В тази статия ще разгледаме 16-каналната LED драйвер на Texas Instruments TLC5940. Нашата причина да направим това е да демонстрираме друг, по -лесен начин за управление на много светодиоди - а също и серво. Първо, ето няколко примера за TLC5940. Можете да поръчате TLC5940 от PMD Way с безплатна доставка по целия свят.
TLC5940 се предлага във версия DIP, както и с повърхностен монтаж. Това наистина е удобна част, която ви позволява да регулирате яркостта на шестнадесет отделни светодиода чрез ШИМ (широтно-импулсна модулация)-а също така можете да подредите повече от един TLC5940, за да контролирате още повече.
По време на този урок ще обясним как да управляваме една или повече TLC5940 интегрални схеми със светодиоди, а също така ще разгледаме контрола на серво. На този етап, моля, изтеглете копие на TLC5940 (.pdf), тъй като ще се отнасяте към него чрез този процес. Освен това, моля, изтеглете и инсталирайте библиотеката TLC5940 Arduino от Alex Leone, която можете да намерите тук. Ако не сте сигурни как да инсталирате библиотека, щракнете тук.
Стъпка 1: Изградете демонстрационна верига TLC5940
Следващата схема е минимумът, необходим за управление на шестнадесет светодиода от вашия Arduino или съвместим. Можете да го използвате, за да експериментирате с различни функции и да добиете представа какво е възможно. Ще имаш нужда:
- Arduino Uno или съвместима платка
- 16 нормални ежедневни светодиода, които могат да имат ток напред до 20 mA
- 2 kΩ резистор (дай или вземи 10%)
- 0.1uF керамика и 4.7uF електролитен кондензатор
Обърнете внимание на LED ориентацията-и не забравяйте, че TLC5940 е драйвер за LED с общ анод-така че всички LED аноди са свързани заедно и след това към 5V.
Стъпка 2:
За тази конкретна схема няма да ви е необходимо външно 5V захранване - но в бъдеще може да се нуждаете от такова. Целта на резистора е да контролира количеството ток, който може да тече през светодиодите. Необходимата стойност на резистора се изчислява по следната формула:
R = 39.06 / Imax, където R (в ома) е стойността на резистора, а Imax (в ампери) е максималното количество ток, което искате да протича през светодиодите.
Например, ако имате светодиоди с ток 20 mA напред - изчислението на резистора ще бъде: R = 39,06 / 0,02 = 1803 ома. След като сглобите веригата - отворете Arduino IDE и качете скицата BasicUse.pde, която е в примерната папка за библиотеката TLC5940.
Трябва да получите представяне, подобно на това, което е показано във видеото.
Стъпка 3: Управление на TLC5940
Сега, когато веригата работи, как да контролираме TLC5940? Първо, задължителните функции - включват библиотеката в началото на скицата с:
#include "Tlc5940.h"
и след това инициализирайте библиотеката, като поставите следното в void setup ():
Tlc.init (x);
x е незадължителен параметър - ако искате да настроите всички канали на определена яркост веднага щом скицата започне, можете да вмъкнете стойност между 0 и 4095 за x във функцията Tlc.init ().
Сега за включване или изключване на канал/LED. Всеки канал е номериран от 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 () след функцията clear. Следва кратка примерна скица, която задава стойностите на яркостта/ШИМ на всички канали на различни нива:
#include "Tlc5940.h" void setup () {Tlc.init (0); // инициализираме TLC5940 и изключваме всички канали}
void loop ()
{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); забавяне (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); забавяне (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); забавяне (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); забавяне (1000); }
Възможността за управление на индивидуалната яркост за всеки канал/светодиод може да бъде полезна и при управление на RGB светодиоди - след това лесно можете да изберете необходимите цветове чрез различни нива на яркост за всеки елемент. Във видеото е показана демонстрация.
Стъпка 5: Използване на два или повече TLC5940s
Можете да свържете последователно доста TLC5940s, за да контролирате повече светодиоди. Първо - свържете следващия TLC5940 към Arduino, както е показано в демонстрационната верига - с изключение на свързването на извода SOUT (17) на първия TLC5940 към щифта SIN (26) на втория TLC5940 - докато данните пътуват от Arduino през първият TLC5940 към втория и така нататък. След това повторете процеса, ако имате трети и т.н. Не забравяйте resisotr, който задава тока!
След това отворете файла tlc_config.h, който се намира в папката на библиотеката TLC5940. Променете стойността на NUM_TLCS на броя на TLC5940, които сте свързали заедно, след това запишете файла и също така изтрийте файла Tlc5940.o, който също се намира в същата папка. Накрая рестартирайте IDE. След това можете да се обърнете към каналите на втория и следващия TLC5940 последователно от първия. Тоест първият е 0 ~ 15, вторият е 16 ~ 29 и т.н.
Стъпка 6: Управление на сервомоторите с TLC5940
Тъй като TLC5940 генерира PWM (широчинно-импулсна модулация) изход, той е чудесен и за шофиране на серво. Точно като светодиодите - можете да управлявате до шестнадесет наведнъж. Идеален за създаване на роботи, подобни на паяци, странни часовници или вдигане на шум.
Когато избирате вашето серво, уверете се, че той не извлича повече от 120 mA по време на работа (максималният ток на канал), а също така обърнете внимание на раздела „Управление на ток и топлина“в края на този урок. И използвайте външно захранване със серво, не разчитайте на 5V линията на Arduino.
Свързването на серво е лесно - GND линията се свързва с GND, 5V (или проводникът на захранващото напрежение) се свързва към вашето 5v (или друго подходящо захранване), а управляващият щифт на серво се свързва към един от изходите на TLC5940. Накрая - и това е важно - свържете 2.2kΩ резистор между използвания (ите) изход (и) на TLC5940 и 5V. Управлението на серво не е толкова различно от светодиода. Имате нужда от първите два реда в началото на скицата:
#include "Tlc5940.h" #include "tlc_servos.h"
след това следното в void setup ():
tlc_initServos ();
След това използвайте следната функция, за да изберете кой серво (канал) да работи и необходимия ъгъл (ъгъл):
tlc_setServo (канал, ъгъл);
Точно като светодиодите можете да съберете няколко от тях заедно и след това да изпълните командата с:
Tlc.update ();
Така че нека видим всичко това в действие. Следният примерна скица обхваща четири сервомотора на 90 градуса:
#include "Tlc5940.h" #include "tlc_servos.h"
void setup ()
{tlc_initServos (); // Забележка: това ще намали честотата на ШИМ до 50Hz. }
void loop ()
{for (int ъгъл = 0; ъгъл = 0; ъгъл--) {tlc_setServo (0, ъгъл); 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 mA на канал. След някои експерименти може да забележите, че TLC5940 наистина се затопля - и това е добре.
Обърнете внимание, че има максимално ограничение за количеството мощност, което може да се разсее, преди да унищожите частта. Ако просто използвате нормални светодиоди за градински сортове или по-малки сервоустройства, захранването няма да е проблем. Ако обаче планирате да използвате TLC5940 максимално - моля, прегледайте бележките, предоставени от авторите на библиотеката.
Заключение
Отново сте на път да контролирате невероятно полезна част с вашия Arduino. Сега с малко въображение можете да създавате всякакви визуални дисплеи или да се забавлявате с много серво.
Тази публикация ви е предоставена от pmdway.com - който предлага продукти TLC5940 заедно с всичко за производители и ентусиасти на електрониката, с безплатна доставка по целия свят.
Препоръчано:
Boomstick - Анимиран LED драйвер: 10 стъпки
Boomstick - Анимиран LED драйвер: Boomstick е проект за създаване на анимиран низ от програмируеми RGB светодиоди, захранван от малък Arduino и реагиращ на музика. Това ръководство се фокусира върху една хардуерна конфигурация, която можете да сглобите, за да стартирате софтуера Boomstick. Този ч
DIY 4xN LED драйвер: 6 стъпки
DIY 4xN LED драйвер: LED дисплеите се използват широко в системи, вариращи от цифрови часовници, броячи, таймери, електронни измервателни уреди, основни калкулатори и други електронни устройства, способни да показват цифрова информация. Фигура 1 изобразява пример за 7-сегментен LED дисплей
ATTiny84 базиран 3A стъпка надолу LED драйвер: 7 стъпки (със снимки)
ATTiny84 базиран 3A стъпка надолу LED драйвер: Ако искате да захранвате 10W LED, можете да използвате този 3A LED драйвер. С 3 Cree XPL светодиода можете да постигнете 3000 лумена
Драйвер на DC мотор, използващ мощност Mosfets [PWM контролиран, 30A Half Bridge]: 10 стъпки
Драйвер на DC мотор, използващ мощност Mosfets [PWM контролиран, 30A Half Bridge]: Основен източник (Изтеглете Gerber/Поръчайте печатната платка): http://bit.ly/2LRBYXH
1 Watt RGB LED драйвер за Ardiuno: 3 стъпки
RGB LED драйвер с мощност 1 Watt за Ardiuno: RGB LED е авансов тип светодиод, който може да произвежда повече цветове от обикновените моноцветни светодиоди. Единичен 3 -милиметров монохромен може лесно да се управлява от ardiuno с помощта на резистор (100 -220 ома за оптимална яркост), но 1 ватов светодиод или RGB светодиод не може да задвижва, тъй като