«Հանդգնում» շարք.
RGB նշանակում էորպես Կարմիր, Կանաչ, Կապույտ հապավում, այս գույներով կարելի է ցանկացած գույն ստանալ՝ խառնելով։ RGB LED-ը պարունակում է 3 փոքր բյուրեղներ R, G, B, որոնցով կարող ենք սինթեզել ցանկացած գույն կամ երանգ։ Այս ձեռնարկում մենք RGB LED-ը միացնելու ենք Arduino տախտակին և այն փայլեցնելու ենք ծիածանի բոլոր գույներով:
Այս նախագծի համար ձեզ հարկավոր են այն մասերը, որոնք հասանելի են «Հիմնական» և «Սովորելու Arduino» փաթեթներում.
- Arduino Uno;
- USB մալուխ;
- Նախատիպային տախտակ;
- Արու-արական մետաղալարեր - 7 հատ;
- Ռեզիստորներ 220 Օմ – 3 հատ;
- RGB LED – 1 հատ;
- Պոտենցիոմետր.
Մենք հավաքում ենք Նկար 1-ում ներկայացված սխեման:
Նկար 1. Միացման դիագրամ
Հիմա եկեք սկսենք գրել էսքիզը։
RGB LED-ը պետք է շողա ծիածանի բոլոր գույներով՝ կարմիրից մինչև մանուշակագույն, այնուհետև անցնի կարմիրին և այլն շրջանագծի մեջ: Գույնի անցման արագությունը վերահսկվում է պոտենցիոմետրով: Աղյուսակ 1-ում ներկայացված են R, G, B արժեքները ծիածանի 7 հիմնական գույների համար:
Աղյուսակ 1. R, G, B արժեքները ծիածանի 7 հիմնական գույների համար
Գույների խառնման համարԱնհրաժեշտ է մատակարարել լարումների ամբողջ տիրույթը Arduino կապումներից մինչև R, G, B LED մուտքերը: Բայց Arduino-ն չի կարող կամայական լարում տալ թվային կապին: Կամ +5V (ԲԱՐՁՐ) կամ 0V (ցածր) ելք է: Մասնակի լարումը մոդելավորելու համար օգտագործվում է PWM (Pulse Width Modulation, կամ PWM):
Հուսով եմ, որ դուք արդեն ուսումնասիրել եք գլուխըՋերեմի Բլումի «Exploring Arduino. Tools and Techniques of Technical Wizardry» գրքի 2.6-ը, որտեղ մանրամասն բացատրվում է իմպուլսի լայնության մոդուլյացիայի մեխանիզմը։
Ծրագրի կատարման ալգորիթմ.
- Մենք մեծացնում ենք G-ի կանաչ բաղադրիչի արժեքը մինչև հասնենք նարնջագույնի արժեքին (255,125,0),
- Մենք մեծացնում ենք կանաչ բաղադրիչի արժեքը, մինչև հասնենք դեղին (255,255,0).
- Կարմիր բաղադրիչի R արժեքը նվազեցնում ենք կանաչ արժեքին (0.255.0):
- Մեկնարկային կետը կարմիր է (255,0,0):
- Կապույտ B բաղադրիչի արժեքը բարձրացնում ենք կապույտ գույնի արժեքին (0.255.255):
- Կրճատել կանաչ բաղադրիչի արժեքը G-ի արժեքին կապույտ (0,0,255).
- Կարմիր բաղադրիչի R-ի արժեքը աստիճանաբար բարձրացրեք մինչև մանուշակագույն գույնի արժեքը (255.0.255):
- Կապույտ B բաղադրիչի արժեքը իջեցրեք կարմիր գույնի արժեքին (255,0,0):
Անցնենք 1-ին քայլին:
Յուրաքանչյուր քայլից հետո մենք կանգ ենք առնում գունավոր ցուցադրումը ձայնագրելու համար,
Հետաձգում (VIEW_PAUSE);
մենք ստուգում ենք պոտենցիոմետրի արժեքը և փոխում գույնի փոփոխության արագության արժեքը:
Անվավեր setpause() ( pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE); Serial.print("pause=");Serial.println(դադար);)
Եկեք ստեղծենք նոր էսքիզ Arduino IDE-ում, դրա մեջ ավելացրեք Listing 1-ի կոդը և վերբեռնեք էսքիզը Arduino տախտակին: Հիշեցնում ենք, որ Arduino IDE կարգավորումներում անհրաժեշտ է ընտրել տախտակի տեսակը (Arduino UNO) և տախտակի միացման պորտը:
Ցուցակ 1
Const int RED=11; // RGB LED-ի R ելք const int GREEN=10; // RGB LED-ի G ելքը const int BLUE=9; // RGB LED-ի ելք կարմիր կարմիր; // փոփոխական՝ int green գույնի R բաղադրիչը պահելու համար; // փոփոխական՝ int blue գույնի G բաղադրիչը պահելու համար; // փոփոխական՝ գունավոր const-ի B բաղադրիչը պահելու համար int POT=A0; // պոտենցիոմետրի միացման ելքը 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(կարմիր,կանաչ,կապույտ);<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>setpause ();<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>ուշացում (VIEW_PAUSE);
Էսքիզը բեռնելուց հետո մենք դիտարկում ենք RGB LED-ի գունային փոփոխությունը ծիածանի գույներով և պոտենցիոմետրով փոխում ենք գույնի փոփոխության արագությունը (տես Նկար 2.3):
Նկար 2.3. RGB LED - ծիածանի բոլոր գույները
Անցյալ անգամ մենք նայեցինք, թե ինչպես կարելի է միացնել LED ժապավենը Arduino-ին L298 վարորդի միջոցով: Գույնի կառավարումն իրականացվել է ծրագրավորմամբ՝ Random ֆունկցիան: Այժմ ժամանակն է պարզել, թե ինչպես վերահսկել LED շերտի գույնը DHT 11 ջերմաստիճանի և խոնավության սենսորի ընթերցումների հիման վրա:
Օրինակը հիմնված է L298 վարորդի միջոցով LED ժապավենի միացման վրա: Բացի այդ, օրինակն ավելացրել է LCD 1602 էկրան, որը ցույց կտա DHT 11 սենսորի ընթերցումները:
Նախագիծը կպահանջի հետևյալ Arduino տարրերը.
- Arduino UNO տախտակ.
- Ցուցադրել LCD 1602 + I2C:
- Ջերմաստիճանի և խոնավության ցուցիչ DHT
- LED շերտ.
- Վարորդ L298.
- Էլեկտրամատակարարում 9-12 Վ.
- Բնակարան Arduino-ի և ցուցադրման համար (ըստ ցանկության):
Նախ նայենք շղթայի դիագրամին (նկ. 1): Դրա վրա դուք կարող եք տեսնել, թե ինչպես միացնել վերը նշված բոլոր տարրերը: Շղթան հավաքելու և միացնելու մեջ բարդ բան չկա, բայց հարկ է նշել մի նրբերանգ, որի մասին շատերը մոռանում են, և արդյունքում նրանք սխալ արդյունքներ են ստանում Arduino-ով LED շերտերով աշխատելիս:
Նկար 1. Սխեմատիկ դիագրամ Arduino-ի և LED ժապավենի միացում DHT 11 սենսորով
LED շերտի սխալ շահագործումից խուսափելու համար (թարթում, գունային անհամապատասխանություն, թերի լուսավորություն և այլն), ամբողջ միացման սնուցումը պետք է լինի ընդհանուր, այսինքն. միավորել Arduino կարգավորիչի GND (գետնին) քորոցները և L298 դրայվերը (LED ժապավեն): Դուք կարող եք տեսնել, թե ինչպես դա անել դիագրամում:
Մի քանի խոսք խոնավության սենսորի միացման մասին: Եթե դուք գնում եք մերկ DHT 11, առանց ժապավենի, ապա առաջին և երկրորդ կոնտակտների միջև, համապատասխանաբար, 5V և Data, անհրաժեշտ է զոդել 5-10 կՕմ անվանական արժեքով դիմադրություն: Ջերմաստիճանի և խոնավության չափման միջակայքը գրված է DHT 11 սենսորային պատյանի հետևի մասում Ջերմաստիճանը՝ 0-50 աստիճան Ցելսիուս: Խոնավությունը՝ 0-80%։
Նկար 2. Ճիշտ կապխոնավության ցուցիչ DHT 11
Նախագծի բոլոր տարրերը ըստ սխեմայի հավաքելուց հետո մենք պետք է գրենք ծրագրի կոդ, որը կստիպի այն աշխատել այնպես, ինչպես մեզ անհրաժեշտ է: Եվ մենք պետք է led stripփոխել է գույնը՝ կախված DHT 11 սենսորի ընթերցումներից (խոնավություն):
DHT 11 սենսորը ծրագրավորելու համար ձեզ անհրաժեշտ կլինի լրացուցիչ գրադարան:
Arduino և RGB ծրագրային կոդը՝ շերտի: Փոխում է ժապավենի գույնը՝ կախված խոնավությունից։
#ներառել #ներառել //գրադարան LCD 1602 էկրանով աշխատելու համար #ներառել //խոնավության և ջերմաստիճանի ցուցիչի հետ աշխատելու գրադարան DHT 11 int chk; //փոփոխականը կպահի բոլոր տվյալները DHT11 սենսորից int hum; //փոփոխականը կպահի խոնավության ցուցանիշները DHT11 dht11 DHT սենսորից; //DHT տիպի օբյեկտ #define DHT11_PIN 4 //DHT11 սենսորի տվյալների քորոցը միացված է մուտքային 4-ին #define LED_R 9 //pin for channel R #define LED_G 10 //pin for channel G #define LED_B 11 //pin B ալիքի համար / /փոփոխականները կպահեն գունային արժեքներ // բոլոր երեք գույները խառնելիս անհրաժեշտ գույնը կստացվի int led_r=0, led_g=0, led_b=0; //ցուցադրման օբյեկտի հայտարարում 0x27 հասցեով //մի մոռացեք օգտագործել ցուցադրումը նախագծում I2C տախտակի միջոցով LiquidCrystal_I2C lcd(0x27,16,2); void setup() (//ստեղծել էկրան lcd.init(); lcd.backlight(); // հայտարարել կապում որպես ելք pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); ) void loop () ( chk = DHT.read (DHT11_PIN);// կարդալ տվյալները DHT11 սենսորից //արտադրել տվյալները էկրանին lcd.print("Temp:"); lcd.print(DHT.temperature, 1); lcd.print( "C"); Պահանջվում է քվեարկության համար lcd.clear(); կանաչեթե ((խռմռոց >= 19) && (հըմ<= 30)) { led_r = 1; led_g = 255; led_b = 1; } //в диапозоне от 31 до 40% влажности выдать красный цвет if ((hum >= 31) && (հըմ<= 40)) { led_r = 255; led_g = 1; led_b = 1; } //в диапозоне от 41 до 49% влажности выдать синий цвет if ((hum >= 41) && (հըմ<= 49)) { led_r = 1; led_g = 1; led_b = 255; } // подача сигналов цвета на выхода analogWrite(LED_R, led_r); analogWrite(LED_G, led_g); analogWrite(LED_B, led_b); }
Պիտակներ: Պիտակներ
Շատ ծրագրերում, ինչպես սիրողական, այնպես էլ պրոֆեսիոնալ, երբեմն անհրաժեշտ է լինում տարբեր երանգների գույներ ստեղծել: Առանձին մեկ գունավոր LED-ների օգտագործումը նման դեպքերում կառուցվածքային և տնտեսապես արդարացված չէ: Հետեւաբար, RGB LED- ները մշակվել են նման նպատակների համար:
RGB LED-ը (կրճատումը նշանակում է RED, GREEN, BLUE) բյուրեղների համակցություն է, որն ընդունակ է արտադրել կարմիր, կանաչ և կապույտ գույներ: Այս համադրության շնորհիվ այս LED-ները կարող են վերարտադրել լույսի 16 միլիոն երանգներ: RGB LED-ները հեշտ են կառավարվում և կարող են օգտագործվել Arduino նախագծերում առանց որևէ խնդիրների: Այս նյութը ցույց կտա Arduino-ի միջոցով RGB LED-ի կառավարման օրինակ:
Քանի որ RGB LED-ը, ինչպես նշվեց վերևում, երեք տարբեր հիմնական գույների բյուրեղների համադրություն է, այն սխեմաներում պատկերված է որպես երեք LED: Կառուցվածքային առումով, նման LED-ն ունի մեկ ընդհանուր տերմինալ և երեք տերմինալ յուրաքանչյուր գույնի համար: Ստորև բերված է դիագրամ, թե ինչպես կարելի է միացնել RGB LED-ը Arduino-ին: Շղթան ներառում է նաև 16x2 ալֆանա-թվային LCD էկրան, պոտենցիոմետրեր և ռեզիստորներ RGB LED գծերով: Այս ռեզիստորները (R1 = 100 ohms, R2 = 270 ohms, R3 = 330 ohms) սահմանափակում են LED-ների հոսանքը, որպեսզի դրանք չխափանվեն: Փոփոխական ռեզիստորներ (պոտենցիոմետրեր) VR1-VR3 10 KOhm դիմադրությամբ օգտագործվում են RGB LED- ի ինտենսիվությունը վերահսկելու համար, այսինքն, դրանք կարող են օգտագործվել LED- ի գույնը սահմանելու համար ՝ փոխելով կարմիր, կանաչ և կապույտի ինտենսիվությունը: բյուրեղներ. Պոտենցիոմետր VR1-ը միացված է A0 անալոգային մուտքին, VR2-ը՝ A1, իսկ VR3-ը՝ A2 անալոգային մուտքին:
LCD էկրանն այս դեպքում օգտագործվում է գունային կոդի գունային արժեքը և տասնվեցական արժեքը ցուցադրելու համար: Գունային կոդի արժեքը ցուցադրվում է LCD-ի 1-ին տողում (որպես Rxxx Gxxx Bxxx, որտեղ xxx-ը թվային արժեք է), իսկ տասնվեցական ծածկագիրը ցուցադրվում է LCD-ի 2-րդ տողում (որպես HEXxxxxxx): 100 օհմ ռեզիստոր R4 օգտագործվում է LCD հետին լույսի վրա կիրառվող հոսանքը սահմանափակելու համար, իսկ 10K Օմ փոփոխական ռեզիստոր VR4 օգտագործվում է LCD կոնտրաստը կարգավորելու համար:
Ստորև բերված է ծածկագիր (ուրվագիծ), որը թույլ է տալիս կառավարել RGB LED-ի գույնի փոփոխությունը՝ օգտագործելով Arduino տախտակը և դրան միացված պոտենցիոմետրերը:
#ներառել
Multicolor LED-ները կամ RGB-ն, ինչպես նաև կոչվում են, օգտագործվում են դինամիկ փոփոխվող գունային լուսավորություն ցուցադրելու և ստեղծելու համար: Իրականում, նրանց մեջ առանձնահատուկ բան չկա, եկեք պարզենք, թե ինչպես են նրանք աշխատում և ինչ են RGB LED- ները:
Ներքին կառուցվածքը
Իրականում, RGB LED-ը երեք մեկ գունավոր բյուրեղներ է, որոնք միավորված են մեկ բնակարանում: RGB անվանումը նշանակում է Կարմիր - կարմիր, Կանաչ - կանաչ, Կապույտ - կապույտ ՝ ըստ յուրաքանչյուր բյուրեղի արտանետվող գույների:
Այս երեք գույները հիմնական են, և դրանց խառնելով ձևավորվում է ցանկացած գույն այս տեխնոլոգիան վաղուց օգտագործվում է հեռուստատեսության և լուսանկարչության մեջ: Վերևի նկարում դուք կարող եք տեսնել յուրաքանչյուր բյուրեղի փայլը առանձին-առանձին:
Այս նկարում դուք տեսնում եք գույները խառնելու սկզբունքը բոլոր երանգները ստանալու համար:
RGB LED-ների բյուրեղները կարող են միացվել հետևյալ սխեմայի համաձայն.
Ընդհանուր անոդով;
Ընդհանուր կաթոդով;
Միացված չէ:
Առաջին երկու տարբերակներում կտեսնեք, որ LED-ն ունի 4 կապ.
Կամ 6 եզրակացություն վերջին դեպքում.
Լուսանկարում կարող եք տեսնել, որ ոսպնյակի տակ հստակ տեսանելի են երեք բյուրեղներ:
Նման LED-ների համար վաճառվում են հատուկ մոնտաժային բարձիկներ, որոնց վրա նույնիսկ նշված են քորոցների նշանակումները:
RGBW LED- ները չեն կարող անտեսվել, նրանց տարբերությունն այն է, որ իրենց բնակարանում կա մեկ այլ բյուրեղ, որը արձակում է սպիտակ լույս:
Բնականաբար, մենք չէինք կարող անել առանց շերտերի նման LED-ներով:
Այս նկարը ցույց է տալիս ժապավենը RGB LED-ներով, որը հավաքված է ընդհանուր անոդով շղթայի համաձայն, փայլի ինտենսիվությունը կարգավորվում է էներգիայի աղբյուրի «-» (մինուս) կառավարմամբ:
RGB ժապավենի գույնը փոխելու համար օգտագործվում են հատուկ RGB կարգավորիչներ՝ ժապավենին մատակարարվող լարման միացման սարքեր:
Ահա RGB SMD5050 մատնահետքը.
Իսկ ժապավենները, RGB ժապավենների հետ աշխատելու հատուկ առանձնահատկություններ չկան, ամեն ինչ մնում է նույնը, ինչ մեկ գունավոր մոդելների դեպքում։
Առանց զոդման LED շերտերը միացնելու համար կան նաև միակցիչներ։
Ահա 5 մմ RGB LED-ի ցուցիչը.
Ինչպես է փոխվում փայլի գույնը
Գույնի ճշգրտումն իրականացվում է բյուրեղներից յուրաքանչյուրի ճառագայթման պայծառությունը կարգավորելու միջոցով: Մենք արդեն նայեցինք.
RGB կարգավորիչը ժապավենի համար աշխատում է նույն սկզբունքով, այն պարունակում է միկրոպրոցեսոր, որը վերահսկում է էներգիայի աղբյուրի բացասական տերմինալը. Սովորաբար կարգավորիչի հետ ներառված է հեռակառավարման վահանակ: Կարգավորիչները գալիս են տարբեր հզորություններով, դրանց չափերը կախված են սրանից՝ սկսած նման մանրանկարչությունից։
Այո, նման հզոր սարքը էլեկտրասնուցման չափի դեպքում:
Դրանք միացված են ժապավենին հետևյալ սխեմայով.
Քանի որ ժապավենի վրա գծերի խաչմերուկը թույլ չի տալիս ժապավենի հաջորդ հատվածը հաջորդաբար միացնել դրա հետ, եթե առաջինի երկարությունը գերազանցում է 5 մ-ը, ապա անհրաժեշտ է երկրորդ հատվածը միացնել լարերով անմիջապես RGB կարգավորիչից: .
Բայց դուք կարող եք դուրս գալ իրավիճակից և լրացուցիչ 4 լարեր չքաշել կարգավորիչից 5 մետր հեռավորության վրա և օգտագործել RGB ուժեղացուցիչ: Որպեսզի այն աշխատի, դուք պետք է ձգեք ընդամենը 2 լար (գումարած և մինուս 12 Վ) կամ սնուցեք մեկ այլ սնուցման աղբյուր մոտակա 220 Վ աղբյուրից, ինչպես նաև 4 «տեղեկատվական» լարեր նախորդ հատվածից (R, G և B), որոնք նրանք են։ անհրաժեշտ է վերահսկիչից հրամաններ ստանալու համար, որպեսզի ամբողջ կառույցը հավասարապես փայլի:
Իսկ հաջորդ հատվածն արդեն միացված է ուժեղացուցիչին, այսինքն. այն օգտագործում է նախորդ ժապավենի ազդանշանը: Այսինքն, դուք կարող եք սնուցել ժապավենը ուժեղացուցիչից, որը տեղակայված կլինի անմիջապես դրա կողքին, դրանով իսկ խնայելով գումար և ժամանակ առաջնային RGB կարգավորիչից լարեր դնելու վրա:
Մենք հարմարեցնում ենք RGB-led մեր սեփական ձեռքերով
Այսպիսով, RGB LED- ների վերահսկման երկու տարբերակ կա.
Ահա շղթայի տարբերակն առանց Arduino-ի և այլ միկրոկառավարիչների օգտագործման՝ օգտագործելով երեք CAT4101 վարորդներ, որոնք կարող են հոսանք հասցնել մինչև 1A:
Այնուամենայնիվ, այժմ կարգավորիչները բավականին էժան են, և եթե ձեզ անհրաժեշտ է կարգավորել LED ժապավենը, ավելի լավ է գնել պատրաստի տարբերակ: Arduino-ով սխեմաները շատ ավելի պարզ են, մանավանդ որ դուք կարող եք գրել էսքիզ, որով կա՛մ ձեռքով կսահմանեք գույնը, կա՛մ գույների ընտրությունը կլինի ավտոմատ՝ տվյալ ալգորիթմի համաձայն։
Եզրակացություն
RGB LED- ները հնարավորություն են տալիս ստեղծել հետաքրքիր լուսային էֆեկտներ, դրանք օգտագործվում են ինտերիերի ձևավորման մեջ, որպես կենցաղային տեխնիկայի հետին լուսավորություն և հեռուստացույցի էկրանի ընդլայնման էֆեկտ: Սովորական LED-ներից դրանց հետ աշխատելիս հատուկ տարբերություններ չկան:
Եռագույն LED-ը կարող է փայլել ծիածանի բոլոր գույներով: Համաձայն եմ, սա շատ ավելի հետաքրքիր է, քան սովորական լուսադիոդը թարթելը
Սկսենք Arduino-ին ծանոթանալու երրորդ դասը։
Սարքավորումների միացում.
Իրականում, եռագույն LED-ը երեք լուսադիոդ է (կարմիր, կանաչ և կապույտ) մեկ փաթեթում: Երբ մենք այն գործարկում ենք կարմիրի, կանաչի և կապույտի պայծառության և ինտենսիվության տարբեր մակարդակներում, մենք նոր գույներ ենք ստանում:
LED-ի եզրին մի փոքրիկ թեք կա, սա բանալին է, այն ցույց է տալիս կարմիր LED-ի ոտքը, հետո կա ընդհանուրը, հետո կանաչ և կապույտ:
ԿԱՐՄԻՐ LED ոտքը միացրեք 330 օհմ դիմադրությանը: Միացրեք ռեզիստորի մյուս ծայրը Arduino pin9 պորտին:
Միացրեք Common pin-ը GND-ին:
ԿԱՆԱՉ ոտքը միացրեք 330 օհմ դիմադրությանը:
Միացրեք ռեզիստորի մյուս ծայրը Arduino pin10 պորտին:
Կապույտ ոտքը միացրեք 330 օհմ դիմադրությանը:
Միացրեք ռեզիստորի մյուս ծայրը Arduino pin11 պորտին:
Հետևյալ նկարը ցույց է տալիս հավաքված շղթայով հացատախտակի տեսքը և հացատախտակից եկող լարերով Arduino տախտակ:
ArduinoKit փորձնական հավաքածու
Ծրագրի կոդը համար 3 փորձի համար.
Մնում է միայն ներբեռնել ծրագիրը Arduino-ում USB մալուխի միջոցով: Ներբեռնեք էսքիզը երրորդ LED RGB դասի հետ - վերը նշված հոդվածում: