RGB LED wijzigen van kleuren, lichte sensor + LCD


dit project insluiten een RGB led dat veranderingen kleuren op een continue wijze, een LCD waarop de huidige kleur en het volgende, of, in het heeft verschillende modus, Toon u de intensiteit van het licht van de sorounding, als er enough.the macht van het maximale licht voor de LED niet aan het werk kan worden gekalibreerd easaly door een verandering van slechts één parameter in de code. (kracht)

U zult moeten: 1. een arduino uno board
2. standaard 16 * 2 LCD
3. gemeenschappelijke anode RGB LED
4. standaard lichtsensor
5.10K & 330 ohm weerstanden

stap 1. de rgb led anode verbinden met de uno GND
2. Sluit de rode groen & blauwe benen van de led door de weerstand van 330 ohm tot drie van de PWM-poorten van de uno
3. Sluit de lichtsensor van vcc aan gnd via 10K Ohm weerstand (zodat de sensor is "up")
4. Sluit de tweede etappe van de sensor aan de analoge ingang van de A5 voor uno.
5. verbind ik het LCD (kijk naar de code of wijzigen naar de positie van verbindingen-Zie file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html voor referentie)
6. na het adjosments van het Wetboek, compileren en brandwond op voor de UNO en je bent klaar :-)
Er is veel voor creativiteit in de vervanging van de licht detector door bijna elke analoge sensor... Geniet van!
de code:

#include / / voor itoa() gesprek
#include
LiquidCrystal lcd (7, 6, 2, 3, 4, 5);

VOID Setup {}
LCD.begin(16,2);              Start de bibliotheek
lcd.setCursor(0,0);

}

void loop {}
int macht = 150;

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

digitalWrite(8,HIGH); / / verstrekken van ref V
int;
een = analogRead (A5); //read de waarde

char bufg [5];
converteert een tekenreeks [buf]
Itoa (a, bufg, 10);
LCD.Print (itoa (a, bufg, 10)); //print waarde
vertraging (1000); //delay
LCD.Clear(); / / clear LCD voor de volgende iteratie
Als (een > macht) {goto smeken;} else {goto komende;} Controleer of er licht
volgende:
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 vector-random, maar constante
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 van de RGB naar reff vec
terwijl (1) {}
char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec1 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks
delay(10);


Als (r > vec1[0]) {r--;} else
Als (r

Als (g > vec1[1]) {g--;} else
Als (g

Als (b > vec1[2]) {b--;} else
Als (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks
vertraging (10);
Als (r == vec1 [0] & & g == vec1 [1] & & b==vec1[2])-einde; //this lus zoomt de gehele getallen van RGB naar het doel vector & output van de verandering met vertraging
(wordt herhaald voor alle vectoren een na de ander)
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}
}

terwijl (1) {}

char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec2 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks

delay(10);
Als (r > vec2[0]) {r--;} else
Als (r

Als (g > vec2[1]) {g--;} else
Als (g

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

char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een vlue geheel getal converteren naar een tekenreeks

vertraging (10);
Als (r == vec2 [0] & & g == vec2 [1] & & b==vec2[2]) onderbreking;
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}

}


terwijl (1) {}

char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec4 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks
delay(10);

Als (r > vec4[0]) {r--;} else
Als (r

Als (g > vec4[1]) {g--;} else
Als (g

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

char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een vlue geheel getal converteren naar een tekenreeks

vertraging (10);
Als (r == vec4 [0] & & g == vec4 [1] & & b==vec4[2]) onderbreking;
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}

}


terwijl (1) {}

char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec5 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks

delay(10);
Als (r > vec5[0]) {r--;} else
Als (r

Als (g > vec5[1]) {g--;} else
Als (g

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

char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een vlue geheel getal converteren naar een tekenreeks

vertraging (10);
Als (r == vec5 [0] & & g == vec5 [1] & & b==vec5[2]) onderbreking;
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}

}

terwijl (1) {}

char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec6 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks

delay(10);
Als (r > vec6[0]) {r--;} else
Als (r

Als (g > vec6[1]) {g--;} else
Als (g

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

char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een vlue geheel getal converteren naar een tekenreeks

vertraging (10);
Als (r == vec6 [0] & & g == vec6 [1] & & b==vec6[2]) onderbreking;
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}

}

terwijl (1) {}

char bufr1 [5];
123 converteren naar tekenreeks [buf]
;
char bufg1 [5];
123 converteren naar tekenreeks [buf]
Itoa (vec3 [0], bufg1, 10);
char bufb1 [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een geheel getal converteren naar een tekenreeks

delay(10);
Als (r > vec3[0]) {r--;} else
Als (r

Als (g > vec3[1]) {g--;} else
Als (g

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


char bufr [5];
123 converteren naar tekenreeks [buf]
;
char bufg [5];
123 converteren naar tekenreeks [buf]
Itoa (g, bufg, 10);
char bufb [5];
123 converteren naar tekenreeks [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 de waarden voor rgb led door usinf "itoa"-functie
Itoa kan een vlue geheel getal converteren naar een tekenreeks
vertraging (10);
Als (r == vec3 [0] & & g == vec3 [1] & & b==vec3[2])-einde; //the laatste lus geeft als resultaat de RGB gehele getallen tot de referentie vector-dit is van cruciaal belang
dus hun zullen niet alle "sprongen" in de kleuren
digitalWrite(8,HIGH); / / verstrekken van ref V

een = analogRead (A5); //read
Als (een > macht) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

goto smeken;}

}
goto volgende;
}

Neem merk op dat de oorspronkelijke code was voor een LCD schild dat is niet beschikbaar en hier werd gekocht:
http://www.dan-e.co.Il/index.php?route=common/Home
ook opmerken, dat het programma mijn uneeded delen bevatten en is builed "patch over patch" dus er wat werk is te doen als u wilt dat de code "schoon" u mijn ook gebruik maken van verschillende havens in het uno, vergeet dan niet om de code voor deze wijzigingen.

goed geluk :-)
Dekel Ziv

Labels: RGB, Uno, Lcd, Lichtsensor

Gerelateerde Artikelen

Met behulp van een RGB-LED te detecteren kleuren

Met behulp van een RGB-LED te detecteren kleuren

I 'm gonna Toon u hoe u kunt een RGB LED en een fotocel cd's als de sensor van een kleur voor een micro-controller. Ik zal illustreren de methode om op te halen van een kleur met behulp van Arduino, en ik zal u tonen hoe u kunt controleren of de kleu
Multi Color Light Up Glowing zwaard - RGB-LEDs voor schilderen met licht.

Multi Color Light Up Glowing zwaard - RGB-LEDs voor schilderen met licht.

ik heb nieuwe messen voor mijn ruitenwissers en het pakket direct maakte me wilt beginnen met het zwaard vechten. Blinky lichte zwaarden voor schilderen met licht?!?! JA!!!U kunt dit project voor:Fotografie speciale effecten genaamd schilderen met li
Wijzigen van de omvormer in LCD scherm van de desktop

Wijzigen van de omvormer in LCD scherm van de desktop

dus, u uw computer hebt aangezet, en toen zag het opstarten zoals gewoonlijk, maar toen ging het plotseling leeg. Dus u wilt opnieuw voor sommige vreemde reden, maar vervolgens erachter te komen dat er een probleem is.Uw probleem is: de omvormer (ver
Het wijzigen van kleuren naadloos in haak... Zonder dat bruggetje!

Het wijzigen van kleuren naadloos in haak... Zonder dat bruggetje!

Weet u hoe kleuren in haak wijzigen? Zoja, hoe zit naadloos? Dit is een echt cool truc toe te voegen in een nieuwe kleur en maken het kijken perfecte!Als u bekend bent met de toetreding in een nieuwe kleur... je weet dat je krijgt als normaal toe te
RGB led spinner

RGB led spinner

ik heb dit een tijdjerug, vrij gemakkelijk, maar ziet er geweldig uit!gebruikte onderdelen12V motorstukken van protoboardkan een soort2 RGB LEDs (degenen met 2 pinnen) wijzigenwat draad2 schakelaars9V batterij + clip3V coincellvideo geüpload:Let op:
Bits bonzen stapsgewijze: controle van de Arduino voor WS2811, WS2812 en WS2812B RGB LED's

Bits bonzen stapsgewijze: controle van de Arduino voor WS2811, WS2812 en WS2812B RGB LED's

Disclaimer: in het afgelopen jaar, een paar verschillende bibliotheken zijn geschreven voor het beheersen van deze alomtegenwoordige RGB LEDs door collega makers van Adafruit, PJRC en het FastSPI-project.  De bibliotheken werken prima, en we moeten p
Gebruik een ATTiny $1 te rijden van adresseerbare RGB LED's

Gebruik een ATTiny $1 te rijden van adresseerbare RGB LED's

Arduinos zijn prachtig en makkelijk om mee te werken, maar er zijn enkele projecten waar u moeten een microcontroller, of sommige interactiviteit wilt toevoegen maar wil eigenlijk niet te wijden een $20-30 board!Bij een weinig meer dan $1/elke (minde
Geketend mood light met behulp van krachtige RGB LED's

Geketend mood light met behulp van krachtige RGB LED's

ik heb gestart: dit project meer dan een jaar geleden en werken op het aan en uit sindsdien. Nu is het eindelijk gedaan.Het doel was om een mooi uitziende mood light voor mijn woonkamer, geïnspireerd door een standaard verlichting console een vriend
Geluid reactieve RGB LED Piano licht!

Geluid reactieve RGB LED Piano licht!

Hey iedereen! It's Christmas, en de laatste tijd ik been playing rond met LED's en mijn Arduino alot. Ik heb dit geweldige idee van de verlichting omhoog mijn buffetpiano terwijl knutselen met sommige RGB LED strips. De RGB-LEDs stoten licht dat word
Het gebruik van een RGB-LED

Het gebruik van een RGB-LED

met een RGB LED u alle kleuren kunt doorlopen. Nuttig om te maken, Mood Lamp, expressieve robot of cool lichteffecten.Maar om gewoon de kleur (Hue) kan een beetje lastig omdat je moet converteren die naar individuele helderheidswaarde voor elk van de
Skyline van RGB-LED-Lamp

Skyline van RGB-LED-Lamp

dit is de eerste versie van mijn Lamp Skyline. Het circuit en de code die wordt uitgevoerd van de microprocessor waren alle ontwikkeld met behulp van de Arduino omgeving en dan zodra ik blij dat alles werkte was zoals ik wilde dat het maakte ik mijn
RGB LED Driver met behulp van IC 74c 14: No Arduino!

RGB LED Driver met behulp van IC 74c 14: No Arduino!

Dit eenvoudige project drijft een RGB LED. Verschillende kleuren kunnen willekeurig worden geproduceerd en ziet er meer prachtig wanneer een rietje wordt gebruikt als een diffuser. 3 Schmitt Trigger oscillatoren + 3 uses slechts opwaarts van fader ci
Arduino RGB LED Lamp + 4 bit LCD Display

Arduino RGB LED Lamp + 4 bit LCD Display

dit is mijn eerste instructable!!! yay...Voordat ik verder ga. Ik niet ingaan op details van hoe het hout hakken, of alles samen stuk. Ik freestyled het gehele bouwproces, wat me opkwam is wat ik gereproduceerd. Het punt van dit instructable is te ku
RGB-Led klok met Bluetooth Smart

RGB-Led klok met Bluetooth Smart

Dit instructable ziet u hoe u een Cypress-BLE-Devkit wilt samenstellen van een RGB-LED-klok.U moet slechts zeer weinig dingen:RGB-LED-Strip met 30 of 60 WS2812b-LEDs.een rasterstijl PC boardsommige pennen pin-header en een beetje van draad.een (zou e