Hola buen dia, estoy generando un proyecto de led para unas escaleras, estas deben de prender cuando subo las escaleras (Sensor 1) y apagarse cuando llego a la parte de arriba y cruzo el ultimo escalón (Sensor 2) y viceversa, actualmente lo hace pasando un cierto tiempo pero quiero hacerlo con los sensores PIR.
Agradezco mucho su ayuda.
Agrego lo que tengo de mi codigo.
int timeron = 300; // Velocidad de los leds
int timeroff = 300;
int sensor_1=11; // Sensor Abajo
int sensor_2=12; // Sensor Arriba
int estado_sensor_1=0;
int estado_sensor_2=0;
int led1 = 0;
int led2 = 1;
int led3 = 2;
int led4 = 3;
int led5 = 4;
int led6 = 5;
int led7 = 6;
int led8 = 7;
int led9 = 8;
int led10 = 9;
void setup()
{
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 (led10,OUTPUT);
pinMode (sensor_1,INPUT);
pinMode (sensor_2,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);
digitalWrite (led10,LOW);
}
void loop()
{
estado_sensor_1=digitalRead(sensor_1);
estado_sensor_2=digitalRead(sensor_2);
if (estado_sensor_1==HIGH)
{
subir_escaleras();
}
if (estado_sensor_2==HIGH)
{
bajar_escaleras();
}
}
void subir_escaleras()
{
digitalWrite (led1,HIGH);
delay(timeron);
digitalWrite (led2,HIGH);
delay(timeron);
digitalWrite (led3,HIGH);
delay(timeron);
digitalWrite (led4,HIGH);
delay(timeron);
digitalWrite (led5,HIGH);
delay(timeron);
digitalWrite (led6,HIGH);
delay(timeron);
digitalWrite (led7,HIGH);
delay(timeron);
digitalWrite (led8,HIGH);
delay(timeron);
digitalWrite (led9,HIGH);
delay(timeron);
digitalWrite (led10,HIGH);
delay(5000);
digitalWrite (led1,LOW);
delay(timeroff);
digitalWrite (led2,LOW);
delay(timeroff);
digitalWrite (led3,LOW);
delay(timeroff);
digitalWrite (led4,LOW);
delay(timeroff);
digitalWrite (led5,LOW);
delay(timeroff);
digitalWrite (led6,LOW);
delay(timeroff);
digitalWrite (led7,LOW);
delay(timeroff);
digitalWrite (led8,LOW);
delay(timeroff);
digitalWrite (led9,LOW);
delay(timeroff);
digitalWrite (led10,LOW);
}
void bajar_escaleras()
{
digitalWrite (led10,HIGH);
delay(timeron);
digitalWrite (led9,HIGH);
delay(timeron);
digitalWrite (led8,HIGH);
delay(timeron);
digitalWrite (led7,HIGH);
delay(timeron);
digitalWrite (led6,HIGH);
delay(timeron);
digitalWrite (led5,HIGH);
delay(timeron);
digitalWrite (led4,HIGH);
delay(timeron);
digitalWrite (led3,HIGH);
delay(timeron);
digitalWrite (led2,HIGH);
delay(timeron);
digitalWrite (led1,HIGH);
delay(5000);
digitalWrite (led10,LOW);
delay(timeroff);
digitalWrite (led9,LOW);
delay(timeroff);
digitalWrite (led8,LOW);
delay(timeroff);
digitalWrite (led7,LOW);
delay(timeroff);
digitalWrite (led6,LOW);
delay(timeroff);
digitalWrite (led5,LOW);
delay(timeroff);
digitalWrite (led4,LOW);
delay(timeroff);
digitalWrite (led3,LOW);
delay(timeroff);
digitalWrite (led2,LOW);
delay(timeroff);
digitalWrite (led1,LOW);
}
Gracias