Luces para escalera o pasillo con arduino

Bueno, pues ya esta la versión 3 de la iluminación para pasillo o escalera con arduino, en esta versión esta incluido un sensor de luz ambiente, ajuste manual de la distancia de activación, y ajuste de la cadencia de encendido de las balizas.

 

El esquema del montaje:

 

Como se comenta en el video, hay 3 resistencias ajustables en las que dos se usan para ajustar la distancia a la que activa la detección de paso y la otra es para ajustar el nivel de luz ambiente en que queremos que las salidas no se activen.

Y los dos pulsadores ajustan de 25 en 25 ms la cadencia de encendido de las salidas, por defecto se inicia en 200 ms, el minimo es 25 y el máximo 500 ms, estos valores se podrían cambiar desde el código.

Las nueve salidas están activadas a través de un transistor BD137 que soporta una corriente máxima de 1,5A que nos puede servir para actuar sobre unos relés (para encender unas lamparas de 220V), o unas tiras de led (Dependiendo de los tipos de led habría que calcular el consumo de unos 30 a 50 cm, como en el video de la V2 ).

Las pruebas y la programación las he realizado sobre una placa arduino uno, pero el montaje sobre placa, lo he realizado sobre una placa Arduino mini pro, debido a que irá instalada dentro de una caja en una pared y el espacio es algo importante.

 

Al Final el montaje esta realizado en una placa de prototipos, ya que no creo que realice muchos mas como este, pero lo ideal hubiese sido hacer una placa de circuito impreso. Además no quería soldar la placa arduino directamente, por eso he usado tiras de pines para poder insertarla.

El código programado en el arduino es el siguiente:

 

 

int SensorSubir = A0;
int ValorSensorSubir = 0;
int SensorBajar = A1;
int ValorSensorBajar = 0;
int SensorLuz = A2;
int ValorSensorLuz= 0;
int SensorAjusteSubir = A3;
int ValorAjusteSubir = 0;
int SensorAjusteBajar = A4;
int ValorAjusteBajar = 0;
int SensorAjusteLuz = A5;
int ValorAjusteLuz = 0;
int tiempo = 200;

int total = 0;
int x= 0;
int subir[10];
int bajar[10];
int luz;

int led1 = 4;
int led2 = 5;
int led3 = 6;
int led4 = 7;
int led5 = 8;
int led6 = 9;
int led7 = 10;
int led8 = 11;
int led9 = 12;
int SubirTiempo = 2;
int BajarTiempo = 3;

void setup()
{
Serial.begin(9600);

pinMode (led1,OUTPUT);
pinMode (led2,OUTPUT);
pinMode (led3,OUTPUT);
pinMode (led4,OUTPUT);
pinMode (led5,OUTPUT);
pinMode (led6,OUTPUT);
pinMode (led7,OUTPUT);
pinMode (led8,OUTPUT);
pinMode (led9,OUTPUT);
pinMode (SubirTiempo,INPUT);
pinMode (BajarTiempo,INPUT);

digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
digitalWrite (led3,LOW);
digitalWrite (led4,LOW);
digitalWrite (led5,LOW);
digitalWrite (led6,LOW);
digitalWrite (led7,LOW);
digitalWrite (led8,LOW);
digitalWrite (led9,LOW);
}

void subir_escaleras()
{
digitalWrite (led1,HIGH);
delay(tiempo);
digitalWrite (led2,HIGH);
delay(tiempo);
digitalWrite (led3,HIGH);
delay(tiempo);
digitalWrite (led4,HIGH);
delay(tiempo);
digitalWrite (led5,HIGH);
delay(tiempo);
digitalWrite (led6,HIGH);
delay(tiempo);
digitalWrite (led7,HIGH);
delay(tiempo);
digitalWrite (led8,HIGH);
delay(tiempo);
digitalWrite (led9,HIGH);

delay(5000);

digitalWrite (led1,LOW);
delay(tiempo);
digitalWrite (led2,LOW);
delay(tiempo);
digitalWrite (led3,LOW);
delay(tiempo);
digitalWrite (led4,LOW);
delay(tiempo);
digitalWrite (led5,LOW);
delay(tiempo);
digitalWrite (led6,LOW);
delay(tiempo);
digitalWrite (led7,LOW);
delay(tiempo);
digitalWrite (led8,LOW);
delay(tiempo);
digitalWrite (led9,LOW);

}

void bajar_escaleras()
{
digitalWrite (led9,HIGH);
delay(tiempo);
digitalWrite (led8,HIGH);
delay(tiempo);
digitalWrite (led7,HIGH);
delay(tiempo);
digitalWrite (led6,HIGH);
delay(tiempo);
digitalWrite (led5,HIGH);
delay(tiempo);
digitalWrite (led4,HIGH);
delay(tiempo);
digitalWrite (led3,HIGH);
delay(tiempo);
digitalWrite (led2,HIGH);
delay(tiempo);
digitalWrite (led1,HIGH);

delay(5000);

digitalWrite (led9,LOW);
delay(tiempo);
digitalWrite (led8,LOW);
delay(tiempo);
digitalWrite (led7,LOW);
delay(tiempo);
digitalWrite (led6,LOW);
delay(tiempo);
digitalWrite (led5,LOW);
delay(tiempo);
digitalWrite (led4,LOW);
delay(tiempo);
digitalWrite (led3,LOW);
delay(tiempo);
digitalWrite (led2,LOW);
delay(tiempo);
digitalWrite (led1,LOW);
}

void loop()
{

//leer el valor del sensor de luz

ValorSensorLuz = analogRead(SensorLuz);

ValorAjusteLuz = analogRead(SensorAjusteLuz);

if (digitalRead(BajarTiempo) == LOW)
{
if ( tiempo > 50)
{
tiempo = tiempo – 25;
delay(100);
}
}

if ( digitalRead(SubirTiempo) == LOW)
{
if (tiempo < 500) { tiempo = tiempo + 25; delay(100); } } //Comparar el valor de ajuste del potenciometro con el del sensor if (ValorAjusteLuz > ValorSensorLuz)
{
//Leer el valor del sensor y calcular una media de 10 lecturas

for (x = 0; x < 10; x= x+1)
{
subir[x] = analogRead(SensorSubir);
delay(2);
}
x = 0;
total = 0;
for (x = 0 ; x < 10 ; x = x+1)
{
total = total + subir[x];
}
x = 0;
ValorSensorSubir = total/10;
total= 0;

//Leer el valor del sensor y calcular una media de 10 lecturas

for (x = 0; x < 10; x= x+1)
{
bajar[x] = analogRead(SensorBajar);
delay(2);
}
x = 0;
total = 0;
for (x = 0 ; x < 10 ; x = x+1)
{
total = total + bajar[x];
}
x= 0;
ValorSensorBajar = total/10;
total= 0;

//Guardar el valor del potenciometro de ajuste de distancia

ValorAjusteSubir = analogRead(SensorAjusteSubir);

//Guardar el valor del potenciometro de ajuste de distancia

ValorAjusteBajar = analogRead(SensorAjusteBajar);

//Comparar el valor de ajuste del potenciometro con el del sensor

if (ValorAjusteSubir < ValorSensorSubir)
{

Serial.print(ValorSensorSubir);
Serial.print(” “);
Serial.print(ValorAjusteSubir);
Serial.println(“”);
subir_escaleras();
}

//Comparar el valor de ajuste del potenciometro con el del sensor

if (ValorAjusteBajar < ValorSensorBajar)
{
Serial.print(ValorSensorBajar);
Serial.print(” “);
Serial.print(ValorAjusteBajar);
Serial.println(“”);
bajar_escaleras();
}

}
delay(30);
}

 

 

Fin del código para arduino….

 

Dentro de algún tiempo, espero que poco, este proyecto terminará estando instalado en una escalera, y colgare un video con el resultado definitivo, que espero que guste.

 

 

Anuncios

20 Respuestas a “Luces para escalera o pasillo con arduino

  1. Te pueden servir, el bd135,bd139, o como el transistor solo funciona en corte o saturación, es decir como un interruptor electrónico , cualquier transistor NPN que soporte al rededor de 1A te servirá … Para los nuevos proyectos he usado el TIP120, aguanta más de 1,5 A y va bien .

  2. hola a me me interesa ya que me estoy haciendo una casa nueva y quiero que las escaleras se vallan encendiendo
    puedes enviar montaje

    salu2

  3. Funciona perfecto, después de muchas pruebas anda perfecto con todas las placas y sinceramente en mis clientes ya comencé a promoverlos. Tenés algún proyecto similar con iluminación leds y placa arduino?

      • Dale, estoy haciendo una en un residencia y quedó espectacular, lo que yo le sumé es un sistema sencillo con un cargador de batería de gel flotante con su respectiva batería de 12v – 12A que me sirve como equipo de iluminación de emergencia, de esta manera cuando se corta la energía el sistema sigue funcionando normalmente. Esto quedó muy práctico ya que la escalera se considera una de las zonas críticas para iluminar y máxime cuando hay cortes de luz. Cuando lo termine y haga una sesión de fotos y filmación te lo paso. Gracias

  4. buen dia lisergio.. solo para preguntarte el reloj que utilizas en el mega ¿que dispositivo es??? me gustaria que me pases tu correo si no tienes inconveniente.. Gracias..

  5. Me puedes mandar el esquema a mi correo por favor soy nuevo en esto y quiero aprender de instalación y este proyecto lo encuentro muy interesante y si me pudieras indicar donde seria ideal la instalación de la batería de respaldo en caso de cortes de energía eléctrica, gracias de antemano

    correo
    sergio_garcia_navea_@hotmail.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s