Съдържание:

Arduino и TLC5940 PWM LED драйвер IC: 7 стъпки
Arduino и TLC5940 PWM LED драйвер IC: 7 стъпки

Видео: Arduino и TLC5940 PWM LED драйвер IC: 7 стъпки

Видео: Arduino и TLC5940 PWM LED драйвер IC: 7 стъпки
Видео: Arduino and TLC5940 demonstration 2024, Ноември
Anonim
Arduino и TLC5940 PWM LED драйвер IC
Arduino и TLC5940 PWM LED драйвер IC

В тази статия ще разгледаме 16-каналната LED драйвер на Texas Instruments TLC5940. Нашата причина да направим това е да демонстрираме друг, по -лесен начин за управление на много светодиоди - а също и серво. Първо, ето няколко примера за TLC5940. Можете да поръчате TLC5940 от PMD Way с безплатна доставка по целия свят.

TLC5940 се предлага във версия DIP, както и с повърхностен монтаж. Това наистина е удобна част, която ви позволява да регулирате яркостта на шестнадесет отделни светодиода чрез ШИМ (широтно-импулсна модулация)-а също така можете да подредите повече от един TLC5940, за да контролирате още повече.

По време на този урок ще обясним как да управляваме една или повече TLC5940 интегрални схеми със светодиоди, а също така ще разгледаме контрола на серво. На този етап, моля, изтеглете копие на TLC5940 (.pdf), тъй като ще се отнасяте към него чрез този процес. Освен това, моля, изтеглете и инсталирайте библиотеката TLC5940 Arduino от Alex Leone, която можете да намерите тук. Ако не сте сигурни как да инсталирате библиотека, щракнете тук.

Стъпка 1: Изградете демонстрационна верига TLC5940

Изградете демонстрационна верига TLC5940
Изградете демонстрационна верига 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 заедно с всичко за производители и ентусиасти на електрониката, с безплатна доставка по целия свят.

Препоръчано: