Satura rādītājs:

Arduino un TLC5940 PWM LED draivera IC: 7 soļi
Arduino un TLC5940 PWM LED draivera IC: 7 soļi

Video: Arduino un TLC5940 PWM LED draivera IC: 7 soļi

Video: Arduino un TLC5940 PWM LED draivera IC: 7 soļi
Video: TLC5940, 16 канальный 12 битный PWM драйвер 2024, Novembris
Anonim
Arduino un TLC5940 PWM LED draivera IC
Arduino un TLC5940 PWM LED draivera IC

Šajā rakstā mēs izskatīsim Texas Instruments TLC5940 16 kanālu LED draivera IC. Mūsu iemesls to darīt ir demonstrēt citu, vieglāku veidu, kā vadīt daudzas gaismas diodes - un arī servos. Vispirms šeit ir daži TLC5940 piemēri. Jūs varat pasūtīt TLC5940 no PMD Way ar bezmaksas piegādi visā pasaulē.

TLC5940 ir pieejams DIP versijā, kā arī uz virsmas montējams. Tā patiešām ir ērta daļa, kas ļauj regulēt sešpadsmit atsevišķu gaismas diodes spilgtumu, izmantojot PWM (impulsa platuma modulācija)-un jūs varat arī savienot vairāk nekā vienu TLC5940, lai kontrolētu vēl vairāk.

Šīs apmācības laikā mēs izskaidrosim, kā kontrolēt vienu vai vairākus TLC5940 IC ar gaismas diodēm, kā arī apskatīsim servo vadību. Šajā brīdī, lūdzu, lejupielādējiet TLC5940 kopiju (.pdf), jo jūs uz to atsaucīsieties, veicot šo procesu. Turklāt, lūdzu, lejupielādējiet un instalējiet Alex Leone TLC5940 Arduino bibliotēku, kas atrodama šeit. Ja neesat pārliecināts, kā instalēt bibliotēku, noklikšķiniet šeit.

1. darbība: izveidojiet demonstrācijas shēmu TLC5940

Izveidojiet demonstrācijas shēmu TLC5940
Izveidojiet demonstrācijas shēmu TLC5940

Šī shēma ir minimums, kas nepieciešams, lai kontrolētu sešpadsmit gaismas diodes no jūsu Arduino vai saderīga. Jūs varat to izmantot, lai eksperimentētu ar dažādām funkcijām un gūtu priekšstatu par iespējamo. Jums būs nepieciešams:

  • Arduino Uno vai saderīga tāfele
  • 16 parastas, ikdienas gaismas diodes, kuru strāvas stiprums var būt līdz 20 mA
  • 2 kΩ rezistors (dodiet vai ņemiet 10%)
  • 0.1uF keramikas un 4.7uF elektrolītiskais kondensators

Ņemiet vērā LED orientāciju-un atcerieties, ka TLC5940 ir parasto anodu LED draiveris-tāpēc visi LED anodi ir savienoti kopā un pēc tam pie 5 V.

2. darbība:

Šai konkrētajai shēmai jums nebūs nepieciešams ārējs 5 V barošanas avots - tomēr nākotnē tas var būt vajadzīgs. Rezistora mērķis ir kontrolēt strāvas daudzumu, kas var plūst caur gaismas diodēm. Nepieciešamo rezistora vērtību aprēķina pēc šādas formulas:

R = 39,06 / Imax, kur R (omos) ir rezistora vērtība un Imax (ampēros) ir maksimālais strāvas daudzums, ko vēlaties plūst caur gaismas diodēm.

Piemēram, ja jums ir gaismas diodes ar 20 mA priekšējo strāvu - rezistora aprēķins būtu šāds: R = 39,06 / 0,02 = 1803 omi. Kad ķēde ir samontēta, atveriet Arduino IDE un augšupielādējiet skici BasicUse.pde, kas atrodas TLC5940 bibliotēkas piemēru mapē.

Jums vajadzētu parādīt rezultātu, kas ir līdzīgs video parādītajam.

3. darbība. TLC5940 kontrole

Tagad, kad ķēde darbojas, kā mēs kontrolējam TLC5940? Pirmkārt, obligātās funkcijas - iekļaujiet bibliotēku skices sākumā ar:

#include "Tlc5940.h"

un pēc tam inicializējiet bibliotēku, ievietojot spēkā neesošajā iestatījumā ():

Tlc.init (x);

x ir neobligāts parametrs - ja vēlaties iestatīt visus kanālus noteiktā spilgtumā, tiklīdz skice ir sākta, funkcijā Tlc.init () varat ievietot vērtību no 0 līdz 4095 x.

Tagad ieslēdziet vai izslēdziet kanālu/gaismas diodi. Katrs kanāls ir numurēts no 0 līdz 15, un katra kanāla spilgtumu var regulēt no 0 līdz 4095. Šis process sastāv no divām daļām … Vispirms izmantojiet vienu vai vairākas no šīm funkcijām, lai iestatītu vajadzīgos kanālus un atbilstošo spilgtumu (PWM līmenis):

Tlc.set (kanāls, spilgtums);

Piemēram, ja vēlaties, lai pirmie trīs kanāli būtu ieslēgti ar pilnu spilgtumu, izmantojiet:

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

Otrā daļa ir izmantot sekojošo, lai atjauninātu TLC5940 ar nepieciešamajiem norādījumiem no pirmās daļas:

Tlc.update ();

Ja vēlaties izslēgt visus kanālus vienlaikus, vienkārši izmantojiet:

Tlc.clear ();

4. solis:

Pēc dzēšanas funkcijas jums nav jāizsauc TLC.update (). Tālāk ir sniegts ātrs skices piemērs, kurā visu kanālu spilgtuma/PWM vērtības tiek iestatītas dažādos līmeņos:

#include "Tlc5940.h" void setup () {Tlc.init (0); // inicializēt TLC5940 un izslēgt visus kanālus}

tukša cilpa ()

{par (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); kavēšanās (1000); par (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); kavēšanās (1000); par (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); kavēšanās (1000); par (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); kavēšanās (1000); }

Spēja kontrolēt katra kanāla/gaismas diodes individuālo spilgtumu var būt noderīga arī, kontrolējot RGB gaismas diodes - pēc tam varat viegli izvēlēties vajadzīgās krāsas, izmantojot dažādus katra elementa spilgtuma līmeņus. Demonstrācija ir parādīta videoklipā.

5. darbība: divu vai vairāku TLC5940 izmantošana

Jūs varat sasaistīt virkni TLC5940s kopā, lai kontrolētu vairāk gaismas diožu. Vispirms pievienojiet nākamo TLC5940 Arduino, kā parādīts demonstrācijas shēmā, izņemot pirmā TLC5940 SOUT tapu (17) ar otrā TLC5940 SIN tapu (26), kad dati pārvietojas no Arduino caur pirmais TLC5940 uz otro un tā tālāk. Pēc tam atkārtojiet procesu, ja jums ir trešais utt. Neaizmirstiet par rezizotoru, kas nosaka strāvu!

Pēc tam atveriet failu tlc_config.h, kas atrodas TLC5940 bibliotēkas mapē. Mainiet NUM_TLCS vērtību uz to TLC5940 skaitu, kurus esat savienojis kopā, pēc tam saglabājiet failu un izdzēsiet arī failu Tlc5940.o, kas atrodas tajā pašā mapē. Visbeidzot restartējiet IDE. Pēc tam jūs varat atsaukties uz otrā un turpmākā TLC5940 kanāliem secīgi no pirmā. Tas ir, pirmais ir 0 ~ 15, otrais ir 16 ~ 29 utt.

6. darbība: Servo vadīšana ar TLC5940

Tā kā TLC5940 ģenerē PWM (impulsa platuma modulācijas) izvadi, tas ir lieliski piemērots arī servo vadīšanai. Tāpat kā gaismas diodes - jūs varat vienlaikus kontrolēt līdz sešpadsmit. Ideāli piemērots zirneklim līdzīgu robotu, dīvainu pulksteņu vai trokšņa radīšanai.

Izvēloties servo, pārliecinieties, ka tas darbības laikā neizraisa vairāk par 120 mA (maksimālā strāva vienam kanālam), kā arī ievērojiet sadaļu “Strāvas un siltuma pārvaldība” šīs apmācības beigās. Un izmantojiet ārēju barošanu ar servos, nepaļaujieties uz Arduino 5V līniju.

Servo pieslēgšana ir vienkārša - GND līnija savienojas ar GND, 5V (vai barošanas sprieguma vads) tiek pievienots jūsu 5v (vai citam piemērotam barošanas avotam), un servo vadības tapa pieslēdzas pie vienas no TLC5940 izejām. Visbeidzot - un tas ir svarīgi - pievienojiet 2,2 kΩ rezistoru starp izmantoto (-ām) TLC5940 izejas tapu (-ām) un 5V. Servo vadība neatšķiras no gaismas diodes. Skices sākumā jums ir nepieciešamas pirmās divas rindas:

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

tad spēkā neesošā iestatīšanā ():

tlc_initServos ();

Pēc tam izmantojiet šo funkciju, lai atlasītu darbināmo servo (kanālu) un vajadzīgo leņķi (leņķi):

tlc_setServo (kanāls, leņķis);

Tāpat kā gaismas diodes, varat apvienot dažus no tiem un pēc tam izpildīt komandu ar:

Tlc.update ();

Tāpēc redzēsim visu to darbībā. Šis skices piemērs aptver četrus servos 90 grādos:

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

anulēts iestatījums ()

{tlc_initServos (); // Piezīme: tas samazinās PWM frekvenci līdz 50 Hz. }

tukša cilpa ()

{par (int leņķis = 0; leņķis = 0; leņķis-) {tlc_setServo (0, leņķis); tlc_setServo (1, leņķis); tlc_setServo (2, leņķis); tlc_setServo (3, leņķis); Tlc.update (); kavēšanās (5); }}

Video parāda šo skici darbībā ar četriem servos.

Ja servos negriežas pareizajā leņķī - piemēram, jūs lūdzat 180 grādus un tie griežas tikai līdz 90 vai ap to, ir nepieciešams nedaudz strādāt.

Jums ir jāatver tlc_servos.h fails, kas atrodas TLC5940 Arduino bibliotēkas mapē, un eksperimentējiet ar SERVO_MIN_WIDTH un SERVO_MAX_WIDTH vērtībām. Piemēram, mainiet SERVO_MIN_WIDTH no 200 uz 203 un SERVO_MAX_WIDTH no 400 uz 560.

7. darbība: strāvas un siltuma pārvaldība

Kā minēts iepriekš, TLC5940 var apstrādāt ne vairāk kā 120 mA vienā kanālā. Pēc dažiem eksperimentiem jūs varat pamanīt, ka TLC5940 patiešām sasilst - un tas ir labi.

Ņemiet vērā, ka ir noteikts maksimālais jaudas daudzums, ko var izkliedēt pirms detaļas iznīcināšanas. Ja izmantojat tikai parastas dārza gaismas diodes vai mazākus servos, jauda nebūs problēma. Tomēr, ja plānojat maksimāli izmantot TLC5940 - lūdzu, pārskatiet bibliotēkas autoru sniegtās piezīmes.

Secinājums

Atkal esat ceļā uz neticami noderīgas daļas vadīšanu ar savu Arduino. Tagad ar nelielu iztēli jūs varat izveidot visu veidu vizuālos displejus vai izklaidēties ar daudziem servos.

Šo ziņu jums sniedz pmdway.com, kas piedāvā TLC5940 produktus kopā ar visu, kas paredzēts ražotājiem un elektronikas entuziastiem, ar bezmaksas piegādi visā pasaulē.

Ieteicams: