RGB LED-ներ arduino uno-ի համար: RGB LED-ներ. ինչպես են նրանք աշխատում, ներքին, ինչպես միացնել, RGB LED և Arduino: Հավաքեք շղթան հացահատիկի վրա
Arduino-ն իդեալական է ցանկացած սարքի կառավարման համար: ATmega միկրոպրոցեսորն օգտագործում է էսքիզային ծրագիր՝ մեծ թվով դիսկրետ կապանքներ, A/D I/O և PWM կարգավորիչներ շահարկելու համար:
Կոդի ճկունության շնորհիվ ATmega միկրոկոնտրոլերը լայնորեն օգտագործվում է տարբեր ավտոմատացման մոդուլներում, այդ թվում՝ դրա հիման վրա հնարավոր է ստեղծել LED լուսավորությունը կառավարելու կարգավորիչ:
Arduino-ի միջոցով բեռի վերահսկման սկզբունքը
Arduino տախտակն ունի երկու տեսակի ելքային պորտեր՝ թվային և անալոգային (PWM կարգավորիչ): Թվային պորտն ունի երկու վիճակ՝ տրամաբանական զրո և տրամաբանական մեկ: Եթե դրան միացնեք լուսադիոդ, այն կա՛մ կփայլի, կա՛մ ոչ:
Անալոգային ելքը PWM կարգավորիչ է, որին մատակարարվում է մոտ 500 Հց հաճախականությամբ ազդանշան՝ կարգավորվող աշխատանքային ցիկլով։ Ինչ է PWM կարգավորիչը և ինչպես է այն աշխատում, կարելի է գտնել ինտերնետում: Անալոգային պորտի միջոցով հնարավոր է ոչ միայն միացնել և անջատել բեռը, այլև փոխել դրա վրա լարումը (հոսանքը):
Հրամանի շարահյուսություն
Թվային ելք.
pinMode (12, OUTPUT);- սահմանել պորտ 12-ը որպես տվյալների ելքային նավահանգիստ;
digitalWrite (12, HIGH);- մենք կիրառում ենք տրամաբանական միավոր դիսկրետ ելքի 12-ի վրա՝ լուսավորելով LED-ը:
Անալոգային ելք.
analogOutPin = 3;- սահմանել պորտ 3 անալոգային արժեք դուրս բերելու համար;
analogWrite (3, արժեք);- մենք ելքում ձևավորում ենք 0-ից 5 Վ լարման ազդանշան: Արժեքը ազդանշանի աշխատանքային ցիկլն է 0-ից մինչև 255: 255 արժեքով առավելագույն լարումը:
Արդուինոյի միջոցով LED-ները կառավարելու ուղիներ
Միայն թույլ LED-ը կարող է ուղղակիորեն միանալ նավահանգստի միջոցով, և նույնիսկ այդ դեպքում ավելի լավ է սահմանափակող ռեզիստորի միջոցով: Ավելի հզոր բեռ միացնելու փորձն այն կանջատի:
Ավելի հզոր բեռների համար, ներառյալ LED շերտերը, օգտագործվում է էլեկտրոնային անջատիչ `տրանզիստոր:
Տրանզիստորային անջատիչների տեսակները
- Երկբևեռ;
- Դաշտ;
- Կոմպոզիտ (Դարլինգթոնի ժողով):
Բեռնել կապի մեթոդները | ||
---|---|---|
Երկբևեռ տրանզիստորի միջոցով | Դաշտային տրանզիստորի միջոցով | Լարման անջատիչի միջոցով |
Բարձր տրամաբանական մակարդակի կերակրման ժամանակ (թվային գրել (12, բարձր);)ելքային պորտի միջոցով դեպի տրանզիստորի հիմքը կոլեկտոր-էմիտեր շղթայի միջոցով, հղման լարումը կհոսի դեպի բեռ: Այս կերպ Դուք կարող եք միացնել և անջատել լուսադիոդը:
Դաշտային ազդեցության տրանզիստորն աշխատում է նույն կերպ, բայց քանի որ այն «բազայի» փոխարեն ունի արտահոսք, որը կառավարվում է ոչ թե հոսանքի, այլ լարման միջոցով, այս շղթայում սահմանափակող դիմադրություն անհրաժեշտ չէ։
Երկբևեռ տեսքը թույլ չի տալիս կարգավորել հզոր բեռները: Դրա միջով հոսանքը սահմանափակվում է 0.1-0.3A-ով:
Դաշտային տրանզիստորները գործում են ավելի հզոր բեռների դեպքում՝ մինչև 2A հոսանքով: Էլ ավելի հզոր բեռի համար Mosfet դաշտային տրանզիստորները օգտագործվում են մինչև 9 Ա հոսանքով և մինչև 60 Վ լարմամբ:
Դաշտային ազդեցության փոխարեն դուք կարող եք օգտագործել ULN2003, ULN2803 միկրոսխեմաների վրա երկբևեռ տրանզիստորների Darlington հավաքածուն:
Chip ULN2003 և էլեկտրոնային լարման անջատիչի սխեմատիկ դիագրամ.
Տրանզիստորի շահագործման սկզբունքը LED շերտի սահուն հսկողության համար
Տրանզիստորն աշխատում է ջրի ծորակի պես՝ միայն էլեկտրոնների համար։ Որքան բարձր է երկբևեռ տրանզիստորի հիմքի վրա կիրառվող լարումը կամ դաշտային ազդեցության արտահոսքը, այնքան ցածր է դիմադրությունը էմիտեր-կոլեկտոր շղթայում, այնքան բարձր է բեռի միջով անցնող հոսանքը:
Միացնելով տրանզիստորը Arduino-ի անալոգային պորտին, նրան նշանակեք արժեք 0-ից մինչև 255, փոխեք կոլեկտորին մատակարարվող լարումը կամ արտահոսեք 0-ից մինչև 5 Վ: Կոլեկտոր-էմիտրի սխեման կրելու է բեռի հղման լարման 0-ից 100%-ը:
Arduino LED ժապավենը կառավարելու համար անհրաժեշտ է ընտրել համապատասխան հզորության տրանզիստոր: LED-ների հաշվիչը սնուցելու համար գործող հոսանքը 300-500 մԱ է, այդ նպատակների համար հարմար է հզորության երկբևեռ տրանզիստորը: Ավելի երկար երկարությունների համար անհրաժեշտ է դաշտային տրանզիստոր:
LED ժապավենը arduino-ին միացնելու դիագրամ.
RGB ժապավենի կառավարում Andurino-ով
Բացի մեկ չիպային LED-ներից, Arduino-ն կարող է աշխատել գունավոր LED-ներով: Յուրաքանչյուր գույնի քորոցները միացնելով Arduino-ի անալոգային ելքերին՝ կարող եք կամայականորեն փոխել յուրաքանչյուր բյուրեղի պայծառությունը՝ հասնելով ցանկալի փայլի գույնին:
Միացման դիագրամ Arduino RGB LED-ի համար.
Arduino RGB ժապավենի կառավարումը նույնպես կառուցված է.
Arduino RGB կարգավորիչը ավելի լավ է հավաքել դաշտային տրանզիստորների վրա:
Համար հարթ պայծառության վերահսկումկարող է օգտագործվել երկու կոճակ: Մեկը կբարձրացնի փայլի պայծառությունը, մյուսը կնվազի:
Arduino LED շերտի պայծառության վերահսկման ուրվագիծ
int led = 120; սահմանել միջին պայծառության մակարդակը
անվավեր կարգավորում () (
pinMode (4, OUTPUT); դրեք 4-րդ անալոգային պորտը ելքի վրա
pinMode (2, INPUT);
pinMode (4, INPUT); տեղադրեք 2-րդ և 4-րդ թվային պորտը կոճակների հարցում մուտքագրման համար
}
անվավեր հանգույց () (
կոճակ 1 = թվային կարդալ (2);
կոճակ 2 = թվային ընթերցում (4);
եթե (կոճակ 1 == ԲԱՐՁՐ) սեղմելով առաջին կոճակը, պայծառությունը կբարձրանա
{
led = led + 5;
analogWrite (4, led);
}
եթե (կոճակ 2 == ԲԱՐՁՐ) սեղմելով երկրորդ կոճակը, պայծառությունը կնվազի
{
led = led - 5;
analogWrite (4, led);
}
Երբ առաջին կամ երկրորդ կոճակը սեղմված է պահվում, էլեկտրոնային բանալիի կառավարման կոնտակտին մատակարարվող լարումը սահուն փոխվում է: Այնուհետև կլինի պայծառության սահուն փոփոխություն:
Arduino կառավարման մոդուլներ
LED ժապավենը կառավարելու համար լիարժեք վարորդ ստեղծելու համար կարող եք օգտագործել սենսորային մոդուլներ:
IR հսկողություն
Մոդուլը թույլ է տալիս ծրագրավորել մինչև 20 հրաման:
Ազդանշանի շառավիղը մոտ 8 մ է:
Հավաքածուի արժեքը 6 ԱՄՆ դոլար է։
Ռադիոալիքով
Չորս ալիք ունեցող միավոր մինչև 100 մ հեռահարությամբ
Հավաքածուի արժեքը 8 ԱՄՆ դոլար է։
Թույլ է տալիս միացնել լուսավորությունը նույնիսկ բնակարանին մոտենալիս։
Անկոնտակտ
Հեռավորության տվիչն ի վիճակի է ձեռքի շարժումով ավելացնել և նվազեցնել լուսավորության պայծառությունը:
Գործողության շառավիղը մինչև 5 մ է։
Մոդուլի արժեքը 0,3 դոլար է:
«Հանդգնում» շարքը.
RGB-ն նշանակում էորպես կարմիր, կանաչ, կապույտի հապավում, այս գույներով կարող եք ցանկացած գույն ստանալ՝ խառնելով։ RGB LED-ը պարունակում է 3 փոքր բյուրեղներ R, G, B, որոնցով կարող ենք սինթեզել ցանկացած գույն կամ երանգ։ Այս ձեռնարկում մենք RGB LED-ը միացնելու ենք Arduino տախտակին և այն փայլում է ծիածանի բոլոր գույներով:
Այս նախագծի համար ձեզ հարկավոր են մանրամասներ, որոնք առկա են «Հիմնական» և «Ուսուցման Arduino» փաթեթներում.
- Arduino Uno;
- USB մալուխ;
- Նախատիպային տախտակ;
- Daddy-Daddy մետաղալարեր - 7 հատ;
- Ռեզիստորներ 220 Օմ - 3 հատ;
- RGB LED - 1 հատ;
- Պոտենցիոմետր.
Նկար 1-ում ցույց տրված շղթայի միացում:
Նկար 1. Միացման դիագրամ
Հիմա եկեք սկսենք գրել էսքիզը։
RGB LED-ը պետք է շողա ծիածանի բոլոր գույներով՝ կարմիրից մինչև մանուշակագույն, այնուհետև անցնի կարմիր և այլն՝ շրջանագծի մեջ: Գույնի անցման արագությունը կարգավորվում է պոտենցիոմետրով: Աղյուսակ 1-ում ներկայացված են R, G, B արժեքների տվյալները ծիածանի 7 հիմնական գույների համար:
Աղյուսակ 1. R, G, B արժեքների տվյալները ծիածանի 7 հիմնական գույների համար
Գույների խառնման համարանհրաժեշտ է մատակարարել լարումների ամբողջ տիրույթը Arduino կապումներից մինչև LED-ի R, G, B մուտքերը: Բայց Arduino-ն չի կարող կամայական լարում մատակարարել թվային կապին: Ելք է կա՛մ + 5 Վ (ԲԱՐՁՐ) կամ 0 Վ (ՑԱԾՐ): PWM (Pulse Width Modulation, կամ PWM) օգտագործվում է մասնակի լարման մոդելավորման համար:
Հուսով եմ, որ դուք արդեն ավարտել եք գլուխը: 2.6 Ջերեմի Բլումի Ուսուցման Arduino. Tools and Techniques for Technical Wizardry-ում, որը մանրամասնում է իմպուլսային լայնության մոդուլյացիայի մեխանիզմը:
Ծրագրի կատարման ալգորիթմ.
- Բարձրացրեք կանաչ G բաղադրիչի արժեքը մինչև հասնենք նարնջագույն արժեքին (255.125.0),
- Բարձրացրեք կանաչ G բաղադրիչի արժեքը, մինչև հասնենք դեղին (255,255,0):
- Կարմիր բաղադրիչի R արժեքը իջեցրեք կանաչի արժեքին (0.255.0):
- Մեկնարկային կետը կարմիր է (255,0,0):
- Բարձրացրեք կապույտ բաղադրիչի արժեքը մինչև ցիանի արժեքը (0.255.255):
- Կրճատել կանաչ G արժեքը մինչև կապույտ արժեքը (0.0.255):
- Աստիճանաբար ավելացրեք կարմիր բաղադրիչի R արժեքը մինչև մանուշակագույնի արժեքը (255,0,255):
- Կապույտ B բաղադրիչի արժեքը իջեցրեք կարմիրի արժեքին (255,0,0):
Անցեք քայլ 1:
Յուրաքանչյուր քայլից հետո մենք կանգ ենք առնում գունավոր ցուցադրումը շտկելու համար,
Հետաձգում (VIEW_PAUSE);
ստուգեք պոտենցիոմետրի արժեքը և փոխեք գույնի փոփոխության արագության արժեքը:
Անվավեր դադար () (դադար = քարտեզ (analogRead (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("դադար ="); Serial.println (դադար);)
Եկեք ստեղծենք նոր ուրվագիծ Arduino IDE-ում, դրա մեջ դրեք Listing 1-ի կոդը և վերբեռնեք էսքիզը Arduino տախտակին: Հիշեցնում ենք, որ Arduino IDE կարգավորումներում պետք է ընտրել տախտակի տեսակը (Arduino UNO) և տախտակի միացման պորտը։
Ցուցակ 1
Const int RED = 11; // RGB LED ելք const int GREEN = 10; // RGB LED-ի G ելքը const BLUE = 9; // RGB LED-ի B ելք կարմիր; // փոփոխական՝ int green գույնի R բաղադրիչը պահելու համար; // փոփոխական՝ int blue գույնի G բաղադրիչը պահելու համար; // փոփոխական՝ գույնի B բաղադրիչը պահպանելու համար int POT = A0; // պոտենցիոմետրի միացման փին const int MIN_PAUSE = 10; // գույնի փոփոխության նվազագույն ուշացում, ms const int MAX_PAUSE = 100; // գույնի փոփոխության առավելագույն ուշացում, ms int pause; // փոփոխական ընթացիկ ուշացումը պահելու համար const int VIEW_PAUSE = 2000; // հիմնական գույնը ֆիքսելու ժամանակը, ms void setup () (Serial.begin (9600);) void loop () (// կարմիրից դեղին Serial.println («կարմիր - դեղին»); կարմիր = 255; կանաչ = 0; կապույտ = 0; համար (կանաչ = 0; կանաչ<=255;green++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от желтому к зеленому Serial.println("yellow - green"); red=255;green=255;blue=0; for(red=255;red>= 0; կարմիր--) setRGB (կարմիր, կանաչ, կապույտ); setpause (); ուշացում (VIEW_PAUSE); // կանաչից կապույտ Serial.println ("կանաչ - կապույտ"); կարմիր = 0, կանաչ = 255, կապույտ = 0; համար (կապույտ = 0; կապույտ<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>= 0; կանաչ--) setRGB (կարմիր, կանաչ, կապույտ); setpause (); ուշացում (VIEW_PAUSE); // կապույտից մինչև մանուշակագույն Serial.println ("կապույտ - մանուշակագույն"); կարմիր = 0, կանաչ = 0, կապույտ = 255; համար (կարմիր = 0; կարմիր<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>= 0; կապույտ--) setRGB (կարմիր, կանաչ, կապույտ); setpause (); ուշացում (VIEW_PAUSE); ) // RGB LED void setRGB գույնը սահմանելու ֆունկցիա (int r, int g, int b) (analogWrite (ԿԱՐՄԻՐ, r); analogWrite (ԿԱՆԱՉ, g); analogWrite (ԿԱՊՈՒՅՏ, b); հետաձգում (դադար) ;) / / ֆունկցիա ընթացիկ ուշացումն անվավեր դադար սահմանելու համար () (դադար = քարտեզ (analogRead (POT), 0.1024, MIN_PAUSE, MAX_PAUSE); Serial.print ("դադար ="); Serial.println (դադար);)
Էսքիզը բեռնելուց հետո մենք դիտում ենք RGB LED-ի գույնի փոփոխությունը ծիածանի գույներով, պոտենցիոմետրի օգնությամբ փոխում ենք գույնի փոփոխության արագությունը (տես Նկար 2.3):
Նկար 2.3. RGB LED - ծիածանի բոլոր գույները
Եռագույն LED-ը կարող է փայլել ծիածանի բոլոր գույներով: Համաձայն եմ, սա շատ ավելի հետաքրքիր է, քան սովորական LED-ով թարթելը:
Սկսենք Arduino-ին ծանոթանալու երրորդ դասը։
Սարքավորումների միացում.
Իրականում, եռագույն լուսադիոդը երեք լուսադիոդ է (կարմիր, կանաչ և կապույտ) մեկ փաթեթում: Երբ մենք այն գործարկում ենք տարբեր աստիճանի պայծառության և ինտենսիվության կարմիրի, կանաչի և կապույտի համար, մենք ստանում ենք նոր գույներ որպես արդյունք:
LED-ի եզրին մի փոքրիկ թեք կա, սա բանալին է, այն ցույց է տալիս կարմիր LED-ի ոտքը, հետո գնում է սովորականը, հետո կանաչ և կապույտ:
ԿԱՐՄԻՐ LED-ի ոտքը միացրեք 330 օհմ դիմադրության: Միացրեք ռեզիստորի մյուս ծայրը Arduino պորտի pin9-ին:
Միացրեք հղումը GND-ին:
ԿԱՆԱՉ ոտքը միացրեք 330 օհմ դիմադրությանը:
Միացրեք ռեզիստորի մյուս ծայրը Arduino պորտի pin10-ին:
Կապույտ ոտքը միացրեք 330 օհմ դիմադրությանը:
Միացրեք ռեզիստորի մյուս ծայրը Arduino պորտի pin11-ին:
Հետևյալ նկարը ցույց է տալիս հացատախտակի դասավորությունը հավաքված սխեմայով, և Arduino տախտակի դասավորությունը հացատախտակից եկող լարերով:
ArduinoKit փորձնական հավաքածու
Ծրագրի կոդը թիվ 3 փորձի համար.
Մնում է ներբեռնել ծրագիրը Arduino-ում USB մալուխի միջոցով: Ներբեռնեք էսքիզը երրորդ դասի LED RGB-ով - վերը նշված հոդվածում:
1 RGB LED- ների տարբերությունըընդհանուր անոդ և ընդհանուր կաթոդ
RGB LED- ները երկու տեսակի են. ընդհանուր անոդով («գումարած»)և ընդհանուր կաթոդ («մինուս»)... Նկարը ցույց է տալիս այս երկու տեսակի LED-ների սխեմատիկ դիագրամները: LED-ի երկար ոտքը միշտ էլ ընդհանուր հզորության առաջատարն է:Կարմիր LED կապարը (R) տեղադրված է առանձին, կանաչ (G) և կապույտ (B) գտնվում են ընդհանուր կապարի մյուս կողմում, ինչպես ցույց է տրված նկարում: Այս հոդվածում մենք կքննարկենք RGB LED-ի միացումը ինչպես ընդհանուր անոդով, այնպես էլ սովորական կաթոդով:
2 RGB LED- ի միացում ընդհանուր անոդովԱրդուինոյին
RGB LED-ի միացման դիագրամ ընդհանուր անոդովցույց է տրված նկարում: Մենք անոդը միացնում ենք «+5 Վ»-ին Arduino տախտակի վրա, մյուս երեք կապերը՝ կամայական թվային կապումներին:
Խնդրում ենք նկատի ունենալ, որ մենք LED-երից յուրաքանչյուրը միացնում ենք իր սեփական ռեզիստորի միջոցով, և ոչ թե օգտագործում ենք մեկ ընդհանուր: Ցանկալի է դա անել, քանի որ LED-ներից յուրաքանչյուրն ունի իր արդյունավետությունը: Եվ եթե դրանք բոլորը միացնեք մեկ ռեզիստորի միջոցով, LED-ները կփայլեն տարբեր պայծառությամբ:
Ձեր ընտրած LED-ին համապատասխան ռեզիստորի վարկանիշը արագ հաշվարկելու համար կարող եք օգտագործել մեր առցանց լուսադիոդային հաշվիչը:
3 RGB LED հսկողությունօգտագործելով arduino
Եկեք վերաշարադրենք դասական ուրվագիծը թարթել... Մենք հերթով միացնելու և անջատելու ենք երեք գույներից յուրաքանչյուրը: Նկատի ունեցեք, որ LED-ը կվառվի, երբ մենք կիրառենք LOW-ը Arduino-ի համապատասխան փին:
// սահմանել փին թվերը՝ const int pinR = 12; const int pinG = 10; const int pinB = 9; անվավեր կարգավորում () (// սահմանել փին հանձնարարությունը՝ pinMode (pinR, OUTPUT); pinMode (pinG, OUTPUT); pinMode (pinB, OUTPUT); } անվավեր հանգույց () ( digitalWrite (pinR, LOW); // լուսավորել ալիքը Կարմիր հետաձգում (100); digitalWrite (pinR, HIGH); // անջատել Կարմիր հետաձգումը (200); digitalWrite (ping, LOW); // լուսավորել ալիքը Կանաչ հետաձգում (100); digitalWrite (ping, HIGH); // անջատել Կանաչ հետաձգումը (200); digitalWrite (pinB, LOW); // լուսավորել ալիքը Կապույտ հետաձգում (100); digitalWrite (pinB, HIGH); // անջատել Կապույտ հետաձգումը (200); }
4 Հավաքեք շրջանըհացի տախտակի վրա
Տեսնենք, որ RGB LED-ը թարթում է գործողության մեջ: LED-ն իր հերթին միանում է կարմիր, կանաչ և կապույտ: Յուրաքանչյուր գույն վառվում է 0,1 վայրկյանով, այնուհետև 0,2 վայրկյանով անջատվում է, իսկ հաջորդը միանում է: Դուք կարող եք լուսավորել յուրաքանչյուր ալիք առանձին, կարող եք բոլորը միաժամանակ, ապա փայլի գույնը կփոխվի:
RGB LED-ը միացված է Arduino-ին: Շղթան հավաքվում է հացահատիկի վրա
5 դեպի Arduino
Եթե դուք օգտագործում եք Ընդհանուր կաթոդ RGB LEDայնուհետև միացրեք LED-ի երկար կապիչը GND Arduino տախտակներ և R, G և B ալիքներ Arduino թվային պորտերին: Պետք է հիշել, որ LED- ները լուսավորվում են, երբ բարձր մակարդակը (HIGH) կիրառվում է R, G, B ալիքների վրա, ի տարբերություն ընդհանուր անոդով LED- ի:
RGB LED-ի միացման դիագրամ՝ ընդհանուր կաթոդով Arduino-ին
Եթե չփոխեք վերը նշված ուրվագիծը, ապա յուրաքանչյուր LED գույն այս դեպքում կմիանա 0,2 վայրկյան, իսկ նրանց միջև դադարը կկազմի 0,1 վայրկյան:
Եթե ցանկանում եք վերահսկել LED-ի պայծառությունը, ապա միացրեք RGB LED-ը Arduino-ի թվային կապին, որոնք ունեն PWM ֆունկցիա: Arduino-ի վրա այս քորոցները սովորաբար նշվում են տիլդով (ալիքային գիծ), աստղանիշով կամ շրջանագծով:
Այս հոդվածն անդրադարձել է Arduino-ով RGB (Կարմիր Կանաչ Կապույտ) LED-ի օգտագործման հիմունքներին:
Մենք օգտագործում ենք analogWrite ֆունկցիան RGB LED գույնը կառավարելու համար:
Առաջին հայացքից RGB LED-ների տեսքը նույնն է, ինչ սովորական LED-ները, բայց իրականում դրանց ներսում տեղադրված են երեք LED՝ մեկը կարմիր, մեկը կանաչ և այո, մեկը կապույտ: Վերահսկելով յուրաքանչյուրի պայծառությունը՝ կարող եք վերահսկել LED-ի գույնը:
Այսինքն՝ մենք կկարգավորենք յուրաքանչյուր լուսադիոդի պայծառությունը և ելքի վրա կստանանք ցանկալի գույնը, կարծես դա նկարչի գունապնակ լինի կամ ասես դուք կարգավորում եք հաճախականությունները ձեր նվագարկչի վրա: Դրա համար կարող եք օգտագործել փոփոխական ռեզիստորներ: Բայց արդյունքում սխեման բավականին բարդ կլինի։ Բարեբախտաբար, Arduino-ն առաջարկում է մեզ analogWrite ֆունկցիան: Եթե օգտագործենք «~» նշանով նշված տախտակի կոնտակտները, կարող ենք կարգավորել համապատասխան լուսադիոդին մատակարարվող լարումը։
Պահանջվող հանգույցներ
Մեր փոքրիկ նախագիծն իրականացնելու համար մեզ անհրաժեշտ է.
1 RGB LED 10 մմ
3 270 Ω ռեզիստորներ (կարմիր, մանուշակագույն, շագանակագույն գծեր): Դուք կարող եք օգտագործել մինչև 1K դիմադրություն ունեցող ռեզիստոր, բայց հիշեք, որ դիմադրության մեծացման հետ LED-ն սկսում է ավելի քիչ պայծառ փայլել:
Թվի վեց նիշը համապատասխանում է երեք զույգ թվերի. առաջին զույգը գույնի կարմիր բաղադրիչն է, հաջորդ երկու թվանշանները կանաչ բաղադրիչն են, իսկ վերջին զույգը կապույտ բաղադրիչն է: Այսինքն, # FF0000 արտահայտությունը համապատասխանում է կարմիր գույնին, քանի որ սա կլինի կարմիր LED-ի առավելագույն պայծառությունը (FF-ն տասնվեցականում 255 է), իսկ կարմիր և կապույտ բաղադրիչները հավասար են 0-ի:
Փորձեք լուսավորել լուսադիոդը, օրինակ, օգտագործելով ինդիգո երանգ՝ # 4B0082:
Ինդիգո գույնի կարմիր, կանաչ և կապույտ բաղադրիչներն են՝ համապատասխանաբար 4B, 00 և 82։ Մենք կարող ենք դրանք օգտագործել «setColor» ֆունկցիայի շրջանակներում հետևյալ կոդի տողով.
setColor (0x4B, 0x0, 0x82); // ինդիգո
Երեք բաղադրիչների համար մենք օգտագործում ենք նշում, որի սկզբում դրանցից յուրաքանչյուրին նախորդում է «0x» նիշը:
Տարբեր RGB LED տոնների հետ խաղալիս հիշեք, որ յուրաքանչյուրն օգտագործելուց հետո պետք է «ուշացում» սահմանել:
PWM և Arduino
Զարկերակային լայնության մոդուլյացիան (PWM) էներգիայի կառավարման մեթոդներից մեկն է: Մեր դեպքում PWM-ն օգտագործվում է յուրաքանչյուր առանձին LED-ի պայծառությունը վերահսկելու համար:
Ստորև բերված նկարը սխեմատիկորեն ցույց է տալիս ազդանշան Arduino-ի PWM կապերից մեկից:
Յուրաքանչյուր վայրկյանի 1/500-րդը PWM ելքը առաջացնում է իմպուլս: Այս իմպուլսի երկարությունը վերահսկվում է «analogWrite» ֆունկցիայի միջոցով: Այսինքն՝ «analogWrite (0)»-ը ոչ մի իմպուլս չի գեներացնի, այլ «analogWrite (255)»-ը կստեղծի ազդանշան, որը կտևի մինչև հաջորդի հենց սկիզբը։ Այսինքն՝ տպավորություն կստեղծվի, որ մեկ շարունակական իմպուլս է մատակարարվում։
Երբ analogWrite ֆունկցիայի շրջանակներում նշում ենք արժեք 0-ից 255 միջակայքում, մենք առաջացնում ենք որոշակի տևողության իմպուլս: Եթե իմպուլսի երկարությունը 5% է, մենք առավելագույն հասանելի հզորության 5%-ը կկիրառենք նշված Arduino ելքի վրա, և թվում է, որ լուսադիոդը միացված չէ առավելագույն պայծառությամբ:
Թողեք ձեր մեկնաբանությունները, հարցերը և կիսվեք ձեր անձնական փորձով ստորև: Քննարկումներում հաճախ են ծնվում նոր գաղափարներ և նախագծեր։