RGB-joulukuusen seppele Arduinossa. LED-nauhan ohjaus Arduinolla

Tämä projekti on omistettu LED-valaistuksen ohjaamiseen viereisestä huoneesta, jotta ei nouse sohvalta. LED RGB -valaistus koristaa yhtä hyvin sekä pienen akvaarion että suuren huoneen.

Voit valaista kylvyn eri väreillä Arduinon RGB-nauhalla. Luo niin sanotusti mikroprosessoriohjattu sauna Arduinosta.

Tarvitset vain seuraavat komponentit RGB-taustavalon kokoamiseen:

  1. Bluetooth-moduuli HC-05 langattomaan tiedonsiirtoon Arduinon kanssa.
  2. Arduino nano, mini, Uno-levy mikroprosessorilla ATmega 8, ATmega 168, ATmega 328.
  3. RGB LED-nauha tarvittaessa IP65-vesitiiviillä tai ilman.
  4. Android-älypuhelin kaukosäätimenä RGB-valaistukseen.
  5. MOSFET-kenttätransistorit, kuten P3055LD, P3055LDG, PHD3355L, mutta parempia johtimilla asennusreikiin kiinnitettäväksi. Bipolaaritransistorit toimivat huonommin .
  6. Vastukset 10 kOhm, 0,125 W - 3 kpl.

Pieni teoria RGB-nauhan liittämisestäArduino

Et voi kytkeä LED-nauhaa suoraan Arduino-korttiin. LED-nauha hehkuu 12 V:sta, kun taas mikroprosessori tarvitsee vain 5 V toimiakseen.

Mutta suurin ongelma on, että mikroprosessorin lähdöillä ei ole tarpeeksi tehoa koko LED-nauhan tehoon. Keskimäärin metrin pituinen LED-nauha kuluttaa 600 mA. Tämä virta vahingoittaa ehdottomasti Arduino-levyä.

Käytetyn mikroprosessorin PWM-ulostuloissa ei ole tarpeeksi tehoa RGB-nauhan valaisemiseen, mutta niitä voidaan silti käyttää ohjaussignaalin poistamiseen.

Virtalähteen irrotuksessa on suositeltavaa käyttää transistoreita kytkiminä. On parempi käyttää MOSFET-kenttätransistoreja: ne vaativat niukan hilavirran avautuakseen, ja niissä on myös enemmän tehoa verrattuna samankokoisiin bipolaarisiin kytkimiin.

RGBnauhatArduino

Kytkentäkaaviossa nauhan ohjaukseen käytetään PWM-lähtöjä: 9 (punainen), 10 (vihreä), 11 (sininen).

Jokaisen transistorin "porttiin" on ripustettu kolme vastusta, joiden teho on 10 kOhm, 0,125 W.

12 V virtalähteen plus (punainen johto) menee suoraan RGB-nauhaan.

12 V virtalähteen negatiivinen (musta johto) on jaettu kenttätransistorien "lähteille".

Jokaisen transistorin "tyhjennys" on kytketty nauhan erilliseen koskettimeen: R, G, B. Kytkennän helpottamiseksi on suositeltavaa käyttää punaisia, vihreitä ja sinisiä johtoja.

Arduino-levyn GND maadoitusnasta tulee kytkeä tulotehon miinuskohtaan.

Itse Arduino Uno -levy saa virtansa erillisestä verkkosovittimesta. Arduino nano mini, sinun on koottava yksinkertainen virtalähde integroidulla 7805-vakaimella.

Bluetooth-moduulin HC-05 liittäminen:

  • VCC - 5 V (syöttö + 5 V);
  • GND - GND (maa, yhteinen);
  • RX - TX Arduino nanossa, minissä, Unossa;
  • TX - RX Arduino nanossa, minissä, Unossa;
  • LED - ei käytetty;
  • AVAIN - ei käytetty.

Alla oleva ohjelmakaavio on universaali sekä yhden LEDin että LED-nauhan ohjaamiseen. Tärkeintä on jättää tarvittavat rivit ja poistaa tarpeettomat tai tehdä kommentteja kauttaviivalla.

Merkitön pitkä x; int LED = 9; // vihreä on kytketty nastan 9 int LED2 = 10; // sininen on kytketty nastan 10 int LED3 = 11; // punainen on kytketty nastan 11 kohtaan a,b,c = 0; void setup() ( Serial.begin(9600); Serial.setTimeout(4); pinMode(LED, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); ) void loop() ( if (Serial. käytettävissä()) ( x = Serial.parseInt(); if (x>=0 && x<=255) { a = x; // для RGB ленты //a = 255-x; // для светодиода analogWrite(LED, a); } if (x>=256 && x<=511) { b = x-256; // для RGB ленты //b = 511-x; // для светодиода analogWrite(LED2, b); } if (x>=512 && x<=767) { c = x-512; // для RGB ленты //c = 767-x; // для светодиода analogWrite(LED3, c); } /* Serial.println(x); Serial.println(a); Serial.println(b); Serial.println(c); */ } }

Jos sinun on liitettävä yksi RGB-LED, sen liittämiseen on kytkentäkaavio.

Sovelluksen asentaminen puhelimeen

Lataa puhelimeesi sovellus lyhyellä nimellä RGB. .

Asennuksen jälkeen käynnistä sovellus kuvakkeesta.

Napsauta kirjoitusta

Löydämme luettelosta asennetun Bluetooth-moduulin HC-05.

Jos yhteys on olemassa, asennetun Bluetooth-moduulin osoite ja nimi näytetään merkinnän sijaan.

No, siinä kaikki, RGB-taustavalon ohjaus on asennettu!

Tässä videoesimerkki projektistamme toiminnassa:

GPS-kello Arduinossa Biometrinen lukko - LCD-näytön kaavio ja kokoonpano

Arduino on ihanteellinen kaikkien laitteiden ohjaamiseen. ATmega-mikroprosessori käsittelee luonnosohjelman avulla suurta määrää erillisiä nastoja, analogisia-digitaalisia tuloja/lähtöjä ja PWM-ohjaimia.

Koodin joustavuuden ansiosta ATmega-mikrokontrolleria käytetään laajasti erilaisissa automaatiomoduuleissa, mukaan lukien sen perusteella on mahdollista luoda LED-valaistuksen ohjausohjain.

Kuormanhallinnan periaate Arduinon kautta

Arduino-kortilla on kahden tyyppisiä lähtöportteja: digitaalinen ja analoginen (PWM-ohjain). Digitaalisella portilla on kaksi mahdollista tilaa: looginen nolla ja looginen yksi. Jos liität siihen LEDin, se joko palaa tai ei.

Analoginen lähtö on PWM-ohjain, johon syötetään noin 500 Hz:n taajuinen signaali säädettävällä käyttöjaksolla. Mikä PWM-ohjain on ja sen toimintaperiaate löytyy Internetistä. Analogisen portin kautta on mahdollista paitsi kytkeä kuormaa päälle ja pois, myös muuttaa sen jännitettä (virtaa).

Komentosyntaksi

Digitaalinen lähtö:

pinMode(12, OUTPUT);— aseta portti 12 datan ulostuloportiksi;
digitalWrite(12, KORKEA);— Käytämme loogista erillistä lähtöä 12, joka valaisee LEDin.

Analoginen lähtö:

analogOutPin = 3;– aseta portti 3 tulostamaan analoginen arvo;
analogWrite(3, arvo);– tuotamme ulostuloon signaalin, jonka jännite on 0 - 5 V. Arvo on signaalin toimintajakso 0 - 255. Arvolla 255 maksimijännite.

Tapoja ohjata LEDejä Arduinon kautta

Vain heikko LED voidaan kytkeä suoraan portin kautta, ja silloinkin se on parempi rajoitusvastuksen kautta. Tehokkaamman kuorman yhdistäminen vahingoittaa sitä.

Tehokkaammille kuormille, mukaan lukien LED-nauhat, käytetään elektronista kytkintä - transistoria.

Transistorikytkimien tyypit

  • Bipolaarinen;
  • Ala;
  • Komposiitti (Darlington-kokoonpano).
Lataa yhteysmenetelmät
Bipolaaritransistorin kautta Kenttätransistorin kautta Jännitekytkimen kautta

Kun käytetään korkeaa logiikkatasoa (digitalWrite(12, KORKEA);) lähtöportin kautta transistorin kantaan, vertailujännite virtaa kuormaan kollektori-emitteriketjun kautta. Näin voit kytkeä LED-valon päälle ja pois.

Kenttätransistori toimii samalla tavalla, mutta koska "kannan" sijasta siinä on nielu, jota ei ohjata virralla, vaan jännitteellä, rajoittavaa vastusta tässä piirissä ei tarvita.

Bipolaarinen näkymä ei anna sinun säätää voimakkaita kuormia. Sen läpi kulkeva virta on rajoitettu 0,1-0,3 A:iin.

Kenttätransistorit toimivat tehokkaammilla kuormilla, joiden virrat ovat jopa 2A. Vielä tehokkaampaa kuormaa varten käytetään Mosfet-kenttätransistoreja, joiden virta on enintään 9 A ja jännite jopa 60 V.

Kenttätransistoreiden sijasta voit käyttää bipolaaristen transistorien Darlington-kokoonpanoa ULN2003-, ULN2803-mikropiireissä.

ULN2003-siru ja elektronisen jännitekytkimen piirikaavio:

Transistorin toimintaperiaate LED-nauhan sujuvaan ohjaukseen

Transistori toimii kuin vesihana, vain elektroneille. Mitä suurempi bipolaaritransistorin kantaan tai kenttätransistorin nieluon syötetään jännite, sitä pienempi on emitteri-kollektoripiirin resistanssi, sitä suurempi on kuorman läpi kulkeva virta.

Kytkettyään transistorin Arduinon analogiseen porttiin, annamme sille arvon 0 - 255 ja muutamme kollektoriin tai viemäriin syötettävän jännitteen 0 - 5 V. Kollektori-emitteripiiri kulkee 0 - 100 % kuorman referenssijännitteestä.

Arduino LED-nauhan ohjaamiseksi sinun on valittava sopiva tehoinen transistori. LED-mittarin käyttövirta on 300-500 mA, tehobipolaarinen transistori sopii näihin tarkoituksiin. Pidempiä pituuksia varten tarvitaan kenttätransistori.

LED-nauhan kytkentäkaavio Arduinoon:

RGB-nauhan ohjaus Andurinolla

Yksisiruisten LEDien lisäksi Arduino voi toimia myös värillisten LEDien kanssa. Kytkemällä kunkin värin nastat Arduinon analogisiin lähtöihin, voit mielivaltaisesti muuttaa kunkin kiteen kirkkautta saavuttaen halutun hehkun värin.

Arduino RGB LEDin kytkentäkaavio:

Arduino RGB -nauhaohjain on rakennettu samalla tavalla:

On parempi koota Arduino RGB -ohjain kenttätransistoreilla.

varten tasainen kirkkauden säätö kahta painiketta voidaan käyttää. Toinen lisää hehkun kirkkautta, toinen vähentää sitä.

Arduino LED-nauhan kirkkauden säätöluonnos

int led = 120; aseta kirkkaus keskitasolle

void setup() (
pinMode(4, OUTPUT); aseta 4. analoginen portti lähtöön
pinMode(2, INPUT);

pinMode(4, INPUT); aseta 2. ja 4. digitaalinen portti pollauspainikkeiden tuloksi
}
void loop()

painike1 = digitaalinenLue(2);

painike2 = digitaalinenLue(4);
jos (painike1 == KORKEA) ensimmäisen painikkeen painaminen lisää kirkkautta
{
led = led + 5;

analogWrite(4, led);
}
jos (painike2 == KORKEA) Toisen painikkeen painaminen vähentää kirkkautta
{
led = led - 5;

analogWrite(4, led);
}

Kun pidät ensimmäistä tai toista painiketta painettuna, elektronisen avaimen ohjauskoskettimeen syötetty jännite muuttuu tasaisesti. Silloin kirkkaus muuttuu tasaisesti.

Arduino ohjausmoduulit

Voit luoda täysimittaisen LED-nauhan ohjausohjaimen käyttämällä anturimoduuleja.

IR ohjaus

Moduulin avulla voit ohjelmoida jopa 20 komentoa.

Signaalin säde on noin 8m.

Setin hinta on 6 USD.

Radiokanavalla

Nelikanavainen yksikkö, jonka kantama jopa 100m

Setin hinta on 8 USD.

Voit sytyttää valaistuksen, kun lähestyt asuntoa.

Kontaktiton

Etäisyysanturi pystyy lisäämään ja vähentämään valaistuksen kirkkautta liikuttamalla kättäsi.

Toimintasäde jopa 5m.

Moduulin hinta 0,3 USD

LED RGB -nauha on joustava nauha, johon on painettu johtimet ja RGB-LEDit (täysväri). Viime aikoina LED-nauhat ovat yleistyneet arkkitehtuurissa, autojen ja moottoripyörien virityksessä, puvuissa, koristeissa jne. On myös vedenpitäviä teippejä, joita voidaan käyttää esimerkiksi uima-altaissa.

LED-nauhoja on kahta tyyppiä: analoginen ja digitaalinen.
Analogisissa nauhoissa kaikki LEDit on kytketty rinnan. Siksi voit asettaa värin koko LED-nauhalle, mutta et voi asettaa tiettyä väriä tietylle LEDille. Nämä nauhat on helppo liittää eivätkä ole kalliita.
Digitaaliset LED-nauhat ovat hieman monimutkaisempia. Jokaiselle LEDille on asennettu ylimääräinen mikropiiri, jonka avulla voidaan ohjata mitä tahansa LEDiä. Tällaiset nauhat ovat paljon kalliimpia kuin tavalliset.

Tässä artikkelissa harkitsemme työskentelemistä vain analogisten LED-nauhojen kanssa.

Analogiset RGB LED-nauhat

Tietolomake:
- Yhden segmentin leveys 10,5 mm, paksuus 3 mm, pituus 100 mm
-vedenpitävä
- 3M teippi pohjassa
- max. virrankulutus (12V, valkoinen) - 60mA segmenttiä kohden
- hehkun väri (aallonpituus, nm): 630nm/530nm/475nm

RGB LED-nauhan piirikaavio

Nauha toimitetaan rullina ja koostuu 10 cm pituisista osista. Jokainen osa sisältää 3 RGB-LEDiä, koko 5050. Jokainen osa sisältää 9 LEDiä: 3 punaista, 3 vihreää ja 3 sinistä. Osion rajat on merkitty ja sisältävät kuparityynyjä. Siksi nauha voidaan tarvittaessa leikata ja juottaa helposti. LED-nauhakaavio:

Energiankulutus

Jokaisessa nauhan osassa on 3 LED-valoa kytketty sarjaan, joten 5V teho ei sovellu. Virtalähteen tulee olla 12V, mutta voi syöttää myös 9V, mutta silloin ledit eivät pala niin kirkkaasti.

Yksi segmentti LED-linja kuluttaa noin 20 mA, kun se syötetään 12 V:lla. Että. jos laitat valkoisen värin päälle (eli punainen 100%, vihreä 100% ja sininen 100%), osan virrankulutus on noin 60mA.

Nyt voit helposti laskea koko nauhan virrankulutuksen. Joten nauhan pituus on 1 metri. Nauhassa on 10 osaa (kukin 10 cm). Valkoisen nauhan kulutus on 60mA*10=600mA tai 0,6A. Jos käytät PWM-häivytystehostetta värien välillä, virrankulutus voidaan puolittaa.

Nauhan liittäminen

Teipin liittämiseksi sinun on juotettava johdot 4 kosketinlevyyn. Käytimme valkoista johtoa +12V ja loput värit LEDien värien mukaan.

Leikkaa suojakalvo pois teipin päästä. Miltä puolelta yhteys muodostetaan, ei ole merkitystä, koska... symmetrinen teippi.

Kuori eristekerros paljastaaksesi kosketuslevyt.

Tina ne.

Juota neljä johtoa. On parempi käyttää monisäikeistä johtoa (esimerkiksi PV3- tai PVS-kaapelia), se on joustavampi.

Suojautuaksesi vedeltä ja ulkoisilta vaikutuksilta voit käyttää kutisteputkia. Jos LED-nauhaa käytetään kosteassa ympäristössä, koskettimet voidaan lisäksi päällystää silikonilla.

Työskentely LED-nauhan kanssa

Nauhaa voidaan helposti käyttää minkä tahansa mikro-ohjaimen kanssa. LEDien ohjaamiseen on suositeltavaa käyttää pulssinleveysmodulaatiota (PWM). Älä liitä teippinastoja suoraan MK-nastoihin, koska Tämä on suuri virtakuorma ja ohjain saattaa palaa. On parempi käyttää transistoreita.

Voit käyttää NPN-transistoreita tai vielä paremmin N-kanavaisia ​​mosfetteja. Kun valitset transistorin, älä unohda, että transistorin suurin kytkentävirta on otettava varauksella.

LED-nauhan liittäminen Arduino-ohjaimeen

Katsotaanpa esimerkkiä LED-nauhan liittämisestä suosittuun. Yhdistämiseen voit käyttää edullisia ja suosittuja mosfetteja. Voit käyttää myös perinteisiä bipolaarisia transistoreita, esimerkiksi TIP120. Mutta verrattuna mosfetiin, siinä on enemmän jännitehäviöitä, joten on silti suositeltavaa käyttää ensin mainittua.
Alla oleva kaavio näyttää RGB-LED-nauhan kytkennän käytettäessä N-kanavaisia ​​mosfetteja. MOSFET-portti on kytketty ohjaimen nastaan ​​1, nielu nastaan ​​2 ja lähde pin3:een.

Alla on kytkentäkaavio käytettäessä perinteisiä bipolaarisia transistoreita (esim. TIP120). Transistorin kanta on kytketty ohjaimen nastaan ​​1, kollektori pin2:een ja emitteri pin3:een. Vastus, jonka resistanssi on 100-220 ohmia, on asetettava kannan ja säätimen lähdön väliin.

Liitä Arduino-ohjaimeen virtalähde, jonka jännite on 9-12 volttia, ja +12 V LED-nauhasta on kytkettävä ohjaimen Vin-nastaan. Voit käyttää kahta erillistä virtalähdettä, älä vain unohda kytkeä lähteen ja ohjaimen maadoitukset.

Esimerkkiohjelma

Nauhan ohjaamiseen käytetään ohjaimen PWM-lähtöä, jota varten voit käyttää analogWrite()-toimintoa nastoihin 3, 5, 6, 9, 10 tai 11. AnalogWrite(pin, 0) -toiminnolla LED ei pala. syttyy, analogWrite(pin, 127 ) -toiminnolla LED palaa täydellä teholla ja analogWrite(pin, 255) -toiminnolla LED palaa suurimmalla kirkkaudella. Alla on esimerkkiluonnos Arduinolle:

#define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // mitä suurempi numero, sitä hitaampi häivytysefekti on void setup() ( pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode (BLUEPIN , OUTPUT ) void loop() ( int r, g, b; // häivytä sinisestä violetiksi for (r = 0; r 0; b--) ( analogWrite(BLUEPIN, b); viive(FADESPEED); ); ) // häivytä punaisesta keltaiseksi kohteelle (g = 0; g 0; r--) ( analogWrite(REDPIN, r); viive(FADESPEED); ) // häivytä vihreästä keltaiseksi varten (b = 0; b 0; g--) ( analogWrite (GREENPIN, g); viive (FADESPEED); ) )

Viime kerralla tarkastelimme kuinka kytkeä LED-nauha Arduinoon L298-ohjaimen kautta. Värinhallinta toteutettiin ohjelmallisesti - Random-toiminto. Nyt on aika selvittää, miten LED-nauhan väriä ohjataan DHT 11 -lämpötila- ja kosteusanturin lukemien perusteella.

Esimerkki perustuu LED-nauhan kytkemiseen L298-ohjaimen kautta. Lisäksi esimerkkiin on lisätty LCD 1602 -näyttö, joka näyttää DHT 11 -anturin lukemat.

Projekti vaatii seuraavat Arduino-elementit:

  1. Arduino UNO -levy.
  2. Näyttö LCD 1602 + I2C.
  3. Lämpötila- ja kosteusanturi DHT
  4. LED-nauha.
  5. Kuljettaja L298.
  6. Virtalähde 9-12V.
  7. Kotelo Arduinolle ja näytölle (valinnainen).

Ensinnäkin katsotaan kytkentäkaaviota (kuva 1). Siinä näet kuinka yhdistää kaikki yllä olevat elementit. Piirin kokoamisessa ja kytkemisessä ei ole mitään monimutkaista, mutta on syytä mainita yksi vivahde, jonka useimmat ihmiset unohtavat, ja seurauksena he saavat virheellisiä tuloksia työskennellessään LED-nauhojen kanssa Arduinon kanssa.

Kuva 1. Kaaviokaavio Arduinon ja LED-nauhan kytkemisestä DHT 11 -anturilla

LED-nauhan virheellisen toiminnan (välkkyntä, värien yhteensopimattomuus, epätäydellinen hehku jne.) välttämiseksi koko piirin virtalähde tulee tehdä yhteiseksi, ts. yhdistä Arduino-ohjaimen GND-nastat ja L298-ohjain (LED-nauha). Voit nähdä kuinka tämä tehdään kaaviosta.

Muutama sana kosteusanturin kytkemisestä. Jos ostat paljaan DHT 11:n ilman vannetta, ensimmäisen ja toisen koskettimen, 5V ja Datan väliin on juotettava vastus, jonka nimellisarvo on 5-10 kOhm. Lämpötilan ja kosteuden mittausalue on kirjoitettu DHT 11 -anturin kotelon taakse. Lämpötila: 0-50 astetta. Kosteus: 0-80%.


Kuva 2. DHT 11 -kosteusanturin oikea liitäntä

Kun kaikki projektin elementit on koottu kaavion mukaan, meidän on kirjoitettava ohjelmakoodi, joka saa kaiken toimimaan haluamallamme tavalla. Ja tarvitsemme LED-nauhan vaihtamaan väriä DHT 11 -anturin (kosteus) lukemien mukaan.

Tarvitset lisäkirjaston DHT 11 -anturin ohjelmointiin.

Arduino ja RGB ohjelmakoodi - nauha. Muuttaa nauhan väriä kosteuden mukaan.

#sisällytä #sisällytä //kirjasto LCD 1602-näytön kanssa työskentelyyn #sisällytä //kirjasto kosteus- ja lämpötila-anturin kanssa työskentelyyn DHT 11 int chk; //muuttuja tallentaa kaikki tiedot DHT11-anturin int hum; //muuttuja tallentaa DHT11-anturin kosteuslukemat dht11 DHT; //objekti tyyppiä DHT #define DHT11_PIN 4 //DHT11-anturin datanasta on kytketty tuloon 4 #define LED_R 9 //nasta kanavalle R #define LED_G 10 //nasta kanavalle G #define LED_B 11 //pin kanavalle B //muuttujat tallentavat väriarvot //kun kaikki kolme väriä sekoitetaan, saadaan tarvittava väri int led_r=0, led_g=0, led_b=0; //näyttöobjektin ilmoittaminen osoitteella 0x27 //älä unohda käyttää näyttöä projektissa I2C-levyn kautta LiquidCrystal_I2C lcd(0x27,16,2); void setup() ( //luo näyttö lcd.init(); lcd.backlight(); // ilmoittaa nastat lähdöiksi pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); ) void loop () ( chk = DHT.read(DHT11_PIN);//lukea tietoja DHT11-anturista //tulostaa tiedot näytölle lcd.print("Temp: "); lcd.print(DHT.temperature, 1); lcd.print( " C"); lcd.setCursor("Hum:") tarvitaan kyselyyn lcd.clear( hum = DHT.humidity; //ottaa kosteuslukemat //välillä 19 - 30 % kosteus, näyttö vihreä 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); }

Tunnisteet: Tunnisteet