Bueno siguiendo el tema de chorradas, y luego del burbujometro 🙂 se me ocurrió montar el belén navideño, pero al terminarlo lo vi medio fofo… y pensé que quedaria bonito si automatizamos un poco la cosa y ponemos alguna que otra luz.
El tema de tener que darle a un interruptor me molestaba, así que he realizado una especie de interruptor infrarrojo, para activar con solo pasar la mano delante de la estrella, y durante un tiempo de cerca de un minuto las luces y algunos cambios de color…
Espero os guste, es una tontería pero facil de hacer y de replicar.
Las lineas marcadas con //debug son para ir corrigiendo en tiempo real la respuesta del PINGUINO.
[sourcecode language=»py»]
/*
* Walii PINGUINO PIC
* http://pinguino.walii.es
*
*Español
* Un sensor para el BELEN, para que cuando pasas la mano por delante
* se enciendan las luces de decoración, durante un minuto aproximadamente
*English
* A sensor for BELEN, so that when you pass your hand in front of this
* the lights decoration ON, these for about a minute.
*/
int redPin = 2; // R petal on RGB LED module connected to digital pin 2
int greenPin = 1; // G petal on RGB LED module connected to digital pin 1
int bluePin = 0; // B petal on RGB LED module connected to digital pin 0
int valueir; //IR SENSOR
int i;
int timer=0;
void setup()
{
for (i=0;i<8;i++)
{
pinMode(i,OUTPUT); // Config all the port like OUTPUT
digitalWrite(i,LOW); // fixed all exit to LOW
}
Serial.begin(9600); //debug
}
void color (uchar red, uchar green, uchar blue) // the color generating function
{
digitalWrite(redPin,red);
digitalWrite(bluePin,blue);
digitalWrite(greenPin,green);
}
void loop() // run over and over again
{
valueir=analogRead(13); //Read analog port
//Serial.print("valor ir "); //debug
//Serial.print(valueir,DEC); //debug
//Serial.print("\n\r"); //debug
if (valueir<100) timer=50; //Control IR SENSOR
//Serial.print("valor timer "); //debug
//Serial.print(timer,DEC); //debug
//Serial.print("\n\r"); //debug
while (timer>1) //Make this only if timer is > 1
{
//Serial.print("valor timer "); //debug
//Serial.print(timer,DEC); //debug
//Serial.print("\n\r"); //debug
analogWrite(11,1000); // 99% pwm 11
color(HIGH, LOW, LOW); // turn the RGB LED red
delay(500); // delay for 1/2 second
analogWrite(11,500); // 50% pwm 11
color(LOW, HIGH, LOW); // turn the RGB LED green
delay(500); // delay for 1/2 second
analogWrite(11,1000); // 99% pwm 11
color(LOW, LOW, HIGH); // turn the RGB LED blue
delay(500); // delay for 1/2 second
analogWrite(11,800); // 80% pwm 11
timer–;
}
analogWrite(11,0); //Off the PWM pin
color(LOW, LOW, LOW); //Off all the ligths
delay(100); // Wait 100ms
}
[/sourcecode]