Բովանդակություն:

Arduino- ն և TLC5940 PWM LED վարորդի IC: 7 քայլ
Arduino- ն և TLC5940 PWM LED վարորդի IC: 7 քայլ

Video: Arduino- ն և TLC5940 PWM LED վարորդի IC: 7 քայլ

Video: Arduino- ն և TLC5940 PWM LED վարորդի IC: 7 քայլ
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Նոյեմբեր
Anonim
Arduino- ն և TLC5940 PWM LED վարորդի IC- ն
Arduino- ն և TLC5940 PWM LED վարորդի IC- ն

Այս հոդվածում մենք պատրաստվում ենք ուսումնասիրել Texas Instruments TLC5940 16-ալիքային LED վարորդի IC- ն: Դա անելու մեր պատճառն այն է, որ ցուցադրենք մեկ այլ, ավելի հեշտ միջոց ՝ բազմաթիվ LED լուսարձակներ վարելու համար, ինչպես նաև սպասարկողներ: Նախ, ահա TLC5940- ի մի քանի օրինակ: Կարող եք պատվիրել TLC5940 PMD Way- ից ՝ անվճար առաքում ամբողջ աշխարհով:

TLC5940- ը հասանելի է DIP տարբերակով, ինչպես նաև մակերեսային տեղադրման համար: Դա իսկապես հարմար մաս է, որը թույլ է տալիս Ձեզ կարգավորել տասնվեց անհատական LED- ների պայծառությունը PWM- ի միջոցով (զարկերակի լայնության մոդուլյացիա), և կարող եք նաև մեկից ավելի TLC5940 շղթա շղթայով `ավելի շատ կառավարելու համար:

Այս ձեռնարկի ընթացքում մենք կբացատրենք, թե ինչպես կարելի է մեկ կամ մի քանի TLC5940 IC- ներ վերահսկել LED- ներով, ինչպես նաև դիտել վերահսկվող սերվերը: Այս պահին, խնդրում ենք ներբեռնել TLC5940- ի (.pdf) պատճենը, քանի որ դրան կանդրադառնաք այս գործընթացի միջոցով: Բացի այդ, խնդրում ենք ներբեռնել և տեղադրել Ալեքս Լեոնեի TLC5940 Arduino գրադարանը, որը կարելի է գտնել այստեղ: Եթե վստահ չեք, թե ինչպես տեղադրել գրադարան, կտտացրեք այստեղ:

Քայլ 1. Կառուցեք TLC5940 ցուցադրական շրջան

Կառուցեք TLC5940 ցուցադրական շրջան
Կառուցեք TLC5940 ցուցադրական շրջան

Հետևյալ միացումն այն նվազագույնն է, որը պահանջվում է ձեր Arduino- ից կամ համատեղելի տասնվեց LED լուսավորելու համար: Դուք կարող եք օգտագործել այն տարբեր գործառույթների փորձեր կատարելու և հնարավորության մասին պատկերացում կազմելու համար: Ձեզ հարկավոր կլինի.

  • Arduino Uno կամ համատեղելի տախտակ
  • 16 սովորական, ամենօրյա լուսադիոդային լուսարձակներ, որոնք կարող են ունենալ մինչև 20 մԱ ընթացիկ հոսանք
  • 2 կՄ ռեզիստոր (տվեք կամ վերցրեք 10%)
  • 0.1uF կերամիկական և 4.7uF էլեկտրոլիտիկ կոնդենսատոր

Ուշադրություն դարձրեք LED- ի կողմնորոշմանը, և հիշեք, որ TLC5940- ը սովորական անոդային LED վարորդ է, այնպես որ բոլոր LED անոդները միացված են միասին, այնուհետև 5 Վ լարման:

Քայլ 2:

Այս միացման համար ձեզ հարկավոր չէ արտաքին 5 Վ էլեկտրամատակարարում, սակայն հետագայում կարող է անհրաժեշտ լինել: Դիմադրության նպատակն է վերահսկել հոսանքի չափը, որը կարող է հոսել LED- ների միջով: Պահանջվող դիմադրության արժեքը հաշվարկվում է հետևյալ բանաձևով.

R = 39.06 / Imax, որտեղ R- ը (Օհմերում) ռեզիստորի արժեքն է, իսկ Imax- ը (ամպերում) այն առավելագույն հոսանքն է, որը ցանկանում եք հոսել LED- ների միջով:

Օրինակ, եթե ունեք 20 մԱ առաջ հոսանքով լուսադիոդներ - դիմադրության հաշվարկը կլինի ՝ R = 39.06 / 0.02 = 1803 Օմ: Շղթան հավաքելուց հետո բացեք Arduino IDE- ն և վերբեռնեք BasicUse.pde ուրվագիծը, որը գտնվում է TLC5940 գրադարանի օրինակելի թղթապանակում:

Ձեզ պետք է ներկայացվի տեսահոլովակում ցուցադրվածի նման ելքով:

Քայլ 3: TLC5940- ի վերահսկում

Այժմ, երբ միացումն աշխատում է, ինչպե՞ս ենք մենք վերահսկում TLC5940- ը: Նախ, պարտադիր գործառույթները `ներառեք գրադարանը էսքիզի սկզբում`

#ներառել «Tlc5940.h»

և այնուհետև նախաստորագրեք գրադարանը ՝ հետևյալը տեղադրելով void setup ():

Tlc.init (x);

x- ը կամընտիր պարամետր է. եթե ցանկանում եք էսքիզը սկսելուն պես բոլոր ալիքները որոշակի պայծառության դնել, Tlc.init () գործառույթում կարող եք 0 -ից մինչև 4095 արժեք սահմանել x- ի համար:

Այժմ ալիքը/LED- ը միացնելու կամ անջատելու համար: Յուրաքանչյուր ալիք համարակալված է 0-ից 15-ը, և յուրաքանչյուր ալիքի պայծառությունը կարող է ճշգրտվել 0-ից մինչև 4095-ը: Սա երկու մասից բաղկացած գործընթաց է … Նախ `օգտագործեք հետևյալ գործառույթներից մեկը կամ մի քանիսը` պահանջվող ալիքները և համապատասխան պայծառությունը (PWM) կարգավորելու համար: մակարդակ):

Tlc.set (ալիք, պայծառություն);

Օրինակ, եթե ցանկանում եք առաջին երեք ալիքները միացնել ամբողջ պայծառությամբ, օգտագործեք.

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

Երկրորդ մասը պետք է օգտագործի հետևյալը ՝ TLC5940- ը առաջին մասից պահանջվող հրահանգներով թարմացնելու համար.

Tlc.update ();

Եթե ցանկանում եք միանգամից անջատել բոլոր ալիքները, պարզապես օգտագործեք.

Tlc.clear ();

Քայլ 4:

Անհրաժեշտ չէ TLC.update () զանգահարել հստակ գործառույթից հետո: Հետևյալը էսքիզների արագ օրինակ է, որը տարբեր ալիքների է սահմանում բոլոր ալիքների պայծառության/PWM արժեքները.

#ներառել "Tlc5940.h" void setup () {Tlc.init (0); // նախաստորագրել TLC5940- ը և անջատել բոլոր ալիքները}

դատարկ շրջան ()

{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); ուշացում (1000); համար (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); ուշացում (1000); համար (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); ուշացում (1000); համար (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); ուշացում (1000); }

Յուրաքանչյուր ալիքի/լուսադիոդի անհատական պայծառությունը վերահսկելու ունակությունը կարող է օգտակար լինել նաև RGB LED- ները վերահսկելիս. Տեսանյութում ցուցադրվում է ցույց:

Քայլ 5. Երկու կամ ավելի TLC5940s օգտագործելը

Դուք կարող եք շղթայել մի քանի TLC5940- ներ միասին `ավելի շատ LED- ներ վերահսկելու համար: Նախ `հաջորդ TLC5940- ը միացրեք Arduino- ին, ինչպես ցույց է տրված ցուցադրման շրջանում, բացառությամբ առաջին TLC5940- ի SOUT կապը (17) միացրեք երկրորդ TLC5940- ի SIN pin- ին (26), քանի որ տվյալները Arduino- ից անցնում են առաջին TLC5940 երկրորդին և այլն: Հետո կրկնել գործընթացը, եթե ունեք երրորդը և այլն:

Հաջորդը, բացեք tlc_config.h ֆայլը, որը գտնվում է TLC5940 գրադարանի թղթապանակում: Փոխեք NUM_TLCS- ի արժեքը ձեր միացրած TLC5940- ների թվին, այնուհետև պահեք ֆայլը և ջնջեք նաև ֆայլը Tlc5940.o- ն, որը գտնվում է նույն պանակում: Վերջապես վերագործարկեք IDE- ն: Այնուհետև կարող եք անդրադառնալ երկրորդ և հետագա TLC5940 ալիքներին ՝ հաջորդաբար առաջինից: Այսինքն ՝ առաջինը 0 ~ 15 է, երկրորդը ՝ 16 ~ 29 և այլն:

Քայլ 6. Vառայությունների վերահսկում TLC5940- ով

Քանի որ TLC5940- ն արտադրում է PWM (զարկերակային լայնության մոդուլյացիա) ելք, այն հիանալի է նաև սերվո ծառայություններ վարելու համար: LEDիշտ այնպես, ինչպես LED- ները `կարող եք միաժամանակ կառավարել մինչև տասնվեց: Իդեալական է սարդին նման ռոբոտներ ստեղծելու, տարօրինակ ժամացույցներ ստեղծելու կամ ինչ-որ աղմուկ բարձրացնելու համար:

Ձեր servo- ն ընտրելիս համոզվեք, որ այն չի լարում ավելի քան 120 mA- ն աշխատելիս (առավելագույն ալիքը մեկ ալիքի վրա), ինչպես նաև ուշադրություն դարձրեք «Ընթացիկ և ջերմային կառավարում» բաժնին այս ձեռնարկի վերջում: Եվ օգտագործեք արտաքին էներգիան սերվերի հետ, մի ապավինեք Arduino- ի 5V ցանցին:

Servo- ն միացնելու համար պարզ է. GND գիծը միանում է GND- ին, 5V- ը (կամ մատակարարման լարման հոսանքը) միանում է ձեր 5v- ին (կամ այլ համապատասխան մատակարարմանը), իսկ servo կառավարման պինը `TLC5940- ի ելքերից մեկին: Վերջապես, և սա կարևոր է, միացրեք 2.2kΩ դիմադրություն օգտագործվող TLC5940 ելքային կապի (ներ) ի և 5 Վ -ի միջև: Servo- ի կառավարումը այնքան էլ չի տարբերվում LED- ից: Էսքիզի սկզբում ձեզ հարկավոր են առաջին երկու տողերը.

#ներառել «Tlc5940.h»#ներառել «tlc_servos.h»

ապա հետևյալը in void setup ():

tlc_initServos ();

Հաջորդը, օգտագործեք հետևյալ գործառույթը `ընտրելու համար, թե որ սերվոն (ալիքը) աշխատի և պահանջվող անկյունը (անկյունը).

tlc_setServo (ալիք, անկյուն);

Theիշտ այնպես, ինչպես LED- ները, կարող եք դրանցից մի քանիսը միասին հավաքել, այնուհետև կատարել հրամանը ՝

Tlc.update ();

Այսպիսով, եկեք տեսնենք այդ ամենը գործողության մեջ: Հետևյալ օրինակի ուրվագիծը չորս սերվո է սահում 90 աստիճանի վրա.

#ներառել «Tlc5940.h»#ներառել «tlc_servos.h»

դատարկ կարգավորում ()

{tlc_initServos (); // Նշում. Սա PWM հաճախականությունը կնվազեցնի մինչև 50 Հց: }

դատարկ շրջան ()

{համար (int անկյուն = 0; անկյուն = 0; անկյուն--) {tlc_setServo (0, անկյուն); tlc_setServo (1, անկյուն); tlc_setServo (2, անկյուն); tlc_setServo (3, անկյուն); Tlc.update (); ուշացում (5); }}

Տեսանյութը ցույց է տալիս այս ուրվագիծը գործողության մեջ չորս սերվոյի հետ:

Եթե ձեր սերվերը չեն պտտվում ճիշտ անկյան տակ, օրինակ ՝ 180 աստիճան եք խնդրում, և նրանք պտտվում են միայն 90 -ի կամ դրա մոտակայքում, մի փոքր լրացուցիչ աշխատանք է պահանջվում:

Դուք պետք է բացեք TLC5940 Arduino գրադարանի թղթապանակում գտնվող tlc_servos.h ֆայլը և փորձարկեք SERVO_MIN_WIDTH և SERVO_MAX_WIDTH արժեքները: Օրինակ ՝ SERVO_MIN_WIDTH- ը 200 -ից փոխեք 203 -ի և SERVO_MAX_WIDTH- ը ՝ 400 -ից 560 -ի:

Քայլ 7: Ընթացիկ և ջերմային կառավարում

Ինչպես արդեն նշվեց, TLC5940- ը կարող է աշխատել առավելագույնը 120 մԱ մեկ ալիքի համար: Որոշ փորձարկումներից հետո կարող եք նկատել, որ TLC5940- ն իսկապես տաքանում է, և դա նորմալ է:

Նկատի ունեցեք, որ կա առավելագույն սահմանափակում այն հզորության քանակի նկատմամբ, որը կարող է ցրվել նախքան մասի ոչնչացումը: Եթե դուք պարզապես օգտագործում եք այգու սովորական LED- ներ կամ ավելի փոքր սերվոներ, էներգիան խնդիր չի լինի: Այնուամենայնիվ, եթե պլանավորում եք առավելագույնս օգտագործել TLC5940- ը, խնդրում ենք վերանայել գրադարանի հեղինակների տրամադրած գրառումները:

Եզրակացություն

Մեկ անգամ ևս ճանապարհին եք վերահսկելու ձեր Arduino- ի անհավանական օգտակար մասը: Այժմ որոշ երևակայությամբ դուք կարող եք ստեղծել բոլոր տեսակի տեսողական ցուցադրումներ կամ զվարճանալ բազմաթիվ սպասարկողների հետ:

Այս գրառումը ձեզ է բերում pmdway.com- ը, որն առաջարկում է TLC5940 ապրանքներ ՝ ամեն ինչ արտադրողների և էլեկտրոնիկայի սիրահարների համար, անվճար առաքում ամբողջ աշխարհով:

Խորհուրդ ենք տալիս: