Orodha ya maudhui:

Arduino na TLC5940 PWM LED Dereva IC: Hatua 7
Arduino na TLC5940 PWM LED Dereva IC: Hatua 7

Video: Arduino na TLC5940 PWM LED Dereva IC: Hatua 7

Video: Arduino na TLC5940 PWM LED Dereva IC: Hatua 7
Video: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Novemba
Anonim
Arduino na TLC5940 PWM LED Dereva IC
Arduino na TLC5940 PWM LED Dereva IC

Katika nakala hii tutaenda kuchunguza Vyombo vya Texas TLC5940 16-channel LED driver IC. Sababu yetu ya kufanya hivyo ni kuonyesha njia nyingine rahisi ya kuendesha LED nyingi - na pia servos. Kwanza, hapa kuna mifano michache ya TLC5940. Unaweza kuagiza TLC5940 kutoka kwa PMD Way na uwasilishaji wa bure ulimwenguni.

TLC5940 inapatikana katika toleo la DIP, na pia upandaji wa uso. Kwa kweli ni sehemu inayofaa, hukuruhusu kurekebisha mwangaza wa LED kumi na sita za kibinafsi kupitia PWM (mpigo wa upanaji wa mapigo) - na unaweza pia kushikilia mnyororo zaidi ya moja TLC5940 kudhibiti hata zaidi.

Wakati wa mafunzo haya tutaelezea jinsi ya kudhibiti moja au zaidi ya TLC5940 ICs zilizo na LED na pia angalia kudhibiti servos. Kwa wakati huu, tafadhali pakua nakala ya TLC5940 (.pdf) kama utakavyorejelea kupitia mchakato huu. Zaidi ya hayo, tafadhali pakua na usakinishe maktaba ya TLC5940 Arduino na Alex Leone ambayo inaweza kupatikana hapa. Ikiwa hauna hakika jinsi ya kusanikisha maktaba, bonyeza hapa.

Hatua ya 1: Jenga Mzunguko wa Maonyesho wa TLC5940

Jenga Mzunguko wa Maonyesho wa TLC5940
Jenga Mzunguko wa Maonyesho wa TLC5940

Mzunguko ufuatao ndio kiwango cha chini kinachohitajika kudhibiti LED kumi na sita kutoka kwa Arduino yako au inayoendana. Unaweza kuitumia kujaribu kazi anuwai na kupata wazo la nini kinawezekana. Utahitaji:

  • Bodi ya Arduino Uno au bodi inayoendana
  • 16 za kawaida, LED za kila siku ambazo zinaweza kuwa na mbele ya hadi 20 mA
  • kipinga 2 kΩ (toa au chukua 10%)
  • kauri ya 0.1uF na capacitor ya elektroni ya 4.7uF

Kumbuka mwelekeo wa LED - na kumbuka TLC5940 ni dereva wa kawaida wa anode LED - kwa hivyo anode zote za LED zimeunganishwa pamoja na kisha kwa 5V.

Hatua ya 2:

Kwa mzunguko huu, hautahitaji usambazaji wa nje wa 5V - hata hivyo unaweza kuhitaji moja baadaye. Madhumuni ya kupinga ni kudhibiti kiwango cha sasa ambacho kinaweza kutiririka kupitia LED. Thamani ya kupinga inayotakiwa imehesabiwa na fomula ifuatayo:

R = 39.06 / Imax ambapo R (katika Ohms) ni thamani ya kupinga na Imax (katika Amps) ni kiwango cha juu cha sasa unachotaka kupita kupitia LED.

Kwa mfano, ikiwa una LED zilizo na mA 20 mbele - hesabu ya kontena itakuwa: R = 39.06 / 0.02 = 1803 Ohms. Mara baada ya mzunguko kukusanyika - fungua Arduino IDE na upakie mchoro BasicUse.pde ulio kwenye folda ya mfano kwa maktaba ya TLC5940.

Unapaswa kuwasilishwa na pato sawa na ile inayoonyeshwa kwenye video.

Hatua ya 3: Kudhibiti TLC5940

Sasa kwa kuwa mzunguko unafanya kazi, je! Tunadhibitije TLC5940? Kwanza, kazi za lazima - ni pamoja na maktaba mwanzoni mwa mchoro na:

# pamoja na "Tlc5940.h"

na kisha anzisha maktaba kwa kuweka yafuatayo katika usanidi batili ():

Tlc.init (x);

x ni kigezo cha hiari - ikiwa unataka kuweka chaneli zote kwa mwangaza fulani mara tu mchoro unapoanza, unaweza kuingiza thamani kati ya 0 na 4095 kwa x katika kazi ya Tlc.init ().

Sasa kuwasha au kuzima kituo / LED. Kila kituo kinahesabiwa kutoka 0 hadi 15, na mwangaza wa kila kituo unaweza kubadilishwa kati ya 0 na 4095. Hii ni mchakato wa sehemu mbili… Kwanza - tumia moja au zaidi ya kazi zifuatazo kuanzisha vituo vinavyohitajika na mwangaza husika (PWM kiwango):

Seti ya Tlc (kituo, mwangaza);

Kwa mfano, ikiwa ungependa kuwasha chaneli tatu za kwanza kwa mwangaza kamili, tumia:

Seti ya Tlc (0, 4095); seti ya Tlc (1, 4095); Seti ya Tlc (2, 4095);

Sehemu ya pili ni kutumia yafuatayo kusasisha TLC5940 na maagizo yanayotakiwa kutoka sehemu ya kwanza:

Tlc.sasisha ();

Ikiwa unataka kuzima vituo vyote mara moja, tumia tu:

Tlc. Wazi ();

Hatua ya 4:

Huna haja ya kupiga TLC.update () baada ya kazi wazi. Ufuatao ni mfano wa haraka mchoro ambao huweka mwangaza / maadili ya PWM ya vituo vyote kwa viwango tofauti:

# pamoja na "Tlc5940.h" usanidi batili () {Tlc.init (0); // anzisha TLC5940 na uzime vituo vyote}

kitanzi batili ()

{kwa (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.sasisha (); kuchelewesha (1000); kwa (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.sasisha (); kuchelewesha (1000); kwa (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.sasisha (); kuchelewesha (1000); kwa (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.sasisha (); kuchelewesha (1000); }

Uwezo wa kudhibiti mwangaza wa kila mtu kwa kila kituo / LED pia inaweza kuwa muhimu wakati wa kudhibiti RGB za LED - unaweza kuchagua kwa urahisi rangi zinazohitajika kupitia viwango tofauti vya mwangaza kwa kila kitu. Maonyesho yanaonyeshwa kwenye video.

Hatua ya 5: Kutumia TLC5940s mbili au zaidi

Unaweza kubana mnyororo TLC5940s kadhaa pamoja kudhibiti LED nyingi. Kwanza - waya juu ya TLC5940 inayofuata hadi Arduino kama inavyoonyeshwa kwenye mzunguko wa maandamano - isipokuwa unganisha pini ya SOUT (17) ya TLC5940 ya kwanza na pini ya SIN (26) ya TLC5940 ya pili - wakati data inasafiri kutoka Arduino, kupitia TLC5940 ya kwanza hadi ya pili na kadhalika. Kisha kurudia mchakato ikiwa una theluthi, nk Usisahau resisotr ambayo inaweka sasa!

Ifuatayo, fungua faili tlc_config.h iliyoko kwenye folda ya maktaba ya TLC5940. Badilisha thamani ya NUM_TLCS kuwa idadi ya TLC5940s ambazo umeunganisha pamoja, kisha uhifadhi faili na pia ufute faili Tlc5940.o pia iliyoko kwenye folda moja. Mwishowe anzisha tena IDE. Basi unaweza kutaja njia za TLC5940 ya pili na zaidi kwa mtiririko huo kutoka kwa ya kwanza. Hiyo ni, ya kwanza ni 0 ~ 15, ya pili ni 16 ~ 29, na kadhalika.

Hatua ya 6: Kudhibiti Servos na TLC5940

Kwa kuwa TLC5940 inazalisha PWM (mpigo wa upanaji wa mpigo), ni nzuri kwa kuendesha servos pia. Kama vile LED - unaweza kudhibiti hadi kumi na sita mara moja. Bora kwa kuunda roboti kama buibui, saa za ajabu au kufanya kelele.

Wakati wa kuchagua servo yako, hakikisha kwamba haitoi zaidi ya 120 mA wakati wa kufanya kazi (kiwango cha juu kwa kila kituo) na pia uzingatie sehemu ya "Kusimamia sasa na joto" mwishoni mwa mafunzo haya. Na tumia nguvu ya nje na servos, usitegemee laini ya 5V ya Arduino.

Kuunganisha servo ni rahisi - laini ya GND inaunganisha na GND, 5V (au mwongozo wa usambazaji wa voltage) inaunganisha kwenye 5v yako (au usambazaji mwingine unaofaa) na pini ya kudhibiti servo inaunganisha na moja ya matokeo ya TLC5940. Mwishowe - na hii ni muhimu - unganisha kipinga cha 2.2kΩ kati ya pini (s) za pato za TLC5940 zinazotumiwa na 5V. Kudhibiti servo sio tofauti na LED. Unahitaji mistari miwili ya kwanza mwanzoni mwa mchoro:

# pamoja na "Tlc5940.h" # pamoja na "tlc_servos.h"

kisha yafuatayo katika usanidi batili ():

tlc_initServos ();

Ifuatayo, tumia kazi ifuatayo kuchagua ni servo gani (idhaa) ya kufanya kazi na pembe inayohitajika (pembe):

tlc_setServo (kituo, pembe);

Kama vile LEDs unaweza kukusanya kadhaa hizi pamoja, kisha utekeleze amri na:

Tlc.sasisha ();

Basi hebu tuone hayo yote kwa vitendo. Mchoro ufuatao unafagia servos nne kwa digrii 90:

# pamoja na "Tlc5940.h" # pamoja na "tlc_servos.h"

kuanzisha batili ()

{tlc_initServos (); // Kumbuka: hii itashusha freqency ya PWM chini hadi 50Hz. }

kitanzi batili ()

{kwa (int angle = 0; angle = 0; angle--) {tlc_setServo (0, angle); tlc_setServo (1, pembe); tlc_setServo (2, pembe); tlc_setServo (3, pembe); Tlc.sasisha (); kuchelewesha (5); }}

Video inaonyesha mchoro huu ukifanya kazi na servos nne.

Ikiwa servos hazizunguki kwa pembe sahihi - kwa mfano unauliza digrii 180 na huzunguka tu hadi 90 au hapo, kazi ya ziada kidogo inahitajika.

Unahitaji kufungua faili ya tlc_servos.h iliyoko kwenye folda ya maktaba ya TLC5940 Arduino na ujaribu maadili ya SERVO_MIN_WIDTH na SERVO_MAX_WIDTH. Kwa mfano badilisha SERVO_MIN_WIDTH kutoka 200 hadi 203 na SERVO_MAX_WIDTH kutoka 400 hadi 560.

Hatua ya 7: Kusimamia Sasa na Joto

Kama ilivyoelezwa hapo awali, TLC5940 inaweza kushughulikia kiwango cha juu cha 120 mA kwa kila kituo. Baada ya kujaribu kadhaa unaweza kugundua kuwa TLC5940 inapata joto - na hiyo ni sawa.

Kumbuka kuwa kuna kikomo cha juu kwa kiwango cha nguvu ambacho kinaweza kufutwa kabla ya kuharibu sehemu hiyo. Ikiwa unatumia tu LED za kawaida za bustani au servos ndogo, nguvu haitakuwa shida. Walakini ikiwa unapanga kutumia TLC5940 kwa kiwango cha juu - tafadhali kagua maandishi yaliyotolewa na waandishi wa maktaba.

Hitimisho

Kwa mara nyingine uko njiani kudhibiti sehemu muhimu sana na Arduino yako. Sasa na mawazo kadhaa unaweza kuunda kila aina ya maonyesho ya kuona au kufurahiya na servos nyingi.

Chapisho hili linaletwa kwako na pmdway.com - ambayo inatoa bidhaa za TLC5940 pamoja na kila kitu kwa watengenezaji na wapenda umeme, na uwasilishaji wa bure ulimwenguni.

Ilipendekeza: