Sisukord:

Arduino ja TLC5940 PWM LED draiveri IC: 7 sammu
Arduino ja TLC5940 PWM LED draiveri IC: 7 sammu

Video: Arduino ja TLC5940 PWM LED draiveri IC: 7 sammu

Video: Arduino ja TLC5940 PWM LED draiveri IC: 7 sammu
Video: Как сделать мощный прожигающий лазер из DVD-RW 2024, Juuni
Anonim
Arduino ja TLC5940 PWM LED draiveri IC
Arduino ja TLC5940 PWM LED draiveri IC

Selles artiklis uurime Texas Instruments TLC5940 16-kanalilist LED-draiveri IC-d. Meie põhjuseks on näidata teist, lihtsamat viisi paljude LED -ide ja ka servode juhtimiseks. Esiteks, siin on mõned näited TLC5940 -st. TLC5940 saate tellida PMD Waylt tasuta kohaletoimetamisega kogu maailmas.

TLC5940 on saadaval DIP-versioonina ja ka pinnakinnitusega. See on tõesti mugav osa, mis võimaldab teil PWM (impulsi laiuse modulatsioon) abil reguleerida kuueteistkümne üksiku LED-i heledust-ja saate ka rohkem kui ühe TLC5940 ketiga ühendada, et veelgi rohkem juhtida.

Selle õpetuse käigus selgitame, kuidas juhtida ühte või mitut TLC5940 IC -d LED -idega, ja vaatame ka servode juhtimist. Laadige praegu alla TLC5940 koopia (.pdf), kuna viitate sellele selle protsessi käigus. Lisaks laadige alla ja installige Alex Leone TLC5940 Arduino raamatukogu, mille leiate siit. Kui te pole kindel, kuidas raamatukogu installida, klõpsake siin.

1. samm: ehitage TLC5940 näidisring

Ehitage TLC5940 näidisring
Ehitage TLC5940 näidisring

Järgmine ahel on miinimum, mis on vajalik Arduino või ühilduva kuusteist LED -i juhtimiseks. Selle abil saate katsetada erinevaid funktsioone ja saada aimu, mis on võimalik. Sa vajad:

  • Arduino Uno või ühilduv tahvel
  • 16 tavalist igapäevast LED -i, mille edasivool võib olla kuni 20 mA
  • 2 kΩ takisti (anna või võta 10%)
  • 0,1 uF keraamiline ja 4,7 uF elektrolüütkondensaator

Võtke teadmiseks LED-i suund-ja pidage meeles, et TLC5940 on tavalise anoodiga LED-draiver-, nii et kõik LED-anoodid on ühendatud ja seejärel 5V.

2. samm:

Selle konkreetse vooluahela jaoks ei vaja te välist 5 V toiteallikat, kuid tulevikus võib seda vaja minna. Takisti eesmärk on kontrollida LED -ide kaudu voolava voolu hulka. Nõutav takisti väärtus arvutatakse järgmise valemi abil:

R = 39,06 / Imax kus R (oomides) on takisti väärtus ja Imax (amprites) on maksimaalne vooluhulk, mida soovite LED -idest läbi voolata.

Näiteks kui teil on 20 mA edasivooluga LED -id - takisti arvutamine oleks järgmine: R = 39,06 / 0,02 = 1803 oomi. Kui ahel on kokku pandud, avage Arduino IDE ja laadige üles visand BasicUse.pde, mis asub TLC5940 teegi näidiskaustas.

Teile peaks esitama videoga sarnase väljundi.

3. samm: TLC5940 juhtimine

Nüüd, kui vooluring töötab, kuidas saame TLC5940 juhtida? Esiteks kohustuslikud funktsioonid - lisage eskiisi alguses raamatukogu koos:

#include "Tlc5940.h"

ja seejärel initsialiseerige raamatukogu, asetades tühisesse seadistusse () järgmise:

Tlc.init (x);

x on valikuline parameeter - kui soovite kohe pärast visandi algust kõik kanalid teatud heledusele sättida, saate funktsiooni Tlc.init () jaoks sisestada väärtuse 0 ja 4095 vahel.

Nüüd lülitage kanal/LED sisse või välja. Iga kanal on nummerdatud vahemikus 0 kuni 15 ja iga kanali heledust saab reguleerida vahemikus 0 kuni 4095. See on kaheosaline protsess … Kõigepealt kasutage nõutavate kanalite ja heleduse (PWM) seadistamiseks ühte või mitut järgmistest funktsioonidest tase):

Tlc.set (kanal, heledus);

Näiteks kui soovite, et kolm esimest kanalit oleksid täisheledusega, kasutage järgmist.

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

Teine osa on kasutada järgmist, et värskendada TLC5940 esimese osa nõutavate juhistega:

Tlc.update ();

Kui soovite kõik kanalid korraga välja lülitada, kasutage lihtsalt järgmist:

Tlcclear ();

4. samm:

Pärast tühjendusfunktsiooni ei pea te helistama TLC.update (). Järgnev on kiire näite visand, mis seab kõigi kanalite heleduse/PWM väärtused erinevatele tasemetele:

#include "Tlc5940.h" void setup () {Tlc.init (0); // lähtestage TLC5940 ja lülitage kõik kanalid välja}

tühine tsükkel ()

{jaoks (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); viivitus (1000); jaoks (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); viivitus (1000); jaoks (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); viivitus (1000); jaoks (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); viivitus (1000); }

Võimalus juhtida iga kanali/LED -i individuaalset heledust võib olla kasulik ka RGB -valgusdioodide juhtimisel - seejärel saate hõlpsalt valida vajalikud elemendid erinevate elementide heledustasemete kaudu. Demonstratsiooni näidatakse videos.

Samm: kahe või enama TLC5940 kasutamine

Saate mitut TLC5940-d koos ketistada, et juhtida rohkem LED-e. Esmalt ühendage järgmine TLC5940 Arduinoga, nagu näidatud skeemil - välja arvatud juhul, kui ühendate esimese TLC5940 SOUT -tihvti (17) teise TLC5940 SIN -tihvtiga (26) - kui andmed liiguvad Arduino kaudu esimene TLC5940 teisele ja nii edasi. Seejärel korrake protsessi, kui teil on kolmas jne. Ärge unustage voolu seadistavat resisotrit!

Seejärel avage fail tlc_config.h, mis asub TLC5940 raamatukogu kaustas. Muutke NUM_TLCS väärtuseks TLC5940 -de arv, mille olete kokku ühendanud, seejärel salvestage fail ja kustutage ka fail Tlc5940.o, mis asub samas kaustas. Lõpuks taaskäivitage IDE. Seejärel saate viidata teise ja edasise TLC5940 kanalitele järjestikku esimesest. See tähendab, et esimene on 0 ~ 15, teine 16 ~ 29 jne.

6. samm: servode juhtimine TLC5940 abil

Kuna TLC5940 genereerib PWM (impulsi laiuse modulatsioon) väljundi, sobib see suurepäraselt ka servodega sõitmiseks. Täpselt nagu LED -id - saate juhtida kuni kuusteist korraga. Ideaalne ämblikulaadsete robotite, kummaliste kellade loomiseks või müra tekitamiseks.

Kui valite oma servo, veenduge, et see ei tarbiks töö ajal rohkem kui 120 mA (maksimaalne vool kanali kohta), ja võtke arvesse ka selle õpetuse lõpus olevat jaotist „Voolu ja soojuse haldamine”. Ja kasutage välist toite koos servodega, ärge lootke Arduino 5V liinile.

Servo ühendamine on lihtne - GND -liin ühendatakse GND -ga, 5 V (või toitepingejuhe) teie 5 -voldise (või muu sobiva toiteallikaga) ja servo juhtnupp ühendatakse ühe TLC5940 väljundiga. Lõpuks - ja see on oluline - ühendage 2,2 kΩ takisti kasutatava TLC5940 väljundpistiku (te) ja 5 V vahel. Servo juhtimine ei erine LED -ist nii palju. Visandi alguses on vaja kahte esimest rida:

#include "Tlc5940.h" #include "tlc_servos.h"

siis tühjas seadistuses () järgmine:

tlc_initServos ();

Seejärel kasutage järgmist funktsiooni, et valida, millist servot (kanalit) kasutada ja millist nurka (nurka) kasutada:

tlc_setServo (kanal, nurk);

Nagu LED -id, saate mõned neist kokku koondada ja seejärel käsku täita:

Tlc.update ();

Nii et vaatame kõike seda tegevuses. Järgmine näide visandab neli servot 90 kraadi ulatuses:

#include "Tlc5940.h" #include "tlc_servos.h"

tühine seadistus ()

{tlc_initServos (); // Märkus: see vähendab PWM sagedust kuni 50 Hz. }

tühine tsükkel ()

{jaoks (int nurk = 0; nurk = 0; nurk--) {tlc_setServo (0, nurk); tlc_setServo (1, nurk); tlc_setServo (2, nurk); tlc_setServo (3, nurk); Tlc.update (); viivitus (5); }}

Video näitab seda visandit nelja servoga.

Kui servod ei pöörle õige nurga all - näiteks küsite 180 kraadi ja need pöörlevad ainult 90 -ni või umbes selleni, on vaja natuke lisatööd teha.

Peate avama faili tlc_servos.h, mis asub TLC5940 Arduino raamatukogu kaustas, ja katsetama väärtustega SERVO_MIN_WIDTH ja SERVO_MAX_WIDTH. Näiteks muutke SERVO_MIN_WIDTH 200 -lt 203 -le ja SERVO_MAX_WIDTH 400 -lt 560 -le.

7. samm: voolu ja soojuse haldamine

Nagu varem mainitud, saab TLC5940 kanali kohta taluda maksimaalselt 120 mA. Pärast mõningast katsetamist võite märgata, et TLC5940 soojeneb - ja see on korras.

Pange tähele, et enne osa hävitamist on võimalik hajutada maksimaalne võimsus. Kui kasutate lihtsalt tavalisi aias kasutatavaid LED-e või väiksemaid servosid, pole toide probleem. Kui aga kavatsete maksimaalselt kasutada TLC5940 - vaadake üle raamatukogu autorite esitatud märkmed.

Järeldus

Jälle olete teel oma Arduinoga uskumatult kasuliku osa juhtimiseks. Nüüd saate kujutlusvõimega luua igasuguseid visuaalseid kuvasid või lõbutseda paljude servodega.

Selle postituse toob teieni pmdway.com - mis pakub TLC5940 tooteid koos kõigega tegijatele ja elektroonikahuvilistele ning tasuta kohaletoimetamisega kogu maailmas.

Soovitan: