KELLU

On neid, kes loevad seda uudist enne sind.
Tellige värskete artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas soovite kellukest lugeda?
Rämpsposti pole

"Julge" sari.

RGB tähistab lühendina Red, Green, Blue, nende värvidega saate segades mis tahes värvi. RGB LED sisaldab 3 väikest kristalli R, G, B, millega saame sünteesida mis tahes värvi või tooni. Selles õpetuses ühendame RGB LED-i Arduino plaadiga ja paneme selle kõigi vikerkaarevärvidega särama.
Selle projekti jaoks vajate osi, mis on saadaval komplektides "Basic" ja "Learning Arduino":

  1. Arduino Uno;
  2. USB-kaabel;
  3. Prototüüpimislaud;
  4. Isas-meesjuhtmed - 7 tk;
  5. Takistid 220 Ohm – 3 tk;
  6. RGB LED – 1 tk;
  7. Potentsiomeeter.

Me paneme kokku joonisel 1 näidatud vooluringi.

Joonis 1. Ühendusskeem

Nüüd hakkame visandit kirjutama.
RGB LED peaks särama kõigi vikerkaarevärvidega punasest lillani, seejärel liikuma edasi punasele ja nii edasi ringikujuliselt. Värvi ülemineku kiirust juhitakse potentsiomeetriga. Tabelis 1 on näidatud vikerkaare 7 põhivärvi R, G, B väärtused.

Tabel 1. Vikerkaare 7 põhivärvi R, G, B väärtused

Värvide segamiseks Arduino tihvtidelt R, G, B LED-sisenditesse on vaja anda kogu pingevahemik. Kuid Arduino ei saa digitaalsele kontaktile suvalist pinget väljastada. Väljastatakse kas +5 V (HIGH) või 0 V (LOW). Osalise pinge simuleerimiseks kasutatakse PWM-i (Pulse Width Modulation ehk PWM).

Loodan, et olete seda peatükki juba uurinud 2.6 Jeremy Blumi raamatust "Exploring Arduino: Tools and Techniques of Technical Wizardry", mis selgitab üksikasjalikult impulsi laiuse modulatsiooni mehhanismi.
Programmi täitmisalgoritm:

  • Suurendame G rohelise komponendi väärtust, kuni jõuame oranži väärtuseni (255,125,0),
  • Suurendame rohelise komponendi G väärtust, kuni jõuame kollane (255,255,0).
  • Redigeerime punase komponendi R väärtuse roheliseks (0,255,0).
  • Lähtepunkt on punane (255,0,0).
  • Suurendame sinise komponendi B väärtust sinise värvi väärtuseni (0,255,255).
  • Vähendage rohelise komponendi G väärtust väärtuseni sinine (0,0,255).
  • Suurendage järk-järgult punase komponendi R väärtust lilla värvi väärtuseni (255.0.255).
  • Vähendage sinise komponendi B väärtust punase värvi väärtuseks (255,0,0).

Liigume edasi 1. sammu juurde.

Pärast iga sammu teeme pausi värvikuva salvestamiseks,

Viivitus(VIEW_PAUSE);

kontrollime potentsiomeetri väärtust ja muudame värvimuutuse kiiruse väärtust.

Void setpause() ( pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE); Serial.print("pause=");Serial.println(pause); )

Loome Arduino IDE-s uue visandi, lisage sinna kood nimekirjast 1 ja laadige visand Arduino tahvlile. Tuletame meelde, et Arduino IDE seadetes peate valima plaadi tüübi (Arduino UNO) ja plaadi ühenduspordi.
Nimekiri 1

Const int PUNANE=11; // RGB LED-i väljund R const int GREEN=10; // RGB LED-i väljund G const int BLUE=9; // RGB LED-i väljund B in red; // muutuja värvi R-komponendi salvestamiseks int green; // muutuja värvi G-komponendi salvestamiseks int blue; // muutuja värvikonst B-komponendi salvestamiseks int POT=A0; // potentsiomeetri ühenduse väljund const int MIN_PAUSE=10; // minimaalne värvimuutuse viivitus, ms const int MAX_PAUSE=100; // maksimaalne värvimuutuse viivitus, ms int pause; // muutuja praeguse viivituse salvestamiseks const int VIEW_PAUSE=2000; // põhivärvi fikseerimise aeg, ms void setup() ( Serial.begin(9600); ) void loop() ( // punasest kollaseks Serial.println("punane - kollane"); red=255;green=0 ;sinine=0; for(roheline=0;roheline<=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;punane--) setRGB(punane,roheline,sinine);<=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>viivitus(VIEW_PAUSE);

Peale visandi laadimist jälgime RGB LED-i värvimuutust koos vikerkaare värvidega ning kasutame potentsiomeetrit värvimuutuse kiiruse muutmiseks (vt joonis 2.3).


Joonis 2.3. RGB LED – kõik vikerkaarevärvid

Eelmisel korral vaatasime, kuidas ühendada LED-riba Arduinoga L298 draiveri kaudu. Värvihaldus viidi läbi programmiliselt - juhuslik funktsioon. Nüüd on aeg välja mõelda, kuidas juhtida LED-riba värvi DHT 11 temperatuuri- ja niiskusanduri näitude põhjal.

Näide põhineb LED-riba ühendamisel L298 draiveri kaudu. Lisaks on näitele lisatud LCD 1602 ekraan, mis kuvab DHT 11 anduri näidud.

Projekt nõuab järgmisi Arduino elemente:

  1. Arduino UNO plaat.
  2. Ekraan LCD 1602 + I2C.
  3. Temperatuuri ja niiskuse andur DHT
  4. LED riba.
  5. Juht L298.
  6. Toide 9-12V.
  7. Arduino korpus ja ekraan (valikuline).

Kõigepealt vaatame elektriskeemi (joonis 1). Sellel näete, kuidas kõiki ülaltoodud elemente ühendada. Skeemi kokkupanemises ja ühendamises pole midagi keerulist, kuid tasub mainida ühte nüanssi, mis enamikul meelest läheb ja mille tulemusena saavad nad Arduinoga LED-ribadega töötades ebaõigeid tulemusi.

Joonis 1. Skemaatiline diagramm Arduino ja LED-riba ühendamine DHT 11 anduriga

Vältimaks LED-riba ebakorrektset töötamist (virvendus, värvide mittevastavus, mittetäielik valgustus jne), tuleb kogu vooluahela toiteallikas muuta ühiseks, s.t. ühendage Arduino kontrolleri ja L298 draiveri (LED-riba) GND (maandus) tihvtid. Kuidas seda teha, näete diagrammil.

Paar sõna niiskusanduri ühendamise kohta. Kui ostate palja DHT 11, ilma rihmadeta, peate esimese ja teise kontakti, vastavalt 5V ja Data vahele jootma takisti nimiväärtusega 5-10 kOhm. Temperatuuri ja niiskuse mõõtmise vahemik on kirjas DHT 11 anduri korpuse tagaküljel Temperatuur: 0-50 kraadi Celsiuse järgi. Niiskus: 0-80%.


Joonis 2. Õige ühendus niiskusandur DHT 11

Pärast projekti kõigi elementide kokkupanemist vastavalt skeemile peame kirjutama programmi koodi, mis paneb selle kõik toimima nii, nagu me seda vajame. Ja me peame led riba muutis värvi sõltuvalt DHT 11 anduri (niiskus) näitudest.

Anduri DHT 11 programmeerimiseks vajate täiendavat raamatukogu.

Arduino ja RGB programmikood - riba. Muudab lindi värvi sõltuvalt niiskusest.

#include #include //teek LCD 1602 ekraaniga töötamiseks #include //teegi niiskus- ja temperatuurianduriga töötamiseks DHT 11 int chk; //muutuja salvestab kõik andmed DHT11 andurilt int hum; //muutuja salvestab niiskuse näidud DHT11 andurilt dht11 DHT; //objekt tüüp DHT #define DHT11_PIN 4 //DHT11 anduri andmekontakt on ühendatud sisendiga 4 #define LED_R 9 //pin for channel R #define LED_G 10 //pin for channel G #define LED_B 11 //pin kanali B jaoks //muutujad salvestavad värviväärtused //kõigi kolme värvi segamisel saadakse vajalik värv int led_r=0, led_g=0, led_b=0; //aadressiga 0x27 kuvatava objekti deklareerimine //ärge unustage kasutada projektis kuva I2C plaadi kaudu LiquidCrystal_I2C lcd(0x27,16,2); void setup() ( //loo ekraan lcd.init(); lcd.backlight(); // deklareeri kontaktid väljunditena pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); ) void loop () ( chk = DHT.read(DHT11_PIN);//loe andmeid DHT11 andurilt //väljastavad andmed ekraanile lcd.print("Temp: "); lcd.print(DHT.temperature, 1); lcd.print( " C"); küsimiseks vajalik lcd.clear(); roheline if ((hum >= 19) && (hum<= 30)) { led_r = 1; led_g = 255; led_b = 1; } //в диапозоне от 31 до 40% влажности выдать красный цвет if ((hum >= 31) && (hum<= 40)) { led_r = 255; led_g = 1; led_b = 1; } //в диапозоне от 41 до 49% влажности выдать синий цвет if ((hum >= 41) && (hum<= 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); }

Sildid: Sildid

Paljudes rakendustes, nii amatöör- kui ka professionaalsetes, on mõnikord vaja genereerida erinevat tooni värve. Eraldi ühevärviliste LED-ide kasutamine sellistel juhtudel on struktuurselt ja majanduslikult põhjendamatu. Seetõttu töötati sellistel eesmärkidel välja RGB LED-id.



RGB LED (akronüüm tähendab PUNANE, ROHELINE, SININE) on kristallide kombinatsioon, mis on võimeline tootma punast, rohelist ja sinist värvi. Tänu sellele kombinatsioonile suudavad need LED-id reprodutseerida 16 miljonit valguse varjundit. RGB LED-e on lihtne juhtida ja neid saab probleemideta kasutada Arduino projektides. See materjal näitab näidet RGB LED-i juhtimisest Arduino abil.


Kuna RGB LED, nagu eespool märgitud, on kolme erineva põhivärvi kristallide kombinatsioon, on see vooluringis kujutatud kolme LED-ina. Struktuurselt on sellisel LED-il iga värvi jaoks üks ühine klemm ja kolm terminali. Allpool on skeem, kuidas ühendada RGB LED-i Arduinoga. Ahel sisaldab ka 16x2 tähtnumbrilist LCD-ekraani, potentsiomeetreid ja takisteid, mis on järjestikku ühendatud RGB LED-liinidega. Need takistid (R1 = 100 oomi, R2 = 270 oomi, R3 = 330 oomi) piiravad LED-ide voolu, et need ei rikkis. RGB LED-i intensiivsuse reguleerimiseks kasutatakse muutuvaid takisteid (potentsiomeeter) VR1-VR3 takistusega 10 KOhm, see tähendab, et nendega saab määrata LED-i värvi, muutes punase, rohelise ja sinise intensiivsust. kristallid. Potentsiomeeter VR1 on ühendatud analoogsisendiga A0, VR2 analoogsisendiga A1 ja VR3 analoogsisendiga A2.



Sel juhul kasutatakse LCD-ekraani värviväärtuse ja värvikoodi kuueteistkümnendsüsteemi väärtuse kuvamiseks. Värvikoodi väärtus kuvatakse LCD-ekraani 1. real (nagu Rxxx Gxxx Bxxx, kus xxx on arvväärtus) ja kuueteistkümnendkood kuvatakse vedelkristallekraani 2. real (nagu HEXxxxxxx). 100 oomi takistit R4 kasutatakse vedelkristallekraani taustvalgustuse voolu piiramiseks ja 10K oomi muutuvat takistit VR4 kasutatakse LCD kontrasti reguleerimiseks.


Allpool on kood (sketš), mis võimaldab juhtida RGB LED-i värvimuutust kasutades Arduino plaati ja sellega ühendatud potentsiomeetreid.


#kaasa // LCD-ekraani teek LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Arduino read LCD-ekraani ühendamiseks int Radj; int Gadj; int Badj; int Rval=0; int Gval=0; int Bval=0; int R = 9; int G = 10; int B = 11; void setup() ( pinMode(R, OUTPUT); // rida 9 on suunatud väljundisse pinMode(G, OUTPUT); // rida 10 on suunatud väljundisse pinMode(B, OUTPUT); // rida 11 on suunatud väljundile lcd.begin (16,2) (0, 0) lcd.print("R G B")("HEX=") väärtuseks (0-255) Gval=Gadj/4 // teisendab vahemiku (0-1023) väärtuseks (0-255) Bval=Badj/4 // teisendab vahemiku (0-1023) väärtuseks (0-); 255) lcd.setCursor(2,0);<10) { lcd.setCursor(2,0); lcd.print("00"); lcd.print(Rval); } else if(Rval<100) { lcd.setCursor(2,0); lcd.print("0"); lcd.print(Rval); } else { lcd.setCursor(2,0); lcd.print(Rval); } lcd.setCursor(8,1); if (Rval<16) { lcd.print("0"); lcd.print(Rval, 16); } else { lcd.print(Rval, 16); } lcd.setCursor(7,0); if (Gval<10) { lcd.setCursor(7,0); lcd.print("00"); lcd.print(Gval); } else if(Gval<100) { lcd.setCursor(7,0); lcd.print("0"); lcd.print(Gval); } else { lcd.setCursor(7,0); lcd.print(Gval); } lcd.setCursor(10,1); if (Gval<16) { lcd.print("0"); lcd.print(Gval, 16); } else { lcd.print(Gval, 16); } lcd.setCursor(12,0); if (Bval<10) { lcd.setCursor(12,0); lcd.print("00"); lcd.print(Bval); } else if(Bval<100) { lcd.setCursor(12,0); lcd.print("0"); lcd.print(Bval); } else { lcd.setCursor(12,0); lcd.print(Bval); } lcd.setCursor(12,1); if (Bval<16) { lcd.print("0"); lcd.print(Bval, 16); } else { lcd.print(Bval, 16); } analogWrite(R, Rval); // ШИМ-выход для красного цвета analogWrite(G, Gval); // ШИМ-выход для зеленого цвета analogWrite(B, Bval); // ШИМ-выход для синего цвета }

Mitmevärvilisi LED-e või RGB-d, nagu neid nimetatakse, kasutatakse dünaamiliselt muutuva värvivalgustuse kuvamiseks ja loomiseks. Tegelikult pole neis midagi erilist, mõtleme välja, kuidas need töötavad ja mis on RGB LED-id.

Sisemine struktuur

Tegelikult on RGB LED kolm ühevärvilist kristalli, mis on ühendatud ühes korpuses. Nimetus RGB tähistab punast – punast, rohelist – rohelist, sinist – sinist, olenevalt värvidest, mida iga kristall kiirgab.

Need kolm värvi on põhilised ja nende segamisel moodustub see tehnoloogia televisioonis ja fotograafias pikka aega. Ülaltoodud pildil näete iga kristalli sära eraldi.

Sellel pildil näete värvide segamise põhimõtet kõigi toonide saamiseks.

RGB LED-ide kristalle saab ühendada vastavalt järgmisele skeemile:

Ühise anoodiga;

ühise katoodiga;

Pole ühendatud.

Esimeses kahes valikus näete, et LED-il on 4 kontakti:

Või 6 järeldust viimasel juhul:

Fotol näete, et objektiivi all on selgelt näha kolm kristalli.

Selliste LED-ide jaoks müüakse spetsiaalseid kinnitusaluseid, millel on isegi tihvtide määramised märgitud.

RGBW LED-e ei saa tähelepanuta jätta, et nende korpuses on veel üks valget valgust kiirgav kristall.

Loomulikult ei saanud me selliste LED-idega ribadeta hakkama.

Sellel pildil on RGB LED-idega riba, mis on kokku pandud ühise anoodiga vooluringi järgi.

RGB-lindi värvi muutmiseks kasutatakse spetsiaalseid RGB-kontrollereid - seadmeid lindile antud pinge ümberlülitamiseks.

Siin on RGB SMD5050 pistikupesa:

Ja lindid, RGB-lintidega töötamisel pole erilisi omadusi, kõik jääb samaks, mis ühevärviliste mudelite puhul.

Samuti on olemas pistikud LED-ribade ühendamiseks ilma jootmiseta.

Siin on 5 mm RGB LED-i väljund:

Kuidas sära värvus muutub

Värvi reguleerimine toimub iga kristalli kiirguse heleduse reguleerimise teel. Oleme juba vaadanud.

Lindi RGB-kontroller töötab samal põhimõttel, see sisaldab mikroprotsessorit, mis juhib toiteallika negatiivset klemmi - ühendab ja lahutab selle vastava värvi vooluringist. Tavaliselt on kontrolleriga kaasas ka kaugjuhtimispult. Kontrollereid on erineva võimsusega, nende suurus sõltub sellest, alates sellisest miniatuursest.

Jah, selline võimas seade toiteploki suuruses korpuses.

Need on lindiga ühendatud vastavalt järgmisele skeemile:

Kuna lindil olevate radade ristlõige ei võimalda lindi järgmist osa sellega järjestikku ühendada, siis kui esimese pikkus ületab 5 m, tuleb teine ​​osa ühendada juhtmetega otse RGB-kontrollerist. .

Kuid võite olukorrast välja tulla ja mitte tõmmata täiendavaid 4 juhet 5 meetri kaugusele kontrollerist ja kasutada RGB-võimendit. Selle toimimiseks on vaja venitada ainult 2 juhtmest (pluss ja miinus 12 V) või toiteallikaks mõni muu toiteallikas lähimast 220 V allikast, samuti 4 eelmise segmendi (R, G ja B) teabejuhet. vaja kontrollerilt käskude vastuvõtmiseks, nii et kogu struktuur helendab võrdselt.

Ja järgmine segment on juba võimendiga ühendatud, st. see kasutab eelmise linditüki signaali. See tähendab, et saate lindi toita võimendist, mis asub otse selle kõrval, säästes sellega raha ja aega esmasest RGB-kontrollerist juhtmete paigaldamisel.

RGB-led reguleerime oma kätega

Seega on RGB LED-ide juhtimiseks kaks võimalust:

Siin on vooluringi versioon ilma Arduino ja teiste mikrokontrolleriteta, kasutades kolme CAT4101 draiverit, mis on võimelised edastama voolu kuni 1A.

Kuid nüüd on kontrollerid üsna odavad ja kui teil on vaja LED-riba reguleerida, on parem osta valmis valik. Arduino vooluringid on palju lihtsamad, eriti kuna saate kirjutada visandi, mille abil saate värvi käsitsi määrata või toimub värvide valik vastavalt antud algoritmile automaatselt.

Järeldus

RGB LED-id võimaldavad luua huvitavaid valgusefekte, neid kasutatakse sisekujunduses, kodumasinate taustvalgustusena ja teleriekraani laiendava efektina. Nendega töötamisel tavalistest LED-idest pole erilisi erinevusi.

Kolmevärviline LED suudab särada kõigi vikerkaarevärvidega! Nõus, see on palju huvitavam kui tavalise LED-i vilkumine
Alustame Arduino tundmaõppimise kolmandat õppetundi.

Seadmete ühendus:
Tegelikult on kolmevärviline LED kolm LED-i (punane, roheline ja sinine) ühes pakendis. Kui kasutame seda punase, rohelise ja sinise erineva heleduse ja intensiivsusega, saame uued värvid.

LED-i serval on väike kaldnurk, see on võti, see osutab punase LED-i jalale, siis on üldine, siis roheline ja sinine.

Ühendage PUNANE LED-jalg 330-oomise takistiga. Ühendage takisti teine ​​ots Arduino pin9 porti.

Ühendage ühine tihvt GND-ga.

Ühendage ROHELINE jalg 330 oomi takistiga.

Ühendage takisti teine ​​ots Arduino pin10 porti.

Ühendage SININE jalg 330 oomi takistiga.

Ühendage takisti teine ​​ots Arduino pin11 porti.

Järgmisel pildil on leivaplaadi välimus koos kokkupandud vooluringiga ja Arduino plaat koos leivaplaadist tulevate juhtmetega.

ArduinoKiti katsekomplekt
Kogemuse nr 3 programmikood:

Jääb üle vaid programm USB-kaabli kaudu Arduinosse alla laadida. Laadige alla eskiis koos kolmanda LED RGB õppetunniga - artiklis ülalpool.



KELLU

On neid, kes loevad seda uudist enne sind.
Tellige värskete artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas soovite kellukest lugeda?
Rämpsposti pole