Мазмуну:

Arduino жана TLC5940 PWM LED айдоочу IC: 7 кадам
Arduino жана TLC5940 PWM LED айдоочу IC: 7 кадам

Video: Arduino жана TLC5940 PWM LED айдоочу IC: 7 кадам

Video: Arduino жана TLC5940 PWM LED айдоочу IC: 7 кадам
Video: Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNO 2024, Ноябрь
Anonim
Arduino жана TLC5940 PWM LED Driver IC
Arduino жана TLC5940 PWM LED Driver IC

Бул макалада биз Texas Instruments TLC5940 16 каналдуу LED айдоочусу ICди карап чыгабыз. Муну жасообуздун себеби - көптөгөн светодиоддорду айдоонун дагы бир оңой жолун көрсөтүү, ошондой эле сервоприводдор. Биринчиден, бул жерде TLC5940тын бир нече мисалдары келтирилген. Сиз дүйнө жүзү боюнча бекер жеткирүү менен PMD Wayден TLC5940 заказ кыла аласыз.

TLC5940 DIP версиясында, ошондой эле бетине орнотулган. Бул чындыгында PWM (импульстун модуляциясы) аркылуу он алты жеке LEDдин жарыгын жөнгө салууга мүмкүндүк берген ыңгайлуу бөлүк-жана андан да көбүрөөк көзөмөлдөө үчүн бирден ашык TLC5940 чынжырлуу болот.

Бул окуу куралы учурунда биз бир же бир нече TLC5940 IC'лерди LED менен кантип башкарууну түшүндүрөбүз, ошондой эле көзөмөлдөөчү серволорду карайбыз. Бул жерде TLC5940 (.pdf) көчүрмөсүн жүктөп алыңыз, анткени сиз бул процесс аркылуу ага кайрыласыз. Мындан тышкары, Алекс Леонанын TLC5940 Arduino китепканасын жүктөп алып, бул жерден тапса болот. Эгер китепкананы кантип орнотууну билбесеңиз, бул жерди басыңыз.

1 -кадам: TLC5940 демонстрация схемасын куруңуз

TLC5940 демонстрация схемасын куруңуз
TLC5940 демонстрация схемасын куруңуз

Төмөнкү схема сиздин Arduino же шайкеш келген он алты LEDди башкаруу үчүн зарыл болгон минималдуу көрсөткүч. Сиз аны ар кандай функциялар менен эксперимент жүргүзүү жана мүмкүн болгон нерселер жөнүндө түшүнүк алуу үчүн колдоно аласыз. Сага керек болот:

  • An Arduino Uno же шайкеш келген такта
  • 16 кадимки, күндүзгү диоддор 20 мА чейин алдыга токко ээ боло алышат
  • 2 кОмдук резистор (берүү же алуу 10%)
  • 0.1uF керамика жана 4.7uF электролиттик конденсатор

LED багытына көңүл буруңуз-жана TLC5940 кадимки аноддуу LED драйвери экенин унутпаңыз-андыктан бардык LED аноддору биригип, анан 5Вга туташат.

2-кадам:

Бул конкреттүү схема үчүн сизге тышкы 5В электр энергиясынын кереги жок болот - бирок келечекте сизге керек болушу мүмкүн. Резистордун максаты - диод аркылуу өтүүчү токтун көлөмүн көзөмөлдөө. Керектүү резистордун мааниси төмөнкү формула менен эсептелет:

R = 39.06 / Imax, мында R (Омдо) - бул резистордун мааниси, ал эми Imax (Амперде) - бул светодиод аркылуу агууну каалаган токтун максималдуу суммасы.

Мисалы, эгерде сизде 20 мА алдыңкы агымы бар светодиоддор болсо - резистордун эсеби мындай болмок: R = 39.06 / 0.02 = 1803 Ом. Сиз схеманы чогулткандан кийин - Arduino IDEди ачыңыз жана TLC5940 китепканасынын мисал папкасында жайгашкан BasicUse.pde эскизин жүктөңүз.

Сизге видеодо көрсөтүлгөнгө окшош чыгарылыш көрсөтүлүшү керек.

3 -кадам: TLC5940 көзөмөлдөө

Эми схема иштегенден кийин, биз TLC5940ти кантип башкарабыз? Биринчиден, милдеттүү функциялар - эскиздин башында китепкананы камтыйт:

#"Tlc5940.h" кошуу

андан кийин китепкананы инициализациялоо үчүн төмөнкүлөрдү void setup ():

Tlc.init (x);

x - бул кошумча параметр - эгер сиз эскиз башталар замат бардык каналдарды белгилүү бир жарыктыкка коюуну кааласаңыз, Tlc.init () функциясында x үчүн 0 менен 4095 ортосундагы маанини киргизе аласыз.

Эми каналды/LEDди күйгүзүү же өчүрүү. Ар бир канал 0дөн 15ке чейин номерленген жана ар бир каналдын жарыктыгын 0 менен 4095ке чейин жөнгө салса болот. Бул эки бөлүктөн турган процесс … Биринчиден-керектүү каналдарды жана тиешелүү жарыктыкты орнотуу үчүн төмөнкү функциялардын бирин же бир нечесин колдонуңуз (PWM) деңгээл):

Tlc.set (канал, жарыктык);

Мисалы, эгер сиз биринчи үч каналды толук жарыктыкта иштеткиңиз келсе, колдонуңуз:

Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set (2, 4095);

Экинчи бөлүк TLC5940ти биринчи бөлүктөн керектүү нускамалар менен жаңыртуу үчүн төмөнкүлөрдү колдонуу:

Tlc.update ();

Эгерде сиз бардык каналдарды дароо өчүргүңүз келсе, жөн гана колдонуңуз:

Tlc.clear ();

4 -кадам:

Так функциядан кийин TLC.update () чакыруунун кажети жок. Төмөндө бардык каналдардын жарыктыгы/PWM баалуулуктарын ар кандай деңгээлге койгон ылдам мисал эскиз:

#include "Tlc5940.h" void setup () {Tlc.init (0); // TLC5940ти баштап, бардык каналдарды өчүрүү}

боштук цикл ()

{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); }

Ар бир канал үчүн жеке жарыкты контролдоо жөндөмү/LED да RGB светодиоддорун башкарууда пайдалуу болушу мүмкүн - андан кийин ар бир элемент үчүн ар кандай жарыктык деңгээлдери аркылуу керектүү түстөрдү оңой тандай аласыз. Видеодо демонстрация көрсөтүлгөн.

5 -кадам: Эки же андан көп TLC5940тарды колдонуу

Сиз дагы бир нече TLC5940тарды диоддорду башкара аласыз. Биринчиси - демонстрациялык схемада көрсөтүлгөндөй кийинки TLC5940ты Arduino менен байланыштырыңыз - биринчи TLC5940 SOUT пинин (17) экинчи TLC5940тын SIN пинине (26) туташтыруудан башка - маалыматтар Arduino аркылуу, биринчи TLC5940 экинчисине ж. Андан кийин процессти кайталаңыз, эгерде сизде үчүнчү ж.б. болсо, токту белгилеген resisotrду унутпаңыз!

Андан кийин, TLC5940 китепкана папкасында жайгашкан tlc_config.h файлын ачыңыз. NUM_TLCS маанисин сиз туташтырган TLC5940тардын санына өзгөртүңүз, андан кийин файлды сактап, ошол эле папкада жайгашкан Tlc5940.o файлын жок кылыңыз. Акыры IDEди кайра баштаңыз. Сиз андан кийин экинчисине жана андан кийинки TLC5940 каналдарына шилтеме жасай аласыз. Башкача айтканда, биринчиси 0 ~ 15, экинчиси 16 ~ 29 жана башкалар.

6 -кадам: TLC5940 менен серверлерди көзөмөлдөө

TLC5940 PWM (импульстун модуляциясы) өндүрүшүн жараткандыктан, сервистерди айдоо үчүн да сонун. Жөн эле светодиоддор сыяктуу - сиз он алтыга чейин башкара аласыз. Жөргөмүшкө окшош роботторду, кызыктай сааттарды түзүү же кандайдыр бир ызы-чуу чыгаруу үчүн идеалдуу.

Серваңызды тандап жатканда, анын иштеп жаткан учурунда 120 мАдан ашпашын текшериңиз (ар бир каналга максималдуу ток) жана ушул окуу куралынын аягындагы "Токту жана жылуулукту башкаруу" бөлүмүнө көңүл буруңуз. Жана тышкы энергияны сервос менен колдонуңуз, Arduino 5V линиясына таянбаңыз.

Сервону туташтыруу оңой - GND линиясы GND менен туташат, 5V (же камсыздоо чыңалуусу) сиздин 5v (же башка ылайыктуу камсыздоо) менен туташат жана servo башкаруу пини TLC5940тын чыгууларынын бирине туташат. Акырында - жана бул маанилүү - колдонулган TLC5940 pin (s) менен 5V ортосундагы 2.2kΩ резисторду туташтырыңыз. Сервону башкаруу LEDден анча айырмаланбайт. Эскиздин башында биринчи эки сап керек:

#кошуу "Tlc5940.h"#include "tlc_servos.h"

анда төмөнкүлөр жараксыз орнотууда ():

tlc_initServos ();

Андан кийин, кайсы сервону (каналды) иштетүүнү жана керектүү бурчту (бурчту) тандоо үчүн төмөнкү функцияны колдонуңуз:

tlc_setServo (канал, бурч);

Светодиоддор сыяктуу эле, алардын бир нечесин бириктирип, анан буйрукту аткарсаңыз болот:

Tlc.update ();

Андыктан мунун баарын иш жүзүндө көрөлү. Төмөнкү мисалдын эскизи төрт сервону 90 градуска шыпырат:

#кошуу "Tlc5940.h"#include "tlc_servos.h"

жараксыз орнотуу ()

{tlc_initServos (); // Эскертүү: бул PWM жыштыгын 50 Гцке түшүрөт. }

боштук цикл ()

{for (int burch = 0; бурч = 0; бурч--) {tlc_setServo (0, бурч); tlc_setServo (1, бурч); tlc_setServo (2, бурч); tlc_setServo (3, бурч); Tlc.update (); кечигүү (5); }}

Видеодо бул эскиз төрт servo менен иштөөдө.

Эгерде сиз сервоприводдорду туура бурчка бура албасаңыз - мисалы, сиз 180 градусту сурасаңыз, алар 90го чейин бурулат, же бир аз кошумча иш талап кылынат.

Сиз TLC5940 Arduino китепкана папкасында жайгашкан tlc_servos.h файлын ачып, SERVO_MIN_WIDTH жана SERVO_MAX_WIDTH баалуулуктары менен тажрыйба жүргүзүшүңүз керек. Мисалы, SERVO_MIN_WIDTH 200дөн 203кө жана SERVO_MAX_WIDTH 400дөн 560ка чейин өзгөртүңүз.

7 -кадам: Учурдагы жана Жылуулукту башкаруу

Жогоруда айтылгандай, TLC5940 каналга 120 мА максималдуу иштей алат. Бир аз эксперименттен кийин, TLC5940 жылый турганын байкасаңыз болот - бул жакшы.

Бөлүктү жок кылардан мурун таркатыла турган күчтүн максималдуу чеги бар экенин эске алыңыз. Эгер сиз кадимки бакча түрүндөгү LED же кичинекей серволорду колдонуп жатсаңыз, кубат көйгөй болбойт. Бирок, эгер сиз TLC5940 колдонууну пландап жатсаңыз - китепкана авторлору берген эскертүүлөрдү карап чыгыңыз.

Жыйынтык

Дагы бир жолу сиз Arduino менен укмуштуудай пайдалуу бөлүктү башкарууга бара жатасыз. Эми кандайдыр бир элестетүү менен сиз ар кандай визуалдык дисплейлерди түзө аласыз же көптөгөн серволор менен көңүл ачасыз.

Бул билдирүү сизге pmdway.com тарабынан жеткирилген - бул TLC5940 өнүмдөрүн, кабыл алуучулар жана электроника ышкыбоздору үчүн бардык нерселерди, дүйнө жүзү боюнча бекер жеткирүүнү сунуштайт.

Сунушталууда: