RGB LED ändring av färger + ljussensor + LCD



detta projekt bädda in RGB ledde som ändrar färger på ett kontinuerligt sätt, en LCD-skärm som visar den aktuella färgen och den nästa, eller, i det har olika läge, Visa du intensiteten i sorounding ljus, när det finns enough.the kraften i den maximala ljuset för att Lamporna inte att arbeta kan vara kalibrerad easaly genom en ändring av endast en parameter i koden. (power)

Behöver du: 1. en arduino uno ombord
2. standard 16 * 2 LCD
3. gemensam anod RGB LED
4. standard ljussensor
5.10 Karlsson & 330 ohm motstånd

steg 1. ansluta rgb ledde anoden till uno GND
2. Anslut de röda grön & blå ben av led genom 330 ohm resistor till tre PWM hamnar i uno
3. Anslut ljussensorn från vcc till gnd genom 10K resistor (så att sensorn är "up")
4. Anslut den andra delen av sensorn till A5 analog ingång av uno.
5. Anslut LCD (titta på koden eller ändra den för placera av anslutningar-se file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html för referens)
6. efter adjosments i koden, sammanställa och bränna den till UNO och din gjort :-)
Det finns en hel del för kreativitet i att ersätta de ljus detektorn av nästan varje analog sensor... Njut!
koden:

#include / / för itoa() samtal
#include
LiquidCrystal lcd (7, 6, 2, 3, 4, 5);

void setup() {
LCD.BEGIN(16,2); Starta biblioteket
lcd.setCursor(0,0);

}

void loop() {
int power = 150;

beg:analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

digitalWrite(8,HIGH); / / som tillhandahåller ref V
int a;
en = analogRead (A5); //read värdet

char bufg [5].
konvertera en sträng [buf]
itoa (en, bufg, 10);
LCD.Print (itoa (en, bufg, 10)), //print värde
fördröjning (1000); //delay
LCD.Clear(); / / clear LCD för nästa iteration
om (en > power) {goto tigga;} annat {goto nästa;} Kontrollera om det finns ljus
Nästa:
int vec2[3]={random(255),random(130),random(30)}; //random vec2
int vec1[3]={random(255),random(130),random(30)}; //random vec1
int vec3 [3] = {234,100,20}; //reff vektor-random, men konstant
int vec4[3]={random(255),random(130),random(30)}; //random vec4
int vec5[3]={random(255),random(130),random(30)}; //random vec5
int vec6[3]={random(255),random(130),random(30)}; //random vec6

int r = vec3 [0];
int g = vec3 [1];
int b = vec3 [2]. //initiation av RGB till reff vec
samtidigt (1) {
char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec1 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec1 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec1 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec1 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec1 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng
Delay(10);

om (r > vec1[0]) {r--;} annat
om (r

om (g > vec1[1]) {g--;} annat
om (g

om (b > vec1[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng
fördröjning (10).
om (r == vec1 [0] & & g == vec1 [1] & & b==vec1[2]) break; //this loop zoomar RGB heltalen till målet vektor & utgång ändringen med fördröjning
(upprepas för alla vektorer en efter den andra)
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}
}

samtidigt (1) {

char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec2 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec2 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec2 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec2 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec2 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng

Delay(10);
om (r > vec2[0]) {r--;} annat
om (r

om (g > vec2[1]) {g--;} annat
om (g

om (b > vec2[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);

char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera vlue ett heltal till en sträng

fördröjning (10).
om (r == vec2 [0] & & g == vec2 [1] & & b==vec2[2]) semester.
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}

}

samtidigt (1) {

char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec4 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec4 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec4 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec4 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec4 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng
Delay(10);

om (r > vec4[0]) {r--;} annat
om (r

om (g > vec4[1]) {g--;} annat
om (g

om (b > vec4[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);

char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera vlue ett heltal till en sträng

fördröjning (10).
om (r == vec4 [0] & & g == vec4 [1] & & b==vec4[2]) semester.
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}

}

samtidigt (1) {

char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec5 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec5 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec5 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec5 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec5 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng

Delay(10);
om (r > vec5[0]) {r--;} annat
om (r

om (g > vec5[1]) {g--;} annat
om (g

om (b > vec5[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);

char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera vlue ett heltal till en sträng

fördröjning (10).
om (r == vec5 [0] & & g == vec5 [1] & & b==vec5[2]) semester.
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}

}

samtidigt (1) {

char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec6 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec6 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec6 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec6 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec6 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng

Delay(10);
om (r > vec6[0]) {r--;} annat
om (r

om (g > vec6[1]) {g--;} annat
om (g

om (b > vec6[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);

char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera vlue ett heltal till en sträng

fördröjning (10).
om (r == vec6 [0] & & g == vec6 [1] & & b==vec6[2]) semester.
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}

}

samtidigt (1) {

char bufr1 [5].
konvertera 123 strängen [buf]
;
char bufg1 [5].
konvertera 123 strängen [buf]
itoa (vec3 [0], bufg1, 10);
char bufb1 [5].
konvertera 123 strängen [buf]
itoa (vec3 [1], bufb1, 10);
LCD.Clear();
lcd.setCursor(0,1);
LCD.Print ("R:");
LCD.Print (itoa (vec3 [0], bufr1, 10));
LCD.Print ("G:");
LCD.Print (itoa (vec3 [1], bufg1, 10));
LCD.Print ("B:");
LCD.Print (itoa (vec3 [2], bufb1, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera ett heltal till en sträng

Delay(10);
om (r > vec3[0]) {r--;} annat
om (r

om (g > vec3[1]) {g--;} annat
om (g

om (b > vec3[2]) {b--;} annat
om (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);

char bufr [5].
konvertera 123 strängen [buf]
;
char bufg [5].
konvertera 123 strängen [buf]
itoa (g, bufg, 10);
char bufb [5].
konvertera 123 strängen [buf]
itoa (b, bufb, 10);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("R:");
LCD.Print (itoa (r, bufr, 10));
LCD.Print ("G:");
LCD.Print (itoa (g, bufg, 10));
LCD.Print ("B:");
LCD.Print (itoa (b, bufb, 10)); / / prins värden för rgb led av usinf "itoa" funktion
itoa kan konvertera vlue ett heltal till en sträng
fördröjning (10).
om (r == vec3 [0] & & g == vec3 [1] & & b==vec3[2]) break; //the sista slinga returnerar RGB heltalen till hänvisning vektor-detta är kritiska
så deras kommer inte att vara någon "hopp" i färger
digitalWrite(8,HIGH); / / som tillhandahåller ref V

en = analogRead (A5), //read
om (en > power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

gå till tigga;}

}
gå till nästa;
}

Vänligen uppmärksamma att den ursprungliga koden för en LCD sköld som inte är tillgänglig och köptes här:
http://www.Dan-e.co.Il/index.php?Route=common/Home
också märka, att programmet min uneeded på delar och är uppfört "patch över patch" så det finns lite arbete för att göra om du vill att koden till vara "ren" du min också använda olika portar på uno, glöm bara inte att justera koden för dessa förändringar.

bra lycka till :-)
Dekel Ziv

Relaterade Ämnen

RGB LED Driver med IC 74c 14: nr Arduino!

Detta enkla projekt driver en RGB LED. Flera färger kan produceras slumpmässigt och ser mer fantastiskt när ett sugrör som en diffusor. Bara använder 3 Schmitt Trigger oscillatorer + 3 upp ner fader kretsar. Se videon för kopplingsschema och monterin...

RGB LED färgblandning touch leksak för barn

jag vill skapa en interaktiv leksak för mina barn att spela med mig. Vi håller händerna tillsammans sedan RGB-LED visar olika färger. Håller hårdare eller ljusare eller touch olika delar av varandras organ kommer att visa olika färger. dvs kommer att...

Använder en RGB LED att upptäcka färger

jag kommer att visa dig hur du använder en RGB LED och CD-skivor fotocell som en färg sensor för en mikro-controller. Jag kommer att illustrera metoden för att hämta en färg genom att använda Arduino, och jag kommer att visa dig en hur du kan kontrol...

Arduino RGB LED lampa + 4 bitars LCD-skärm

detta är min första instructable!!! Yay...Innan jag fortsätter. Jag inte gå in på Detaljer för hur man skär trä, eller pussla ihop allt. Jag freestyled hela byggprocessen, vilken kom att tänka på är vad jag reproduceras. Poängen med detta instructabl...

Monovelo Monowheel LED ändring

jag köpte en Monovelo Monowheel ett par år tillbaka. Jag tror de sågs först i Peking 2008. Företaget som gjorde dem sålde dem för allmänheten efteråt. De kommer med eller utan lysdioder i dem redan. Om du får en med, har du 3 val. Röd, vit eller blå....

RGB LED Tutorial (med en Arduino) (RGBL)

Lysdioder är bra. Men med alla projekt man kommer till en punkt där blinkande inte räcker. För dessa fall RGB (röd, grön, blå) är LED svaret.Med en RGB LED du kommer att kunna producera någon färg lyser ditt hjärta önskar.På första använder en RGB LE...

10W RGB LED-ljus målning multiverktyg

Måla med ljus eller 'Ljus målning' använder ljus där en traditionell målare skulle använda färg, så i ljus målning i stället för en traditionell pensel konstnären använder en ljuskälla. bara om någon ljuskälla kan användas som ett ljus målning verkty...

8X8X8 3D RGB LED Cube

Det har varit en lång tid kommer, men min universella RGB kub är äntligen klar!Nu kan vi köra animationer och används av både Kevin Darrah och Nick Schulze (något modifierad, men i grunden identiskt - moll timing och lager kontroll tweaks var allt so...

Accent belysning/dekorera RGB LED Ljuslister

Om du inte har hoppade på tåget RGB din miste om vad som kan vara nästa våg av belysning för alla dina behov. Den är mångsidig, böjer sig runt allt och har möjligheten för tusentals olika färger. Dekorera ditt hus med dessa remsor av LED RGB (röd grö...

RGB LED Pixel Touch reaktiva Gaming tabell

Tabeller är användbara saker att ha och som vi behövde ett nytt soffbord för vardagsrummet det är meningsfullt att bygga min egen med några extra elektroniska funktioner.Min tabelldesign består av följande funktioner.10 x 16 RGB lysdioder10 x 16 IR t...

Med en enda RGB LED (eller en LED strip) för att visa information: klocka, termometer och en konstig kommunikatör

En av de första projekten som jag gjorde med en Arduino var en jul ljus krans. I själva verket var det tillverkade av en enkel RGB LED strip skär i två, som Arduino har endast 6 hårdvara PWM utgångar. Jag ville inte det att Visa trivial regnbågar och...

RGB LED Snowboard med Arduino Uno R3

Detta instructable förklarar hur man styr en RGB LED strip med en Arduino. I det här fallet monteras LED strip en snowboard. RGB (röd grön blå) lysdioder har förmågan att visa en mängd olika färger baserat på slå på och av röd, grön och blå lysdioder...

Kromatiska temperatur Display - Arduino kontrollerad RGB LED Infinity Mirror

Detta projekt var löst inspirerad av , en väderstation display vars färg är baserad på utomhustemperaturen. Jag hade en rumskompis College som hade en av dessa och det var mycket användbart, i Pittsburgh särskilt, att bara kasta en blick på färgen oc...

RGB LED färg väljare

en utmaning med att arbeta med RGB-lysdioder är att få rätt röd, grön och blå värden ska matcha en färg som du försöker Visa. Du kan börja med webbfärger och sedan ibland behöva justera dem eftersom lysdioderna inte ser ganska likadana ut som de gör...

Snabb & lätt RGB-LED testare

Har du någonsin byggt ett projekt med en massa lysdioder, och fick veta att en av lamporna var defekt? Även om det är något sällsynt, finns det några defekta lysdioder när du går igenom hundratals av dem. Jag hittade att RGB-LED har hög fel kurs, tro...

RGB LED Mood Light w / ATtiny85

de kallar dessa saker Humör ljus.Vet inte varför. Jag antar att ändra färger sätta vissa människor på gott humör.Även om jag har observerat att när folk ser på detta humör ljus tenderar det att få en liknande effekt som stirrar på en lägereld eller e...

RGB LED skulptur

jag beslutat att lägga upp detta projekt om du vill ange Instructable motivtävlingen och göra det glöd tävling. Detta är en logotyp som min vän har utformats för sitt band (Rhyme & anledning). Han gav mig möjlighet att föra hans band logotyp till liv...

Raspberry Pi spektrumanalysator med RGB LED Strip och Python

söker ett första projekt att prova på en Raspberry Pi, jag men vad bättre än en spektrumanalysator? (Denna display är felaktigt kallas som en grafisk equalizer--låt oss ändra ljudet, inte Visa det)Jag kunde få det gör 2048pt FFTs och avkodning mp3s i...

RGB LED belysning effekter med Adafruit prydnadssak

Detta instructable är att göra programmerbara ljuseffekter som använder en RGB LED (detta är en LED som innehåller enskilda element som rött, grönt och blått) och låg kostnad Adafruit prydnadssak mikrokontroller. Dessa lampor kan användas och återanv...