Paso 3: Código de tiempo
Autor: Prajjwal
Fecha: 25/07/2014
Versión: 2.0
// -----------------------------------------------------------------------------------------------------
Esto fue cuando se comenzó a hacer una lámpara de estado de ánimo, pero luego me doy cuenta que puedo hacer más que simplemente cambiar el color
Así se hizo LUMO
Tiene varios funtion que hice para stimuate tiempo real situación en la lámpara
Aparte de sólo cambio del arco iris hay un montón de otras funciones que tengo //there de codificación son opción 10 en LUMO versión 2.0
// -----------------------------------------------------------------------------------------------------
flotador RGB [3]; ldrPin int = 0;
LDR en entrada analógica 0 leer el ambientLight int luz ambiente;
variable para almacenar el valor del ambiente luz int rojo = 11;
LED rojo de 11 Pin Digital (PWM) int greenLed = 10;
LED verde de 10 Pin Digital (PWM) int blueLed = 9;
LED azul en el estado de int 9 Pin Digital (PWM);
void setup() {pinMode(redLed,OUTPUT);
decir que arduino es un pinMode(greenLed,OUTPUT) de salida;
decir que arduino es un pinMode(blueLed,OUTPUT) de salida;
decir que arduino que es una salida Serial.begin(9600);
Statrting puerto serie a 9600 bits por segundo Serial.println ("=== LUMO acoge U ==="); Serial.println ("Color 1:Rainbow");
Serial.println ("lámpara de la 2:Police");
Serial.println ("llama de la 3:Digital");
Serial.println ("código 4:Digital");
Serial.println ("6:Abstract color que se descolora");
establece todas las salidas en baja digitalWrite(redLed,HIGH);
digitalWrite(greenLed,HIGH);
digitalWrite(blueLed,HIGH); }
void loop()
{
Si (Serial.available() > 0)
{Si (Serial.peek() == 'c')
{
comprobar el carácter que significa que se trata de un comando
Serial.Read();
eliminar el carácter que significa que esto es un mandamiento del buffer serial
Estado = Serial.parseInt();
almacenar nuestro esperado entero en estado de
Switch (estado) {}
caso 1:changecolor (); break;
caso 2:police (); break;
caso 3:flame (); break;
caso 4:code (); break;
caso 5:abstract (); break;
}
}
mientras que (Serial.available() > 0) {}
Deseche todo lo que no esperábamos
Serial.Read(); } } }
void changecolor()
{
para (float x = 0; x
}}
{} void fade (int r1, int g1, b1 int, int r2, g2 int, int b2, int t)
flotador r_float1, g_float1, b_float1; flotador r_float2, g_float2, b_float2;
flotador grad_r, grad_g, grad_b; flotador output_r, output_g, output_b;
declarar valores RGB valores flotantes
r_float1 = (float) r1;
g_float1 = (float) g1;
b_float1 = (float) b1;
r_float2 = (float) r2;
g_float2 = (float) g2;
b_float2 = (float) b2;
calcular las tasas de cambio de los valores R, G y B
grad_r = (r_float2-r_float1) /t; grad_g = (g_float2-g_float1) /t;
grad_b = (b_float2-b_float1) /t;
lazo redondo, incrementando el valor de la hora "i"
para (float i = 0; i < = t; i ++)
{
output_r = r_float1 + grad_r * i;
output_g = g_float1 + grad_g * i;
output_b = b_float1 + grad_b * i;
mapa valores - arduino se hunde actual, no lo compras
output_r = mapa (output_r, 0, 255, 255, 0);
output_g = mapa (output_g, 0, 255, 255, 0);
output_b = mapa (output_b, 255, 255, 0, 0);
salida analogWrite (rojo, output_r (int));
analogWrite (greenLed, (int) output_g);
analogWrite (blueLed, output_b (int));
Sostenga en este color para 1ms delay(1);
} }
{} void code()
{while(1)}
setColor(5,252,17);
Delay(Random(100,500));
setColor(0,0,0);
Delay(Random(100,500));
}}
void abstract()
{
{while(1)}
flotador de rf, gf, bf, r1, g1, b1;
R1 = random(0,255);
G1 = random(0,255);
B1 = random(0,255);
RF = random(0,255);
GF = random(0,255);
BF = random(0,255);
fade(RF,GF,BF,R1,G1,B1,3000);
se descolora de rojo a verde más de 5 segundos);
} }