Sisällysluettelo:

Arduino ja TLC5940 PWM LED -ohjaimen IC: 7 vaihetta
Arduino ja TLC5940 PWM LED -ohjaimen IC: 7 vaihetta

Video: Arduino ja TLC5940 PWM LED -ohjaimen IC: 7 vaihetta

Video: Arduino ja TLC5940 PWM LED -ohjaimen IC: 7 vaihetta
Video: Standalone ATMEL ATMega328 PWM LED Fading - Mikrocontroller 2024, Heinäkuu
Anonim
Arduino ja TLC5940 PWM LED -ohjaimen IC
Arduino ja TLC5940 PWM LED -ohjaimen IC

Tässä artikkelissa aiomme tutkia Texas Instruments TLC5940 16-kanavaista LED-ohjainta. Syy tähän on osoittaa toinen, helpompi tapa ohjata monia LED -valoja - ja myös servoja. Ensinnäkin tässä on muutama esimerkki TLC5940: stä. Voit tilata TLC5940: n PMD Waylta ilmaisella toimituksella maailmanlaajuisesti.

TLC5940 on saatavana DIP-versiona ja myös pinta-asennettuna. Se on todella kätevä osa, jonka avulla voit säätää kuusitoista yksittäisen LEDin kirkkautta PWM: n (pulssileveysmodulaatio) avulla-ja voit myös ketjuttaa useamman kuin yhden TLC5940-ketjun hallitaksesi enemmän.

Tässä opetusohjelmassa selitämme, kuinka ohjaat yhtä tai useampaa TLC5940 -IC: tä LED -valolla, ja tarkastelemme myös servojen ohjaamista. Lataa tässä vaiheessa kopio TLC5940 -tiedostosta (.pdf), koska viittaat siihen tässä prosessissa. Lisäksi lataa ja asenna Alex Leonen TLC5940 Arduino -kirjasto, joka löytyy täältä. Jos et ole varma kirjaston asentamisesta, napsauta tätä.

Vaihe 1: Rakenna TLC5940 -esittelypiiri

Rakenna TLC5940 -esittelypiiri
Rakenna TLC5940 -esittelypiiri

Seuraava piiri on vähimmäisvaatimus kuusitoista LEDin ohjaamiseen Arduinosta tai yhteensopivasta. Sen avulla voit kokeilla erilaisia toimintoja ja saada käsityksen siitä, mikä on mahdollista. Tarvitset:

  • Arduino Uno tai yhteensopiva levy
  • 16 normaalia, jokapäiväistä LEDiä, joiden jatkuva virta voi olla jopa 20 mA
  • 2 kΩ: n vastus (anna tai ota 10%)
  • 0,1 uF keraaminen ja 4,7 uF elektrolyyttikondensaattori

Ota huomioon LED-suunta-ja muista, että TLC5940 on yleinen anodi-LED-ohjain-joten kaikki LED-anodit kytketään yhteen ja sitten 5 V: n jännitteeseen.

Vaihe 2:

Tätä piiriä varten et tarvitse ulkoista 5 V: n virtalähdettä - mutta saatat tarvita sellaisen tulevaisuudessa. Vastuksen tarkoitus on ohjata LED -valojen läpi virtaavan virran määrää. Vaadittu vastusarvo lasketaan seuraavalla kaavalla:

R = 39,06 / Imax jossa R (ohmeina) on vastuksen arvo ja Imax (ampeereina) on suurin virran määrä, jonka haluat kulkea LEDien läpi.

Esimerkiksi, jos sinulla on LED -valoja, joilla on 20 mA eteenpäin - vastuksen laskenta olisi: R = 39,06 / 0,02 = 1803 ohmia. Kun piiri on koottu, avaa Arduino IDE ja lataa luonnos BasicUse.pde, joka on TLC5940 -kirjaston esimerkkikansiossa.

Sinun pitäisi näyttää videolla esitetyn kaltainen tulos.

Vaihe 3: TLC5940: n ohjaus

Nyt kun piiri toimii, miten hallitsemme TLC5940: tä? Ensinnäkin pakolliset toiminnot - sisälly kirjasto luonnoksen alkuun ja:

#include "Tlc5940.h"

ja sitten alustaa kirjaston asettamalla seuraavat asetukset tyhjäksi ():

Tlc.init (x);

x on valinnainen parametri - jos haluat asettaa kaikki kanavat tiettyyn kirkkauteen heti luonnoksen alkaessa, voit lisätä arvon 0 ja 4095 välille x Tlc.init () -toimintoon.

Kytke kanava/LED päälle tai pois päältä. Jokainen kanava on numeroitu 0-15, ja jokaisen kanavan kirkkautta voidaan säätää välillä 0-4095. Tämä on kaksiosainen prosessi… Ensin-käytä yhtä tai useampaa seuraavista toiminnoista haluttujen kanavien ja vastaavan kirkkauden määrittämiseksi (PWM taso):

Tlc.set (kanava, kirkkaus);

Jos haluat esimerkiksi käyttää kolmea ensimmäistä kanavaa täydellä kirkkaudella, käytä:

Tlc.set (0, 4095); Tlc.set (1, 4095); TLC -sarja (2, 4095);

Toinen osa on käyttää seuraavia päivittääksesi TLC5940 tarvittavat ohjeet osasta 1:

Tlc.update ();

Jos haluat sulkea kaikki kanavat kerralla, käytä yksinkertaisesti:

Tlc.clear ();

Vaihe 4:

Sinun ei tarvitse soittaa TLC.update () -toimintoon poistotoiminnon jälkeen. Seuraavassa on nopea esimerkkiluonnos, joka asettaa kaikkien kanavien kirkkaus/PWM -arvot eri tasoille:

#include "Tlc5940.h" void setup () {Tlc.init (0); // alustaa TLC5940 ja poistaa kaikki kanavat käytöstä}

tyhjä silmukka ()

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

Mahdollisuus ohjata kunkin kanavan/LEDin yksilöllistä kirkkautta voi olla hyödyllinen myös RGB -LEDien ohjauksessa - voit sitten helposti valita tarvittavat värit kunkin kirkkauden eri tasoilla. Demo esitetään videossa.

Vaihe 5: Kahden tai useamman TLC5940 -laitteen käyttö

Voit ketjuttaa useita TLC5940-laitteita yhdessä hallitaksesi enemmän LED-valoja. Kytke ensin seuraava TLC5940 Arduinoon esittelypiirin mukaisesti - paitsi yhdistä ensimmäisen TLC5940: n SOUT -nasta (17) toisen TLC5940: n SIN -nastaan (26) - kun data kulkee Arduinon kautta ensimmäinen TLC5940 toiselle ja niin edelleen. Toista sitten prosessi, jos sinulla on kolmas jne. Älä unohda resisotria, joka asettaa virran!

Avaa seuraavaksi tiedosto tlc_config.h, joka sijaitsee TLC5940 -kirjaston kansiossa. Muuta NUM_TLCS -arvon arvoksi yhdistettyjen TLC5940 -numeroiden määrä, tallenna tiedosto ja poista myös tiedosto Tlc5940.o, joka sijaitsee samassa kansiossa. Käynnistä IDE lopuksi uudelleen. Voit sitten viitata toisen ja seuraavan TLC5940: n kanaviin peräkkäin ensimmäisestä. Eli ensimmäinen on 0 ~ 15, toinen on 16 ~ 29 jne.

Vaihe 6: Servojen hallinta TLC5940: llä

Koska TLC5940 tuottaa PWM (pulse-width modulation) -lähdön, se sopii erinomaisesti myös servojen ajamiseen. Aivan kuten LEDit - voit hallita jopa kuusitoista kerralla. Ihanteellinen hämähäkkimaisten robottien, outojen kellojen tai melun luomiseen.

Kun valitset servoa, varmista, että se ei kuluta yli 120 mA käytettäessä (enimmäisvirta kanavaa kohti), ja ota huomioon myös tämän opetusohjelman lopussa oleva”Virran ja lämmön hallinta” -osio. Ja käytä ulkoista virtaa servojen kanssa, älä luota Arduinon 5V -linjaan.

Servon liittäminen on yksinkertaista - GND -linja muodostaa yhteyden GND: hen, 5 V (tai syöttöjännitejohto) 5 V: ään (tai muuhun sopivaan virtalähteeseen) ja servo -ohjaustappi yhteen TLC5940: n ulostulosta. Lopuksi - ja tämä on tärkeää - liitä 2,2 kΩ: n vastus käytettyjen TLC5940 -ulostulonappien ja 5 V: n väliin. Servon ohjaus ei eroa LEDistä. Tarvitset kaksi ensimmäistä riviä luonnoksen alussa:

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

sitten mitä tahansa tyhjässä asennuksessa ():

tlc_initServos ();

Käytä seuraavaksi seuraavaa toimintoa valitaksesi käytettävä servo (kanava) ja haluttu kulma (kulma):

tlc_setServo (kanava, kulma);

Aivan kuten LEDit, voit niputtaa muutamia näistä yhdessä ja suorittaa sitten komennon:

Tlc.update ();

Katsotaan siis kaikki tämä toiminnassa. Seuraava esimerkkiluonnos pyyhkäisee neljä servoa 90 asteen kulmaan:

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

mitätön asennus ()

{tlc_initServos (); // Huomautus: tämä laskee PWM -taajuuden 50 Hz: iin. }

tyhjä silmukka ()

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

Videossa näkyy tämä luonnos toiminnassa neljän servon kanssa.

Jos servot eivät pyöri oikeaan kulmaan - esimerkiksi pyydät 180 astetta ja ne kääntyvät vain 90 asentoon tai sen taakse, tarvitaan vähän ylimääräistä työtä.

Sinun on avattava tlc_servos.h -tiedosto, joka sijaitsee TLC5940 Arduino -kirjaston kansiossa, ja kokeile arvoja SERVO_MIN_WIDTH ja SERVO_MAX_WIDTH. Muuta esimerkiksi SERVO_MIN_WIDTH arvosta 200 arvoon 203 ja SERVO_MAX_WIDTH arvosta 400 arvoon 560.

Vaihe 7: Virran ja lämmön hallinta

Kuten aiemmin mainittiin, TLC5940 voi käsitellä enintään 120 mA kanavaa kohti. Kokeilun jälkeen saatat huomata, että TLC5940 lämpenee - ja se on ok.

Huomaa, että ennen kuin tuhoat osan, tuhlattavalle teholle on olemassa enimmäisraja. Jos käytät vain tavallisia puutarhalajeja tai pienempiä servoja, virta ei ole ongelma. Jos kuitenkin aiot käyttää TLC5940 -laitetta maksimissaan - tutustu kirjaston tekijöiden toimittamiin muistiinpanoihin.

Johtopäätös

Olet jälleen matkalla ohjaamaan uskomattoman hyödyllistä osaa Arduinollasi. Nyt hieman mielikuvituksella voit luoda kaikenlaisia visuaalisia näyttöjä tai pitää hauskaa monien servojen kanssa.

Tämän viestin tuo sinulle pmdway.com - joka tarjoaa TLC5940 -tuotteita ja kaikkea valmistajille ja elektroniikan harrastajille, ja ilmainen toimitus maailmanlaajuisesti.

Suositeltava: