Sadržaj:

Arduino i TLC5940 PWM LED upravljački sklop IC: 7 koraka
Arduino i TLC5940 PWM LED upravljački sklop IC: 7 koraka

Video: Arduino i TLC5940 PWM LED upravljački sklop IC: 7 koraka

Video: Arduino i TLC5940 PWM LED upravljački sklop IC: 7 koraka
Video: Led controller 18 channel PWM 2024, Srpanj
Anonim
Arduino i IC upravljački program PWM LED upravljačkog programa TLC5940
Arduino i IC upravljački program PWM LED upravljačkog programa TLC5940

U ovom ćemo članku ispitati 16-kanalni IC upravljački sklop LED instrumenta Texas Instruments TLC5940. Naš razlog za to je pokazati drugi, lakši način upravljanja mnogim LED diodama - a također i servo. Prvo, evo nekoliko primjera TLC5940. TLC5940 možete naručiti s PMD Way -a s besplatnom dostavom po cijelom svijetu.

TLC5940 je dostupan u DIP verziji, a može se i montirati na površinu. To je doista zgodan dio koji vam omogućuje da podesite svjetlinu šesnaest pojedinačnih LED dioda putem PWM-a (pulsno-širinska modulacija)-a također možete lanac spojiti s više od jednog TLC5940 za još veću kontrolu.

Tijekom ovog vodiča objasnit ćemo kako kontrolirati jednu ili više TLC5940 IC -ova sa LED diodama, a također ćemo pogledati i upravljanje servo pogonima. U ovom trenutku preuzmite kopiju TLC5940 (.pdf) kako ćete se pozivati na nju kroz ovaj postupak. Nadalje, preuzmite i instalirajte knjižnicu TLC5940 Arduino Alexa Leonea koju možete pronaći ovdje. Ako niste sigurni kako instalirati biblioteku, kliknite ovdje.

Korak 1: Izgradite demonstracijski krug TLC5940

Napravite demonstracijski krug TLC5940
Napravite demonstracijski krug TLC5940

Sljedeći krug je minimum potreban za upravljanje šesnaest LED dioda s vašeg Arduina ili kompatibilnih. Pomoću njega možete eksperimentirati s raznim funkcijama i steći predodžbu o tome što je moguće. Trebat će vam:

  • Arduino Uno ili kompatibilna ploča
  • 16 normalnih, svakodnevnih LED dioda koje mogu imati prednju struju do 20 mA
  • otpornik od 2 kΩ (dajte ili uzmite 10%)
  • keramika 0,1uF i elektrolitski kondenzator od 4,7uF

Uzmite u obzir LED orijentaciju-i zapamtite da je TLC5940 upravljački program za zajedničke anode LED-tako da su sve LED anode spojene zajedno, a zatim na 5V.

Korak 2:

Za ovaj krug nećete trebati vanjsko napajanje od 5 V - međutim u budućnosti će vam možda trebati. Svrha otpornika je kontrolirati količinu struje koja može protjecati kroz LED diode. Potrebna vrijednost otpornika izračunava se prema sljedećoj formuli:

R = 39,06 / Imax gdje je R (u Ohmima) vrijednost otpornika, a Imax (u amperima) maksimalna količina struje koju želite protjecati kroz LED diode.

Na primjer, ako imate LED diode s izravnom strujom od 20 mA - izračun otpornika bio bi: R = 39,06 / 0,02 = 1803 Ohma. Nakon što sklopite sklop - otvorite Arduino IDE i učitajte skicu BasicUse.pde koja se nalazi u mapi primjera za knjižnicu TLC5940.

Trebali biste dobiti izlaz sličan onome što je prikazano u videu.

Korak 3: Upravljanje TLC5940

Kako krug radi, kako možemo kontrolirati TLC5940? Prvo, obvezne funkcije - uključuju knjižnicu na početku skice s:

#include "Tlc5940.h"

a zatim inicijalizirati biblioteku stavljanjem sljedećeg u void setup ():

Tlc.init (x);

x je izborni parametar - ako želite postaviti sve kanale na određenu svjetlinu čim skica počne, možete umetnuti vrijednost između 0 i 4095 za x u funkciju Tlc.init ().

Sada za uključivanje ili isključivanje kanala/LED. Svaki je kanal numeriran od 0 do 15, a svjetlina svakog kanala može se podesiti između 0 i 4095. Ovo je dvodijelni proces … Prvo-upotrijebite jednu ili više od sljedećih funkcija za postavljanje potrebnih kanala i odgovarajuće svjetline (PWM razina):

Tlc.set (kanal, svjetlina);

Na primjer, ako želite da prva tri kanala budu uključena pri punoj svjetlini, upotrijebite:

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

Drugi dio je korištenje sljedećeg za ažuriranje TLC5940 sa potrebnim uputama iz prvog dijela:

Tlc.update ();

Ako želite isključiti sve kanale odjednom, jednostavno upotrijebite:

Tlc.clear ();

Korak 4:

Ne morate pozivati TLC.update () nakon funkcije clear. Slijedi brzi primjer skice koja postavlja svjetlinu/PWM vrijednosti svih kanala na različite razine:

#include "Tlc5940.h" void setup () {Tlc.init (0); // inicijalizira TLC5940 i isključuje sve kanale}

void loop ()

{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); kašnjenje (1000); za (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); kašnjenje (1000); za (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); kašnjenje (1000); za (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); kašnjenje (1000); }

Mogućnost kontrole pojedinačne svjetline za svaki kanal/LED također može biti korisna pri kontroli RGB LED dioda - tada možete jednostavno odabrati potrebne boje putem različitih razina svjetline za svaki element. U videu je prikazana demonstracija.

Korak 5: Korištenje dva ili više TLC5940

Možete zajedno spojiti nekoliko TLC5940s za kontrolu više LED dioda. Prvo - spojite sljedeći TLC5940 na Arduino kao što je prikazano u demonstracijskom krugu - osim što spojite SOUT pin (17) prvog TLC5940 na SIN pin (26) drugog TLC5940 - dok podaci putuju iz Arduina kroz prvi TLC5940 do drugog i tako dalje. Zatim ponovite postupak ako imate treći itd. Ne zaboravite resisotr koji postavlja struju!

Zatim otvorite datoteku tlc_config.h koja se nalazi u mapi knjižnice TLC5940. Promijenite vrijednost NUM_TLCS na broj TLC5940s koje ste povezali zajedno, zatim spremite datoteku i također izbrišite datoteku Tlc5940.o koja se također nalazi u istoj mapi. Na kraju ponovno pokrenite IDE. Zatim se možete pozivati na kanale drugog i daljnjeg TLC5940 uzastopno od prvog. Odnosno, prvi je 0 ~ 15, drugi je 16 ~ 29, i tako dalje.

Korak 6: Upravljanje servo upravljačima pomoću TLC5940

Kako TLC5940 generira PWM (impulsno-širinska modulacija) izlaz, odličan je i za vožnju servo pogona. Baš kao i LED diode - možete kontrolirati do šesnaest odjednom. Idealno za stvaranje robota poput pauka, čudnih satova ili za stvaranje buke.

Prilikom odabira vašeg servo -a, pazite da ne radi više od 120 mA tijekom rada (maksimalna struja po kanalu), a također obratite pozornost na odjeljak "Upravljanje strujom i toplinom" na kraju ovog vodiča. I koristite vanjsko napajanje sa servo pogonima, ne oslanjajte se na Arduino 5V liniju.

Spajanje servo servera je jednostavno - GND linija se spaja na GND, 5V (ili opskrbni naponski vod) spaja se na vaš 5v (ili neki drugi prikladni izvor napajanja), a upravljački pin servo povezuje s jednim od izlaza TLC5940. Na kraju - i to je važno - spojite otpornik od 2,2 kΩ između korištenih izlaznih pinova TLC5940 i 5 V. Upravljanje servo pogonom nije toliko različito od LED -a. Prva dva retka trebate na početku skice:

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

zatim sljedeće u void setup ():

tlc_initServos ();

Zatim pomoću sljedeće funkcije odaberite koji će servo (kanal) raditi i potrebni kut (kut):

tlc_setServo (kanal, kut);

Baš kao i LED diode, možete spojiti nekoliko njih zajedno, a zatim izvršiti naredbu sa:

Tlc.update ();

Pa da vidimo sve to na djelu. Sljedeći primjer skice pomiče četiri servo servera preko 90 stupnjeva:

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

void setup ()

{tlc_initServos (); // Napomena: ovo će smanjiti frekvenciju PWM -a na 50Hz. }

void loop ()

{for (int kut = 0; kut = 0; kut--) {tlc_setServo (0, kut); tlc_setServo (1, kut); tlc_setServo (2, kut); tlc_setServo (3, kut); Tlc.update (); kašnjenje (5); }}

Video prikazuje ovu skicu na djelu s četiri servo pogona.

Ako se vaši servo upravljači ne okreću pod pravim kutom - na primjer, tražite 180 stupnjeva, a oni se okreću samo na 90 ili oko toga, potrebno je malo dodatnog rada.

Morate otvoriti datoteku tlc_servos.h koja se nalazi u mapi knjižnice TLC5940 Arduino i eksperimentirati s vrijednostima za SERVO_MIN_WIDTH i SERVO_MAX_WIDTH. Na primjer, promijenite SERVO_MIN_WIDTH s 200 na 203 i SERVO_MAX_WIDTH s 400 na 560.

Korak 7: Upravljanje strujom i toplinom

Kao što je ranije spomenuto, TLC5940 može podnijeti najviše 120 mA po kanalu. Nakon nekog eksperimentiranja možda ćete primijetiti da se TLC5940 ipak zagrijava - i to je u redu.

Imajte na umu da postoji maksimalno ograničenje količine energije koja se može raspršiti prije uništavanja dijela. Ako samo koristite normalne LED diode za vrt ili manje servo pogone, napajanje neće biti problem. Međutim, ako planirate maksimalno koristiti TLC5940 - pregledajte bilješke autora biblioteke.

Zaključak

Još jednom ste na putu da kontrolirate nevjerojatno koristan dio sa svojim Arduinom. Sada s malo mašte možete stvoriti sve vrste vizualnih prikaza ili se zabaviti uz mnoge servo pogone.

Ovaj post donosi vam pmdway.com - koji nudi proizvode TLC5940 zajedno sa svime za proizvođače i ljubitelje elektronike, uz besplatnu dostavu širom svijeta.

Preporučeni: