Lámpara modificada con tres modos |
Me regalaron una lámpara estropeada marca Interfan ref. 15-1021-21-210; por el pico de tensión de encendido el control Beamish B11 había quemado las pistas de los relés:
Control de encendido |
Según accionamos el interruptor, se encienden sólo leds, sólo halógenas, o halógenas y leds, lo que es poco práctico ya que los leds quedan bonitos, pero no alumbran nada.
Es mucho más práctico; 3 intensidades diferentes según la necesidad. También se pueden orientar de forma que dependiendo de si estás en una zona u otra de la sala, que ilumine más el sitio. Podría mejorarse haciendo la iluminación más inteligente con algún sensor de presencia por ultrasonidos, comprobando el movimiento cada minuto y cambiando cada 5 según dónde se desarrolle la actividad, pero para que fuera realmente "inteligente" y no molestara habría que dedicarle muchas horas.
Con 20€ le damos nueva vida a la lámpara |
Hay que tener en cuenta que cada posición de la EEPROM del Atmel puede grabarse 100 mil veces, calculo que con un uso normal de 6 encendidos diarios nos duraría ¡45 años!. Y si no es suficiente, siempre podemos hacer un poco más complejo el programa para que contee los usos y vaya "anulando" posiciones colocando un 255 de valor...
Este sería el sencillo programa:
/*
* 3 MODES LAMP storing last state on EEPROM
*
* La EEPROM (hasta 100.000 escrituras por byte)
* la utilizamos para guardar el estado en cada encendido,
* de forma muy sencilla.
*/
#include <EEPROM.h>
void setup()
{// set the digital pin as output:
pinMode(7, OUTPUT); //Relé 1
pinMode(8, OUTPUT); //Relé 2
//Serial.begin(9600); //(líneas anuladas, para depuración)
}
void loop()
{
int val=0;
val=EEPROM.read(0);
// Serial.print(val);
// Serial.println();
if (val==2)
{
digitalWrite(7,HIGH); //Activamos los dos relés
digitalWrite(8,HIGH);
}
else if (val==1)
{
digitalWrite(7,HIGH); //Activamos el relé conectado a la digital 7
digitalWrite(8,LOW);
}
else if (val==0)
{
digitalWrite(7,LOW); //Activamos el relé conectado a la digital 8
digitalWrite(8,HIGH);
}
else
{
EEPROM.write(0, 0); //la primera ejecución puede tener cualquier cosa
}
if (activo==1); //incrementa el valor
{val=val+1;
if (val==3) {
val=0;
}
}
EEPROM.write(0, val); //Guarda en la EEPROM
// Serial.print(val); //(Para depurarlo)
while(1) {
delay(1000); //Bucle infinito en espera
}
}
|
El Arduino lo pegué a la base con silicona, separado 5 mm. de la chapa |
Y este es el resultado; con todas encendidas son ¡4500 lúmenes! (y no más de 40ºC):
Espero que os haya gustado, yo lo he disfrutado... ¡a seguir inventando con Arduino!
Por cierto, si os interesa poner el Arduino con el mínimo consumo posible (en este caso es útil porque sólo realiza una operación y se puede echar a "dormir", lo mejorcito es la librería JeeLib: http://www.openhomeautomation.net/arduino-battery/
ResponderEliminarEso combinado con la bajada de velocidad del procesador para tareas simples como esta, es la bomba: http://playground.arduino.cc/Main/PowerSaving
EliminarY por cierto, si os preguntáis cuánto puede durar el arduino funcionando, la conclusión es que con una fuente de alimentación de calidad, mínimo 50.000 horas; entre 5 y 10 años. Aquí una interesante discusión sobre su fiabilidad: http://forum.arduino.cc/index.php?PHPSESSID=ciugkruoste43jm04dhbc5igq2&topic=131944.0
ResponderEliminarBuenos días donde podría comprar esas piezas para unas lámparas que han dejado de funcionar la Beamish b-11 ? Muchas gracias
ResponderEliminar