Introduction: RGB LED Change of Colours+light Sensor+LCD
this project embed an RGB led that changes colours in a continous manner, an LCD which shows the current colour and the next one, or, in it's different mode, show you the intensity of the sorounding light, when there is enough.the power of the maximum light for the LED not to work can be calibrated easaly throught a change of only one parameter in the code. (power)
You will need: 1. an arduino uno board
2. standard 16*2 LCD
3. common anode RGB LED
4. standard light sensor
5.10K & 330 ohm resistors
step 1. connect the rgb led anode to the uno GND
2. connect the red green & blue legs of the led through 330 ohm resistor to three of the PWM ports of uno
3. connect the light sensor from vcc to gnd through 10K resistor (so that the sensor is "up")
4. connect the second leg of the sensor to A5 analog input of uno.
5. connect the LCD (look at the code or change it for the position of connections-see file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html for reference)
6. after the adjosments of the code, compile and burn it to the UNO and your done :-)
there is a lot for creativity in replacing the light detector by almost every analog sensor... Enjoy!
the code:
#include
#include
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);
void setup() {
lcd.begin(16,2); // start the library
lcd.setCursor(0,0);
}
void loop() {
int power=150;
beg:analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
digitalWrite(8,HIGH);// providing ref V
int a;
a=analogRead(A5);//read the value
char bufg[5];
// convert a to string [buf]
itoa(a,bufg, 10);
lcd.print(itoa(a, bufg, 10));//print value
delay(1000);//delay
lcd.clear();// clear LCD for next iteration
if (a>power) {goto beg;} else {goto next;}// check whether there is light
next:
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, but constant
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 of the RGB to reff vec
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec1[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec1[0]) {r--;} else
if (r
if (g>vec1[1]) {g--;} else
if (g
if (b>vec1[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay (10);
if (r==vec1[0] && g==vec1[1] && b==vec1[2]) break;//this loop zooms the RGB integers to the target vector &output the change with delay
//(repeats for all vectors one after the other)
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec2[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec2[0]) {r--;} else
if (r
if (g>vec2[1]) {g--;} else
if (g
if (b>vec2[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec2[0] && g==vec2[1] && b==vec2[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec4[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec4[0]) {r--;} else
if (r
if (g>vec4[1]) {g--;} else
if (g
if (b>vec4[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec4[0] && g==vec4[1] && b==vec4[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec5[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec5[0]) {r--;} else
if (r
if (g>vec5[1]) {g--;} else
if (g
if (b>vec5[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec5[0] && g==vec5[1] && b==vec5[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec6[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec6[0]) {r--;} else
if (r
if (g>vec6[1]) {g--;} else
if (g
if (b>vec6[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec6[0] && g==vec6[1] && b==vec6[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec3[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec3[0]) {r--;} else
if (r
if (g>vec3[1]) {g--;} else
if (g
if (b>vec3[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec3[0] && g==vec3[1] && b==vec3[2]) break;//the last loop returns the RGB integers to the refference vector-this is critical
// so their won't be any "jumps" in colors
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
goto next;
}
please take notice that the original code was for an LCD shield that is not available and was purchased here:
http://www.dan-e.co.il/index.php?route=common/home
also notice, that the program my contain uneeded parts and is builed "patch over patch" so there is some work to do if you want the code to be "clean" you my also use different ports at the uno, just don't forget to adjust the code for those changes.
good luck :-)
Dekel Ziv
4 Comments
9 years ago on Introduction
can u show the schematic circuit
11 years ago on Introduction
OK weird... it won't copy so good, so see the attached file :-)
sorry for that..
11 years ago on Introduction
ignore the code, it is copied wrong. use this on:
#include // for itoa() call
#include
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5 // read the buttons
int read_LCD_buttons() {
adc_key_in = analogRead(0); // read the value from the sensor
// my buttons when read are centered at thesevalies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in < 10)return btnNONE;
if ((adc_key_in < 195)&& (adc_key_in> 50))return btnRIGHT;
if ((adc_key_in < 500)&& (adc_key_in > 195))return btnUP;
if ((adc_key_in < 700)&& (adc_key_in >500))return btnDOWN;
if ((adc_key_in < 900)&& (adc_key_in >700))return btnLEFT;
if ((adc_key_in < 1023)&& (adc_key_in >900))return btnSELECT;
}
void setup() {
lcd.begin(16,2); // start the library
lcd.setCursor(0,0);
}
void loop() {
int power=150;
beg:analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
digitalWrite(8,HIGH);// providing ref V
int a;
a=analogRead(A5);//read the value
char bufg[5];
// convert a to string [buf]
itoa(a,bufg, 10);
lcd.print(itoa(a, bufg, 10));//print value
delay(1000);//delay
lcd.clear();// clear LCD for next iteration
if (a>power) {goto beg;} else {goto next;}// check whether there is light
next:
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, but constant
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 of the RGB to reff vec
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec1[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec1[0]) {r--;} else
if (r
if (g>vec1[1]) {g--;} else
if (g
if (b>vec1[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay (10);
if (r==vec1[0] && g==vec1[1] && b==vec1[2]) break;//this loop zooms the RGB integers to the target vector &output the change with delay
//(repeats for all vectors one after the other)
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec2[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec2[0]) {r--;} else
if (r
if (g>vec2[1]) {g--;} else
if (g
if (b>vec2[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec2[0] && g==vec2[1] && b==vec2[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec4[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec4[0]) {r--;} else
if (r
if (g>vec4[1]) {g--;} else
if (g
if (b>vec4[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec4[0] && g==vec4[1] && b==vec4[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec5[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec5[0]) {r--;} else
if (r
if (g>vec5[1]) {g--;} else
if (g
if (b>vec5[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec5[0] && g==vec5[1] && b==vec5[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec6[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec6[0]) {r--;} else
if (r
if (g>vec6[1]) {g--;} else
if (g
if (b>vec6[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec6[0] && g==vec6[1] && b==vec6[2]) break;
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
while (1) {
char bufr1[5];
// convert 123 to string [buf]
;
char bufg1[5];
// convert 123 to string [buf]
itoa(vec3[0], bufg1, 10);
char bufb1[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer value to a string
delay(10);
if (r>vec3[0]) {r--;} else
if (r
if (g>vec3[1]) {g--;} else
if (g
if (b>vec3[2]) {b--;} else
if (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
char bufr[5];
// convert 123 to string [buf]
;
char bufg[5];
// convert 123 to string [buf]
itoa(g, bufg, 10);
char bufb[5];
// convert 123 to string [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 the values of rgb led by usinf "itoa" function
//itoa can convert an integer vlue to a string
delay (10);
if (r==vec3[0] && g==vec3[1] && b==vec3[2]) break;//the last loop returns the RGB integers to the refference vector-this is critical
// so their won't be any "jumps" in colors
digitalWrite(8,HIGH);// providing ref V
a=analogRead(A5);//read
if (a>power) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);
goto beg;}
}
goto next;
}
11 years ago on Introduction
I'm sorry for the (very) messy instructions, just getting to know this site & how to use it... anyway, if you have any questions, please feel free to ask me & if i'd know the answer i will tell you. good luck!