Sadržaj:

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

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

Video: Arduino i TLC5940 PWM LED upravljački program IC: 7 koraka
Video: DC 10-55V 60A Motor Speed Controller PWM Reverse Control Switch with LED Display relay | Robojax 2024, Juli
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 članku ćemo ispitati 16-kanalni LED upravljački program 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 od PMD Way -a sa besplatnom dostavom širom svijeta.

TLC5940 je dostupan u DIP verziji, kao i za površinsko montiranje. To je zaista 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 lancem povezati 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) na koju ćete se pozivati u ovom procesu. Nadalje, preuzmite i instalirajte TLC5940 Arduino biblioteku Alexa Leonea koju možete pronaći ovdje. Ako niste sigurni kako instalirati biblioteku, kliknite ovdje.

Korak 1: Izgradite demonstracijsko kolo 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 kompatibilnog. Možete ga koristiti za eksperimentiranje s različitim 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%)
  • keramički 0,1uF i elektrolitski kondenzator od 4,7uF

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

Korak 2:

Za ovaj krug neće vam 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 proći 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 proći kroz LED diode.

Na primjer, ako imate LED diode s prednjom 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 biblioteku TLC5940.

Trebalo bi vam predstaviti izlaz sličan onome što je prikazano u videu.

Korak 3: Upravljanje TLC5940

Kako krug radi, kako možemo kontrolirati TLC5940? Prvo, obavezne funkcije - uključuju biblioteku na početku skice sa:

#include "Tlc5940.h"

a zatim inicijalizirajte 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 kanal je numeriran od 0 do 15, a svjetlina svakog kanala može se podesiti između 0 i 4095. Ovo je proces iz dva dijela … Prvo-upotrijebite jednu ili više od sljedećih funkcija za postavljanje potrebnih kanala i odgovarajuće svjetline (PWM nivo):

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 kratak primjer skice koja postavlja svjetlinu/PWM vrijednosti svih kanala na različite nivoe:

#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); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); kašnjenje (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); kašnjenje (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); kašnjenje (1000); }

Mogućnost kontrole individualne svjetline za svaki kanal/LED može biti korisna i za kontrolu RGB LED dioda - tada možete jednostavno odabrati potrebne boje putem različitih nivoa svjetline za svaki element. U videu je prikazana demonstracija.

Korak 5: Upotreba dva ili više TLC5940

Možete zajedno povezati nekoliko TLC5940s za kontrolu više LED dioda. Prvo - povežite 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 od prvog 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 fascikli biblioteke 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 (pulsno-š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 nalik pauku, čudnih satova ili za stvaranje buke.

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

Spajanje servo servera je jednostavno - GND linija se spaja na GND, 5V (ili opskrbni naponski kabel) povezuje se s vašim 5v (ili drugim prikladnim napajanjem), a servo upravljački pin se 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 5V. Upravljanje servo pogonom nije toliko različito od LED -a. Prva dva retka su vam potrebna na početku skice:

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

zatim sljedeće u void setup ():

tlc_initServos ();

Zatim upotrijebite sljedeću funkciju za odabir servo (kanala) za rad i potrebni kut (kut):

tlc_setServo (kanal, ugao);

Baš kao i LED diode, možete okupiti 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 angle = 0; angle = 0; angle--) {tlc_setServo (0, angle); tlc_setServo (1, kut); tlc_setServo (2, kut); tlc_setServo (3, kut); Tlc.update (); kašnjenje (5); }}

Video prikazuje ovu skicu u akciji sa č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 fascikli biblioteke TLC5940 Arduino i eksperimentirati sa vrijednostima za SERVO_MIN_WIDTH i SERVO_MAX_WIDTH. Na primjer, promijenite SERVO_MIN_WIDTH sa 200 na 203 i SERVO_MAX_WIDTH sa 400 na 560.

Korak 7: Upravljanje strujom i toplinom

Kao što je ranije spomenuto, TLC5940 može podnijeti maksimalno 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 rasipati 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

Opet 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 vam donosi pmdway.com - koji nudi proizvode TLC5940 zajedno sa svime za proizvođače i ljubitelje elektronike, uz besplatnu dostavu širom svijeta.

Preporučuje se: