Cambio de LED RGB de colores, sensor de luz + LCD

este proyecto incrustar un RGB led que cambia de colores de manera continua, una pantalla LCD que muestra el color actual y el siguiente, y en él ha de diverso modo, mostrar que la intensidad de la luz equipados, cuando hay enough.the energía de la luz máxima para el LED no para trabajar puede ser calibrada easaly a través de un cambio de sólo un parámetro en el código. (energía)

Se necesita: 1. una placa de arduino uno
2. estándar de 16 * 2 LCD
3. común ánodo RGB LED
4. estándar sensor de luz
5,10 K y 330 ohm resistencias

Paso 1. conectar el ánodo rgb llevado a la ONU GND
2. Conecte las piernas rojo verdes y azules del led a través de la resistencia de 330 ohm a tres de los puertos PWM de la ONU
3. Conecte el sensor de luz de vcc a gnd a través de la resistencia de 10K (de modo que el sensor está "arriba")
4. Conecte la segunda etapa del sensor a entrada analógica A5 de la ONU.
5. Conecte la pantalla LCD (mirar el código o cambiar la posición de conexiones ver file:///D:/My%20Documents/Arduino/arduino-1.0.1/reference/LiquidCrystalConstructor.html para la referencia)
6. después de la adjosments del código, compilar y grabar a la ONU y listo :-)
hay mucha creatividad en cambiar la luz por casi cada sensor análogo... ¡ Disfrute!
el código:

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

void setup() {}
LCD.Begin(16,2);              iniciar la biblioteca
lcd.setCursor(0,0);

}

void loop() {}
int potencia = 150;

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

digitalWrite(8,HIGH); / / proporcionar ref V
int a;
un = analogRead (A5); //read el valor

bufg Char [5];
convertir una cadena [buf]
itoa (, bufg, 10);
LCD.Print (itoa (, bufg, 10)); //print valor
Delay (1000); //delay
LCD.Clear(); / / clear LCD para la siguiente iteración
Si (un > poder) {beg goto;} else {goto siguiente;} Compruebe si hay luz
siguiente:
int vec2[3]={random(255),random(130),random(30)}; //random vec2
int vec1[3]={random(255),random(130),random(30)}; //random vec1
vec3 int [3] = {234,100,20}; //reff vector-random, pero 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 de RGB a vec reff
mientras que {} (1)
char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec1 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena
Delay(10);


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

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

Si (b > vec1[2]) {b--;} else
Si (b
analogWrite(11,b);
analogWrite(10,g);
analogWrite(9,r);
bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena
Delay (10);
Si (r == vec1 [0] & & g == vec1 [1] & & break b==vec1[2]); //this zooms de lazo los enteros RGB en el destino del vector y el cambio con retraso de salida
(se repite para todos los vectores uno después del otro)
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}
}

mientras que {} (1)

char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec2 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay(10);
Si (r > vec2[0]) {r--;} else
Si (r

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

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

bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay (10);
Si (r == vec2 [0] & & g == vec2 [1] & & rotura de la b==vec2[2]);
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}

}


mientras que {} (1)

char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec4 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena
Delay(10);

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

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

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

bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay (10);
Si (r == vec4 [0] & & g == vec4 [1] & & rotura de la b==vec4[2]);
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}

}


mientras que {} (1)

char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec5 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay(10);
Si (r > vec5[0]) {r--;} else
Si (r

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

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

bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay (10);
Si (i == vec5 [0] & & g == vec5 [1] & & rotura de la b==vec5[2]);
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}

}

mientras que {} (1)

char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec6 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay(10);
Si (r > vec6[0]) {r--;} else
Si (r

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

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

bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay (10);
Si (i == vec6 [0] & & g == vec6 [1] & & rotura de la b==vec6[2]);
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}

}

mientras que {} (1)

char bufr1 [5];
convertir 123 en cadena [buf]
;
char bufg1 [5];
convertir 123 en cadena [buf]
itoa (vec3 [0], bufg1, 10);
char bufb1 [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena

Delay(10);
Si (r > vec3[0]) {r--;} else
Si (r

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

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


bufr Char [5];
convertir 123 en cadena [buf]
;
bufg Char [5];
convertir 123 en cadena [buf]
itoa (g, bufg, 10);
char bufb [5];
convertir 123 en cadena [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 los valores de rgb led por usinf "itoa" función
itoa puede convertir un valor entero a una cadena
Delay (10);
Si (r == vec3 [0] & & g == vec3 [1] & & break b==vec3[2]); //the lazo pasado devuelve los enteros RGB a la referencia de este vector es fundamental
por lo que su no será ningún "saltos" en colores
digitalWrite(8,HIGH); / / proporcionar ref V

un = analogRead (A5); //read
Si (a > energía) {analogWrite(11,0);
analogWrite(10,0);
analogWrite(9,0);

Goto beg;}

}
Goto siguiente;
}

por favor observe que el código original era por una pantalla LCD que no está disponible y fue comprada aquí:
http://www.dan-e.co.il/index.php?Route=Common/Home
Observe también, que el programa mi contienen partes innecesarios y es construido "parche sobre parche" hay algún trabajo para hacer si desea que el código "limpio" mi también utilizar puertos diferentes en la ONU, sólo no olvides ajustar el código para esos cambios.

buena suerte :-)
Dekel Ziv

Etiquetas: Lcd, RGB, Uno, Sensor de luz

Artículos Relacionados

Sensor ping controlar LEDS RGB

Sensor ping controlar LEDS RGB

Como parte de mi proyecto este semestre necesitaba ser capaces de controlar unos LEDs RGB usando un sensor ping. Para mi proyecto he querido mi LED a desaparecer a través de colores pero cuando alguien muy cercano al proyecto que quería los LEDs rojo
Control LED RGB utilizando Amarino Nano 1.0

Control LED RGB utilizando Amarino Nano 1.0

Qué es Amarino Nano 1.0Este es mi nuevo kit de bricolaje para Android-Arduino comunicación vía Bluetooth.Amarino Nano particularmente usa Arduino Nano, así que usé el título como 'Nano'. Es un juego muy simple para probar la mayoría de las funciones
Pruebas de LED y varios sensores de luz

Pruebas de LED y varios sensores de luz

Dos circuitos que estaba haciendo, un sensor de proximidad y un perseguidor del sol, no funcionaban como era de esperar, y así que decidí probar la sensibilidad de los sensores de luz estos circuitos utilizados. En la investigación del tema, me ha so
Arduino: LED de uso como un sensor de luz

Arduino: LED de uso como un sensor de luz

hace un tiempo leí un blog sobre el uso de un LED normal como un sensor de luz. Después de navegar por Internet, encontré que todos los ejemplos que he encontrado no funcionaban bien o duro de leer. Entonces me topé con este instructable:Sin embargo,
Usando un LED RGB para detectar colores

Usando un LED RGB para detectar colores

te voy a mostrar cómo se puede utilizar un LED RGB y una fotocélula Cds como un sensor de color para un microcontrolador. Ilustrará el método para recuperar un color usando Arduino, y le mostrará un cómo usted puede verificar el color se analizan con
Color calibrar LEDs RGB con un Arduino

Color calibrar LEDs RGB con un Arduino

Más gente cree LED y al final de las relaciones de Arduino con un abrir y cerrar del bosquejo. Después de eso tienes que ir hacia motores, casas inteligentes y otras cosas 'serio'. Bueno, tal vez soy lento o tal vez es sólo que soy un artista gráfico
Selector de Color de LED RGB

Selector de Color de LED RGB

uno de los desafíos de trabajar con LEDs RGB está haciendo la derecha valores rojo, verde y azul para que coincida con un color que está intentando mostrar.  Puede iniciar con los colores de la web y luego a veces necesitará ajustar ya que los LEDs n
Sensor (Digital con filtros RGB) del color

Sensor (Digital con filtros RGB) del color

Este es el módulo de sensor de alta precisión digital I2C color. Se basa en el sensor de TCS3414CS. La teoría de trabajo del sensor se basa en filtros de color y fotodiodos. TCS3414CS incluye 16 fotodiodos y 12 filtros de color: 4 filtros verdes (pas
Ciclo de un LED RGB por todo el espectro de color con un Raspberry Pi 2 y cero

Ciclo de un LED RGB por todo el espectro de color con un Raspberry Pi 2 y cero

Actualización de notas Jueves, 25 de febrero de 2016 : He mejorado el programa Scratch y rediseñado mi instructable.Hola chicos, con este proyecto que quise utilizar Scratch para un LED RGB por todo el espectro de color.Hay una carga de proyectos hac
Lámpara de Sensor de movimiento LED RGB

Lámpara de Sensor de movimiento LED RGB

Materiales y herramientas necesarias:Arduino UnoSensor de movimiento PIR1, LEDresistencia de 220 ohmios 1,Cables de puenteProtoboardEncogimiento del calorViruta del IC SN75468N 16 pin3, transistores MOSFET N-channel (ordené mina de Adafruit)Relé de D
Multi Color luz espada que brilla intensamente - LEDs RGB para pintar con luz.

Multi Color luz espada que brilla intensamente - LEDs RGB para pintar con luz.

acabo de láminas nuevas para mi limpiaparabrisas y el paquete al instante me hizo querer empezar a luchar de la espada. Espadas de luz Blinky para pintar con la luz ¡ SÍ!!!!!!Puede crear este proyecto para:Efectos especiales de fotografía llamado la
BRICOLAJE iluminación de color con LEDs RGB

BRICOLAJE iluminación de color con LEDs RGB

había sido buscando algunos iluminación única y ideas para decorar mi sala ya que pasé en mi nuevo lugar (cuatro paredes blanco llano consiguen bastante aburrido, bastante rápido). Yo había hecho sobre todo podría con las paredes, pero todavía estaba
LED RGB barato y fácil de color cambiante luz de la noche

LED RGB barato y fácil de color cambiante luz de la noche

este proyecto fue bastante fácil una vez que jugaba y lo calculado hacia fuera, que tomó un tiempo.La idea es poder cambiar el color con un interruptor y tiene un led dimmer opciones también.  Estos son los artículos que usted necesitará para complet
Juego cyber de LED a todo color! (adicional instructables para NES Powerglove control, EQ de Audio en vivo, etc. seguir!)

Juego cyber de LED a todo color! (adicional instructables para NES Powerglove control, EQ de Audio en vivo, etc. seguir!)

** Crédito a LVL1 Hackerspace para comenzarme hacia abajo el camino de la obsesión de LED y ofrece conexiones a algunas personas quienes han sido asombrosos recursos durante los años www.lvl1.org **Simplemente no pude resistir creando un instructable