Paso 2: Tiempo de código!
Escriba el código anterior en el programa de Arduino.Más oscura es la luz ambiental, mayor es el valor de la LDR.
Utiliza PWM para led de cambio de brillo.
Lámpara de estado de ánimo RGB lisa
Cambia el color de un LED RGB sin problemas que sólo se convierte en
cuando está oscuro alrededor de ella.
Autor: Ricardo Ouvina
Fecha: 19/07/2012
Versión: 2.0
// ---------------------------------------------------
El brillo de los LED sigue estas ecuaciones:
Rojo = Sen (x)
Verde = pecado (x + PI/3)
Azul = pecado (x + 2PI/3)
para x de 0 a PI
// ---------------------------------------------------
flotador RGB [3];
ldrPin int = 0; LDR en entrada analógica 0 a leer la luz ambiental
ambientLight int; variable para almacenar el valor de la luz ambiental
int rojo = 11; LED rojo en Digital Pin 11 (PWM)
greenLed int = 10; LED verde en la 10 del Pin Digital (PWM)
blueLed int = 9; LED azul en la 9 Pin Digital (PWM)
void setup() {}
pinMode(redLed,OUTPUT); decir que arduino que es una salida
pinMode(greenLed,OUTPUT); / / enviar a arduino es una salida
pinMode(blueLed,OUTPUT); decir que arduino que es una salida
configurar todas las salidas a bajo
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
void loop() {}
para (float x = 0; x < PI; x = x + 0.00001) {}
RGB[0]=255*ABS(sin(x*(180/PI))); calcular el brillo para el led rojo
RGB[1]=255*ABS(sin((x+PI/3)*(180/PI))); calcular el brillo para el led verde
RGB[2]=255*ABS(sin((x+(2*PI)/3)*(180/PI))); / / calcular la luminosidad azul led
ambientLight=analogRead(ldrPin); leer un almacén de la luz ambiental
if(ambientLight>600) {/ / comenzar sólo si la luz ambiental es muy baja
escribir el brillo de los leds
analogWrite(redLed,RGB[0]);
analogWrite(greenLed,RGB[1]);
analogWrite(blueLed,RGB[2]);
}
Else {}
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
para (int i = 0; i < 3; i ++) {}
Si (RGB [i] < 1) {}
Delay(100);
}
Si (RGB [i] < 5) {}
Delay(50);
}
Si (RGB [i] < 10) {}
Delay(10);
}
Si (RGB [i] < 100) {}
Delay(5);
}
}
Delay(1);
}
}