Kazalo:

Arduino in TLC5940 PWM LED gonilnik IC: 7 korakov
Arduino in TLC5940 PWM LED gonilnik IC: 7 korakov

Video: Arduino in TLC5940 PWM LED gonilnik IC: 7 korakov

Video: Arduino in TLC5940 PWM LED gonilnik IC: 7 korakov
Video: Arduino and TLC5940 demonstration 2024, Julij
Anonim
Arduino in IC -gonilnik LED gonilnika TLC5940 PWM
Arduino in IC -gonilnik LED gonilnika TLC5940 PWM

V tem članku bomo preučili 16-kanalni IC gonilnik LED Texas Instruments TLC5940. Naš razlog za to je prikazati drug, lažji način upravljanja številnih LED - in tudi servomotorjev. Najprej je tukaj nekaj primerov TLC5940. TLC5940 lahko naročite pri PMD Way z brezplačno dostavo po vsem svetu.

TLC5940 je na voljo v različici DIP in tudi za površinsko montažo. To je res priročen del, ki vam omogoča, da s pomočjo PWM (pulzno-širinska modulacija) prilagodite svetlost šestnajstih posameznih LED-lahko pa tudi povežete več kot en TLC5940 za še večji nadzor.

V tej vadnici bomo razložili, kako z LED diodami krmilimo eno ali več IC -jev TLC5940 in si ogledali tudi krmiljenje servomotorjev. Na tej točki prenesite kopijo TLC5940 (.pdf), na katero se boste v tem postopku sklicevali. Poleg tega prenesite in namestite knjižnico TLC5940 Arduino Alexa Leonea, ki jo najdete tukaj. Če niste prepričani, kako namestiti knjižnico, kliknite tukaj.

Korak: Zgradite predstavitveno vezje TLC5940

Zgradite predstavitveno vezje TLC5940
Zgradite predstavitveno vezje TLC5940

Naslednje vezje je najmanj potrebno za krmiljenje šestnajstih LED z vašega Arduina ali združljivo. Z njim lahko eksperimentirate z različnimi funkcijami in dobite predstavo o tem, kaj je mogoče. Boste potrebovali:

  • Arduino Uno ali združljiva plošča
  • 16 običajnih, vsakodnevnih LED, ki imajo lahko tok naprej do 20 mA
  • 2 kΩ upor (daj ali vzemi 10%)
  • 0,1uF keramika in 4,7uF elektrolitski kondenzator

Upoštevajte usmerjenost LED-in ne pozabite, da je TLC5940 pogon LED za skupne anode-zato so vse LED anode povezane skupaj in nato na 5V.

2. korak:

Za to vezje ne potrebujete zunanjega napajalnika za 5 V, vendar ga boste morda potrebovali v prihodnosti. Namen upora je nadzorovati količino toka, ki lahko teče skozi LED. Zahtevana vrednost upora se izračuna po naslednji formuli:

R = 39,06 / Imax, kjer je R (v ohmih) vrednost upora in Imax (v amperih) največja količina toka, ki jo želite pretočiti skozi LED.

Na primer, če imate LED z 20 mA naprej tok - izračun upora bi bil: R = 39,06 / 0,02 = 1803 Ohmov. Ko sestavite vezje - odprite Arduino IDE in naložite skico BasicUse.pde, ki je v vzorčni mapi za knjižnico TLC5940.

Morali bi vam predstaviti izhod, podoben tistemu, ki je prikazan v videoposnetku.

3. korak: Nadzor TLC5940

Zdaj, ko vezje deluje, kako nadziramo TLC5940? Prvič, obvezne funkcije - vključite knjižnico na začetku skice z:

#include "Tlc5940.h"

in nato inicializirajte knjižnico tako, da v void setup () postavite naslednje:

Tlc.init (x);

x je izbirni parameter - če želite vse kanale nastaviti na določeno svetlost takoj, ko se skica začne, lahko v funkcijo Tlc.init () vnesete vrednost med 0 in 4095 za x.

Zdaj za vklop ali izklop kanala/LED. Vsak kanal je oštevilčen od 0 do 15, svetlost vsakega kanala pa je mogoče nastaviti med 0 in 4095. To je dvodelni postopek … Najprej-uporabite eno ali več naslednjih funkcij za nastavitev zahtevanih kanalov in ustrezne svetlosti (PWM raven):

Tlc.set (kanal, svetlost);

Na primer, če želite, da so prvi trije kanali vklopljeni pri polni svetlosti, uporabite:

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

Drugi del je uporaba naslednjega za posodobitev TLC5940 z zahtevanimi navodili iz prvega dela:

Tlc.update ();

Če želite izklopiti vse kanale hkrati, preprosto uporabite:

Tlc.clear ();

4. korak:

Po funkciji clear vam ni treba poklicati TLC.update (). Sledi hiter primer skice, ki nastavi svetlost/PWM vrednosti vseh kanalov na različne ravni:

#include "Tlc5940.h" void setup () {Tlc.init (0); // inicializiramo TLC5940 in izklopimo vse kanale}

void loop ()

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

Možnost nadzora posamezne svetlosti za vsak kanal/LED je lahko uporabna tudi pri krmiljenju LED RGB - nato lahko preprosto izberete potrebne barve z različnimi stopnjami svetlosti za vsak element. Predstavitev je prikazana v videu.

5. korak: Uporaba dveh ali več TLC5940

Za krmiljenje več LED diod lahko skupaj povežete kar nekaj TLC5940. Najprej priključite naslednji TLC5940 na Arduino, kot je prikazano v predstavitvenem vezju - razen priključite pin SOUT (17) prvega TLC5940 na pin SIN (26) drugega TLC5940 - ko podatki potujejo iz Arduina skozi prvi TLC5940 na drugega itd. Nato ponovite postopek, če imate tretjo itd. Ne pozabite na resisotr, ki nastavi tok!

Nato odprite datoteko tlc_config.h, ki se nahaja v mapi knjižnice TLC5940. Spremenite vrednost NUM_TLCS na število TLC5940, ki ste jih povezali skupaj, nato shranite datoteko in izbrišite tudi datoteko Tlc5940.o, ki se nahaja tudi v isti mapi. Končno znova zaženite IDE. Nato se lahko zaporedoma od prvega sklicujete na kanale drugega in nadaljnjega TLC5940. To pomeni, da je prvi 0 ~ 15, drugi 16 ~ 29 itd.

Korak 6: Upravljanje servomotorjev s TLC5940

Ker TLC5940 ustvarja izhod PWM (pulzno-širinska modulacija), je odličen tudi za pogon servomotorjev. Tako kot LED - lahko upravljate do šestnajst naenkrat. Idealno za ustvarjanje robotov, podobnih pajkom, čudnih ur ali hrupa.

Pri izbiri servomotorja pazite, da med delovanjem ne porabi več kot 120 mA (največji tok na kanal) in upoštevajte tudi razdelek »Upravljanje toka in toplote« na koncu te vadnice. In uporabljajte zunanje napajanje s servomotorji, ne zanašajte se na linijo 5V Arduino.

Priključitev servomotorja je preprosta - linija GND se poveže z GND, 5V (ali napajalni napetostni kabel) se poveže z vašim 5v (ali drugim primernim napajanjem), krmilni zatič servo pa na en od izhodov TLC5940. Nazadnje - in to je pomembno - povežite 2,2 kΩ upor med uporabljenimi izhodnimi zatiči TLC5940 in 5V. Upravljanje servomotorja se ne razlikuje toliko od LED. Na začetku skice potrebujete prvi dve vrstici:

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

nato v void setup ():

tlc_initServos ();

Nato z naslednjo funkcijo izberite, kateri servo (kanal) naj deluje in želeni kot (kot):

tlc_setServo (kanal, kot);

Tako kot LED lahko nekaj teh združite skupaj in nato ukaz izvedete z:

Tlc.update ();

Pa poglejmo vse to v akciji. Naslednji primer skice premakne štiri servomotorje po 90 stopinjah:

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

void setup ()

{tlc_initServos (); // Opomba: to bo zmanjšalo frekvenco PWM na 50Hz. }

void loop ()

{for (int kot = 0; kot = 0; kot--) {tlc_setServo (0, kot); tlc_setServo (1, kot); tlc_setServo (2, kot); tlc_setServo (3, kot); Tlc.update (); zamuda (5); }}

Video prikazuje to skico v akciji s štirimi servomotorji.

Če se vaši servomotorji ne vrtijo pod pravilnim kotom - na primer zahtevate 180 stopinj in se vrtijo le na 90 ali približno tam, je potrebno malo več dela.

Odpreti morate datoteko tlc_servos.h, ki se nahaja v mapi knjižnice Arduino TLC5940 in preizkusiti vrednosti za SERVO_MIN_WIDTH in SERVO_MAX_WIDTH. Na primer, spremenite SERVO_MIN_WIDTH z 200 na 203 in SERVO_MAX_WIDTH s 400 na 560.

7. korak: Upravljanje toka in toplote

Kot smo že omenili, lahko TLC5940 prenese največ 120 mA na kanal. Po nekaj poskusih boste morda opazili, da se TLC5940 segreje - in to je v redu.

Upoštevajte, da obstaja največja omejitev količine energije, ki se lahko razprši, preden se del uniči. Če uporabljate le običajne LED vrtne sorte ali manjše servomotorje, napajanje ne bo problem. Če pa načrtujete maksimalno uporabo TLC5940 - preberite opombe avtorjev knjižnice.

Zaključek

Spet ste na poti, da s svojim Arduinom nadzirate neverjetno uporaben del. Zdaj z nekaj domišljije lahko ustvarite vse vrste vizualnih prikazov ali se zabavate s številnimi servomotorji.

To objavo vam ponuja pmdway.com - ki ponuja izdelke TLC5940 skupaj z vsem za proizvajalce in navdušence nad elektroniko, z brezplačno dostavo po vsem svetu.

Priporočena: