Sisukord:
- 1. samm: ehitage TLC5940 näidisring
- 2. samm:
- 3. samm: TLC5940 juhtimine
- 4. samm:
- Samm: kahe või enama TLC5940 kasutamine
- 6. samm: servode juhtimine TLC5940 abil
- 7. samm: voolu ja soojuse haldamine
Video: Arduino ja TLC5940 PWM LED draiveri IC: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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
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:
Staatilise LCD -draiveri loomine I²C liidesega: 12 sammu
Staatilise LCD -draiveri valmistamine I²C liidesega: vedelkristallkuvarid (LCD) on laialdaselt kasutusel kaubanduslikes ja tööstuslikes rakendustes, kuna neil on head visuaalsed omadused, odavus ja väike energiatarve. Need omadused muudavad vedelkristallekraani standardlahenduseks akutoitel töötavatele seadmetele
Maci Lilypad USB jadapordi/draiveri probleemi lahendamine: 10 sammu (piltidega)
Mac Lilypad USB jadapordi/draiveri probleemi lahendamine: kas teie Mac on 2016. aasta seisuga alla 2 -aastane? Kas olete hiljuti üle läinud uusimale operatsioonisüsteemile (Yosemite või midagi uut)? Kas teie Lilypad USB -d/MP3 -d ei tööta enam? õpetus näitab teile, kuidas ma oma Lilypad USB -sid parandasin. Viga, millega ma kokku puutusin, oli seotud
Bluetooth -robotkäsi ühe mootoriga draiveri abil: 3 sammu
Bluetoothi robotkäepide ühe mootoriga draiveri kasutamisel: Tere tulemast minu juhendamisse. Selles juhendis näitan teile, kuidas muuta ühe juhtmootoriga juhtmega juhtimisroboti käsi Bluetoothi robotkäeks. See on kodust tehtud töö, mis on tehtud liikumiskeelu ajal. Nii et seekord on mul ainult üks L29
Astmemootori ja draiveri valimine Arduino automaatse varjundiekraani projekti jaoks: 12 sammu (koos piltidega)
Sammumootori ja draiveri valimine Arduino automaatse varjundiekraani projekti jaoks: selles juhendis vaatan läbi sammud, mille tegin samm -mootori ja draiveri valimiseks automaatse varjundiekraani prototüübi jaoks. Varjukraanid on populaarsed ja odavad käsitsi vändatud Coolaroo mudelid ning ma tahtsin välja vahetada
NODEMCU LUA ESP8266 LED -ekraaniga draiveri M5450B7 juhtimine IC: 5 sammu (koos piltidega)
NODEMCU LUA ESP8266 M5450B7 LED -draiveri IC juhtimine: M5450B7 on 40 -kontaktiline DIP -LED -draiveri IC. See näeb välja pigem metsaline, kuid seda on suhteliselt lihtne juhtida ja programmeerida. Seal on 34 väljundnõela, mille külge saab ühendada LED -i igaühele. Seade uputab voolu, mitte ei toida seda, nii et