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» փաթեթներում.

  1. Arduino Uno;
  2. USB մալուխ;
  3. Նախատիպային տախտակ;
  4. Daddy-Daddy մետաղալարեր - 7 հատ;
  5. Ռեզիստորներ 220 Օմ - 3 հատ;
  6. RGB LED - 1 հատ;
  7. Պոտենցիոմետր.

Նկար 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-ով - վերը նշված հոդվածում:

  • 3 220 օհմ դիմադրություն (այստեղ ամենատարածված ռեզիստորների մեծ հավաքածուն է);
  • միացնող լարեր (ես խորհուրդ եմ տալիս այս հավաքածուն);
  • breadboard;
  • անհատական ​​համակարգիչ Arduino IDE մշակման միջավայրով:
  • 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 ելքի վրա, և թվում է, որ լուսադիոդը միացված չէ առավելագույն պայծառությամբ:

    Թողեք ձեր մեկնաբանությունները, հարցերը և կիսվեք ձեր անձնական փորձով ստորև: Քննարկումներում հաճախ են ծնվում նոր գաղափարներ և նախագծեր։