Tartalomjegyzék:

Az Arduino és a TLC5940 PWM LED illesztőprogram IC: 7 lépés
Az Arduino és a TLC5940 PWM LED illesztőprogram IC: 7 lépés

Videó: Az Arduino és a TLC5940 PWM LED illesztőprogram IC: 7 lépés

Videó: Az Arduino és a TLC5940 PWM LED illesztőprogram IC: 7 lépés
Videó: Контрольная лампа переменного тока с диммером Arduino AC 2024, Július
Anonim
Az Arduino és a TLC5940 PWM LED meghajtó IC
Az Arduino és a TLC5940 PWM LED meghajtó IC

Ebben a cikkben megvizsgáljuk a Texas Instruments TLC5940 16 csatornás LED-illesztőprogram IC-jét. Ennek az az oka, hogy bemutatunk egy másik, egyszerűbb módot sok LED - és szervó - meghajtására. Először is itt van néhány példa a TLC5940 -re. Megrendelheti a TLC5940 -et a PMD Way -től, ingyenes szállítással világszerte.

A TLC5940 DIP változatban is kapható, de felületszerelhető is. Ez valóban egy kényelmes rész, amely lehetővé teszi, hogy tizenhat egyedi LED fényerejét állítsa be a PWM (impulzusszélesség-moduláció) segítségével-és több TLC5940-et is láncolhat, hogy még többet vezérelhessen.

Ebben az oktatóanyagban elmagyarázzuk, hogyan lehet egy vagy több TLC5940 IC -t LED -ekkel vezérelni, és megvizsgáljuk a szervók vezérlését is. Ezen a ponton töltse le a TLC5940 (.pdf) példányát, mivel a folyamat során erre hivatkozik. Ezenkívül töltse le és telepítse Alex Leone TLC5940 Arduino könyvtárát, amely itt található. Ha nem biztos a könyvtár telepítésében, kattintson ide.

1. lépés: Készítsen egy TLC5940 bemutató áramkört

Építsen egy TLC5940 bemutató áramkört
Építsen egy TLC5940 bemutató áramkört

A következő áramkör a minimum, ami szükséges ahhoz, hogy tizenhat LED -et vezessen az Arduino vagy a kompatibilis eszközről. Segítségével kísérletezhet különféle funkciókkal, és képet kaphat a lehetséges lehetőségekről. Szükséged lesz:

  • Egy Arduino Uno vagy kompatibilis tábla
  • 16 normál, mindennapi LED, amelyek akár 20 mA előreáramúak is lehetnek
  • 2 kΩ -os ellenállás (adjon vagy vegyen 10%-ot)
  • 0,1uF kerámia és 4,7uF elektrolit kondenzátor

Vegye figyelembe a LED tájolását-és ne feledje, hogy a TLC5940 egy közös anódos LED-illesztőprogram-, így az összes LED-anód össze van kötve, majd 5 V-ra.

2. lépés:

Ehhez az áramkörhöz nem lesz szüksége külső 5 V -os tápegységre, de a jövőben szükség lehet rá. Az ellenállás célja a LED -eken átáramló áram mennyiségének szabályozása. A szükséges ellenállásértéket a következő képlettel kell kiszámítani:

R = 39,06 / Imax ahol R (ohmban) az ellenállás értéke és az Imax (amperben) a LED -eken átáramolni kívánt áram maximális mennyisége.

Például, ha 20 mA előremenő árammal rendelkező LED -je van - az ellenállás számítása a következő lenne: R = 39,06 / 0,02 = 1803 Ohm. Miután összeállította az áramkört, nyissa meg az Arduino IDE -t, és töltse fel a BasicUse.pde vázlatát, amely a TLC5940 könyvtár példakép mappájában található.

A videóban láthatóhoz hasonló kimenetet kell bemutatnia.

3. lépés: A TLC5940 vezérlése

Most, hogy az áramkör működik, hogyan irányíthatjuk a TLC5940 -et? Először is, a kötelező funkciók - tartalmazza a könyvtárat a vázlat elején a következőkkel:

#include "Tlc5940.h"

majd inicializálja a könyvtárat úgy, hogy a következőket üres beállításba helyezi ():

Tlc.init (x);

Az x opcionális paraméter - ha az összes csatornát egy bizonyos fényerősségre szeretné állítani, amint a vázlat elkezdődik, akkor a Tlc.init () függvényben 0 és 4095 közötti értéket szúrhat be x -re.

Most kapcsolja be vagy ki a csatornát/LED -et. Minden csatorna 0-tól 15-ig van számozva, és minden csatorna fényereje 0 és 4095 között állítható. Ez két részből álló folyamat … Először-használja a következő funkciók közül egyet vagy többet a kívánt csatornák és a megfelelő fényerő beállításához (PWM szint):

Tlc.set (csatorna, fényerő);

Ha például azt szeretné, hogy az első három csatorna teljes fényerőn legyen bekapcsolva, használja:

Vékonyréteg -készlet (0, 4095); vékonyréteg -készlet (1, 4095); Vékonyréteg -készlet (2, 4095);

A második rész a következőket használja a TLC5940 frissítéséhez az első részből származó szükséges utasításokkal:

Tlc.update ();

Ha egyszerre ki szeretné kapcsolni az összes csatornát, egyszerűen használja:

Tlc.clear ();

4. lépés:

Nem kell hívnia a TLC.update () parancsot a törlés funkció után. Az alábbiakban egy gyors példavázlat látható, amely minden csatorna fényerejét/PWM értékét különböző szintekre állítja be:

#include "Tlc5940.h" void setup () {Tlc.init (0); // a TLC5940 inicializálása és az összes csatorna kikapcsolása}

üres hurok ()

{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); késleltetés (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); késleltetés (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); késleltetés (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); késleltetés (1000); }

Az egyes csatornák/LED -ek egyéni fényerejének szabályozása hasznos lehet az RGB LED -ek vezérlésénél is - ezután könnyen kiválaszthatja a kívánt színeket az egyes elemek különböző fényerősségei segítségével. A videóban bemutató látható.

5. lépés: Két vagy több TLC5940 használata

Jó néhány TLC5940-et láncba köthet több LED vezérléséhez. Először - kösse be a következő TLC5940 -et az Arduino -hoz, amint azt a bemutató áramkör mutatja - kivéve, ha az első TLC5940 SOUT -érintkezőjét (17) a második TLC5940 SIN -tűjéhez (26) csatlakoztatja - miközben az adatok az Arduino -tól áthaladnak az első TLC5940 a második és így tovább. Ezután ismételje meg a folyamatot, ha van harmadik, stb. Ne felejtse el az áramot beállító resizotr -t!

Ezután nyissa meg a TLC5940 könyvtármappában található tlc_config.h fájlt. Módosítsa a NUM_TLCS értékét az összekapcsolt TLC5940 -ek számára, majd mentse el a fájlt, és törölje a szintén ugyanabban a mappában található Tlc5940.o fájlt. Végül indítsa újra az IDE -t. Ezután a második és a további TLC5940 csatornáira hivatkozhat az első sorrendben. Vagyis az első 0 ~ 15, a második 16 ~ 29 stb.

6. lépés: A szervók vezérlése a TLC5940 segítségével

Mivel a TLC5940 PWM (impulzus-szélesség moduláció) kimenetet generál, kiválóan alkalmas szervók meghajtására is. Akárcsak a LED -ek - egyszerre akár tizenhat vezérlését is elvégezheti. Ideális pókhoz hasonló robotok, furcsa órák létrehozásához vagy némi zajhoz.

A szervó kiválasztásakor ügyeljen arra, hogy működés közben ne húzzon 120 mA -nél többet (csatornánként a maximális áram), és vegye figyelembe az oktatóanyag végén található „Áram és hő kezelése” részt. És használjon külső áramot szervókkal, ne hagyatkozzon az Arduino 5V -os vezetékére.

Egy szervo csatlakoztatása egyszerű - a GND vezeték a GND -hez, az 5V (vagy tápfeszültség vezeték) az 5v -hoz (vagy más megfelelő tápellátáshoz), a szervo vezérlőcsap pedig a TLC5940 egyik kimenetéhez csatlakozik. Végül - és ez fontos - csatlakoztasson egy 2,2 kΩ -os ellenállást a használt TLC5940 kimeneti csap (ok) és az 5 V közé. A szervó vezérlése nem különbözik a LED -től. Szüksége van az első két sorra a vázlat elején:

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

majd a következőket a void setup () -ban:

tlc_initServos ();

Ezután a következő funkcióval válassza ki, hogy melyik szervót (csatornát) kell működtetni, és a kívánt szöget (szöget):

tlc_setServo (csatorna, szög);

A LED -ekhez hasonlóan néhányat össze is rakhat, majd végrehajthatja a parancsot:

Tlc.update ();

Lássuk tehát mindezt működés közben. A következő példa vázlat négy szervót söpör 90 fokon keresztül:

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

üres beállítás ()

{tlc_initServos (); // Megjegyzés: ez csökkenti a PWM frekvenciát 50 Hz -re. }

üres hurok ()

{for (int szög = 0; szög = 0; szög--) {tlc_setServo (0, szög); tlc_setServo (1, szög); tlc_setServo (2, szög); tlc_setServo (3, szög); Tlc.update (); késleltetés (5); }}

A videó ezt a vázlatot mutatja be működés közben négy szervóval.

Ha a szervók nem a megfelelő szögben forognak - például 180 fokot kérnek, és csak 90 -ig vagy kb.

Nyissa meg a tlc_servos.h fájlt, amely a TLC5940 Arduino könyvtár mappájában található, és kísérletezzen a SERVO_MIN_WIDTH és SERVO_MAX_WIDTH értékekkel. Például módosítsa a SERVO_MIN_WIDTH értéket 200 -ról 203 -ra és a SERVO_MAX_WIDTH értéket 400 -ról 560 -ra.

7. lépés: Az áram és a hő kezelése

Amint azt korábban említettük, a TLC5940 csatornánként legfeljebb 120 mA -t képes kezelni. Némi kísérletezés után észreveheti, hogy a TLC5940 felmelegszik - és ez rendben van.

Ne feledje, hogy az alkatrész megsemmisítése előtt a maximális energiahatár korlátozva van. Ha csak normál kerti LED-eket vagy kisebb szervókat használ, az áramellátás nem jelent problémát. Ha azonban a TLC5940 maximális használatát tervezi - tekintse át a könyvtár szerzői által készített megjegyzéseket.

Következtetés

Ismét úton van egy hihetetlenül hasznos rész irányításán az Arduino segítségével. Most némi fantáziával létrehozhat mindenféle vizuális megjelenítést, vagy szórakozhat sok szervóval.

Ezt a bejegyzést a pmdway.com hozza meg Önnek - amely TLC5940 termékeket kínál mindennel együtt a gyártók és az elektronika rajongói számára, ingyenes szállítással világszerte.

Ajánlott: