- Tarvittavat materiaalit:
- LDR:
- RGB-LED:
- Piirikaavio:
- Ohjelmoinnin selitys:
- Arduino-värisekoitusvalaisimen toiminta:
Entä jos voimme tuottaa erilaisia värejä yhdellä RGB-ledillä ja tehdä huoneemme kulmasta houkuttelevamman? Joten tässä on yksinkertainen Arduino-pohjainen värisekoitusvalaisin, joka voi vaihtaa väriä, kun huoneessa muuttuu valoa. Joten tämä lamppu muuttaa väriä automaattisesti huoneen valaistusolosuhteiden mukaan.
Jokainen väri on yhdistelmä punaista, vihreää ja sinistä väriä. Joten voimme tuottaa minkä tahansa värin käyttämällä punaista, vihreää ja sinistä väriä. Joten tässä vaihdamme PWM: ää eli valon voimakkuutta LDR: ssä. Tämä muuttaa edelleen punaisen, vihreän ja sinisen värin voimakkuutta RGB LED -valossa, ja eri värejä tuotetaan.
Alla olevassa taulukossa on esitetty väriyhdistelmät ja vastaava muutos työjaksoissa.
Tarvittavat materiaalit:
- 1 x Arduino UNO
- 1 x leipälauta
- 3 x 220 ohmin vastusta
- 3 x 1 kilohmin vastusta
- Hyppääjän johdot
- 3 x LDR: ää
- 3 x värillistä nauhaa (punainen, vihreä, sininen)
- 1 x RGB-LED
LDR:
Käytämme photoresistor (tai valoa riippuvainen vastus, LDR, tai kuva-johtava solu) täällä tässä piirissä. LDR: t on valmistettu puolijohdemateriaaleista, jotta niillä olisi valoherkät ominaisuudet. Nämä LDR: t tai PHOTO RESISTORS toimivat "kuvanjohtavuuden" periaatteella. Tämän periaatteen mukaan joka kerta, kun valo putoaa LDR: n pinnalle (tässä tapauksessa), elementin johtokyky kasvaa tai toisin sanoen LDR: n vastus laskee, kun valo putoaa LDR: n pinnalle. Tämä LDR-resistanssin vähenemisen ominaisuus saavutetaan, koska se on pinnalla käytetyn puolijohdemateriaalin ominaisuus.
Täällä kolmea LDR-anturia käytetään yksittäisten punaisen, vihreän ja sinisen LED: n kirkkauden säätämiseen RGB-ledin sisällä. Lue lisää LDR: n hallitsemisesta Arduinolla täältä.
RGB-LED:
RGB-ledejä on kahta tyyppiä , toinen on yhteinen katodityyppi (yhteinen negatiivinen) ja toinen on yhteinen anodityyppi (yhteinen positiivinen). CC: ssä (Common Cathode or Common Negative) on kolme positiivista päätettä, joista kukin terminaali edustaa väriä ja yksi negatiivinen pääte edustaa kaikkia kolmea väriä.
Piirissämme aiomme käyttää CA- tyyppiä (Common Anode or Common Positive). Jos haluamme tavallisen anodityypin, jos PUNAISEN LEDin palaa, meidän on maadoitettava PUNAINEN LED-tappi ja kytkettävä yhteinen positiivinen. Sama koskee kaikkia LED-valoja. Opi täältä liittämään RGB-LED Arduinoon.
Piirikaavio:
Tämän projektin täydellinen piirikaavio on annettu yllä. Kytkentäkaaviossa esitetty + 5 V: n ja maadoitusliitäntä saadaan Arduinon 5 V: n ja maadoitustapista. Arduino itse voidaan virtaa kannettavasta tietokoneesta tai DC-liitännästä 12 V: n sovittimen tai 9 V: n akun avulla.
Käytämme PWM: ää muuttamaan RGB-ledin kirkkautta. Voit oppia lisää PWM: stä täältä. Tässä on joitain PWM-esimerkkejä Arduinosta:
- Arduino Unon vaihteleva virtalähde
- DC-moottorin ohjaus Arduinolla
- Arduino-pohjainen äänigeneraattori
Ohjelmoinnin selitys:
Ensin ilmoitetaan kaikki tulot ja lähtötapit alla esitetyllä tavalla.
vakiotavu punainen_anturin_pin = A0; const tavu green_sensor_pin = A1; vakiotavu sininen_anturin_pin = A2; const tavu vihreä_led_pin = 9; vakiotavu sininen_palkki = 10; const tavu red_led_pin = 11;
Ilmoita antureiden ja ledien alkuarvot 0: ksi.
allekirjoittamaton int red_led_value = 0; allekirjoittamaton int blue_led_value = 0; allekirjoittamaton int green_led_value = 0; allekirjoittamaton int punainen_anturin_arvo = 0; allekirjoittamaton int sininen_anturin_arvo = 0; allekirjoittamaton int vihreä_anturin_arvo = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Sarjan alku (9600); }
Silmukkaosassa otetaan kolmen anturin lähtö analogRead (): lla; toiminto ja tallentaa kolmeen eri muuttujaan.
void loop () { red_sensor_value = analogRead (punainen_anturin_pin); viive (50); blue_sensor_value = analoginenLue (blue_sensor_pin); viive (50); green_sensor_value = analoginenLue (green_sensor_pin);
Tulosta nämä arvot sarjamonitoriin virheenkorjausta varten
Serial.println ("Raakakennoarvot:"); Serial.print ("\ t punainen:"); Sarja.tulos (punainen_anturin_arvo); Serial.print ("\ t sininen:"); Sarja.tulos (sininen_anturin_arvo); Serial.print ("\ t Vihreä:"); Serial.println (vihreä_anturin_arvo);
Saamme 0-1023 arvoa antureista, mutta Arduino PWM -nastojen ulostulona on 0-255 arvoa. Joten meidän on muunnettava raaka-arvot 0-255: ksi. Tätä varten meidän on jaettava raaka-arvot 4: llä TAI yksinkertaisesti voimme käyttää Arduinon kartoitusfunktiota näiden arvojen muuntamiseen.
red_led_value = punainen_anturin_arvo / 4; // määritä punainen LED blue_led_value = blue_sensor_value / 4; // määritä sininen LED green_led_value = green_sensor_value / 4; // määritä vihreä led
Tulosta yhdistetyt arvot sarjavalvontaan
Serial.println ("Anturin kartoitetut arvot:"); Serial.print ("\ t punainen:"); Sarja.tulos (punainen_arvo_arvo); Serial.print ("\ t sininen:"); Sarja.tulos (sininen_valkoinen_arvo); Serial.print ("\ t Vihreä:"); Sarja.println (vihreä_lehti_arvo);
Käyttö analogWrite () on asetettu lähtö RGB-LED-
analogWrite (punainen_painettu_puikko, punainen_merkitty_arvo); // ilmoittaa punaisen LED analogWrite (sininen_valkoinen_tappi, sininen_arvon_arvo); // ilmaisee sinisen LED analogWrite (green_led_pin, green_led_value); // osoittaa vihreää
Arduino-värisekoitusvalaisimen toiminta:
Kun käytämme kolmea LDR: ää, niin kun näihin antureihin sattuu valo, sen vastus muuttuu seurauksena jännitteet muuttuvat myös Arduinon analogisissa nastoissa, joka toimii antureiden tulotapina.
Kun valon voimakkuus muuttuu näissä antureissa, sen vastaava RGB-valo hehkuu vastuksen muuttuessa ja meillä on erilainen väri sekoittuminen RGB-ledeissä PWM: n avulla.