byte Pindisparo=4;
byte Pineco=5;
long tiempoMs;
byte PIR = 2;
byte pirmovi;
int dist;
byte ledBlanco =11;
byte ledVerde =12;
byte ledRojo =13;
byte boton1 =3;
byte boton2 =6;
byte boton3 =7;
byte boton4 =8;
byte boton5 =9;
byte boton6 =10;
byte state =0;
byte stateboton;
void setup() {
Serial.begin(9600);
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
pinMode(boton3, INPUT);
pinMode(boton4, INPUT);
pinMode(boton5, INPUT);
pinMode(boton6, INPUT);
pinMode(PIR, INPUT);
pinMode(Pindisparo, OUTPUT);
pinMode(Pineco, INPUT);
pinMode(ledBlanco, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
}
void loop() {
//LECTURAS DE LOS SENSORES//
iniciarDisparo();
tiempoMs=pulseIn(Pineco, HIGH);
dist=tiempoMs * 0.01715;
pirmovi = digitalRead(PIR);
//LECTURAS DE LOS SENSORES//
if (pirmovi == 1) {
if(dist >= 10 && dist <= 79){
state =1;
while(state ==1){
digitalWrite(ledBlanco, HIGH);
stateboton = digitalRead(boton1);
if(stateboton == 1){
digitalWrite(ledBlanco, LOW);
state =0;
}
}
}
else if(dist >= 80 && dist <= 179){
state =2;
while(state == 2){
digitalWrite(ledVerde, HIGH);
stateboton = digitalRead(boton2);
if(stateboton == 1){
digitalWrite(ledVerde, LOW);
state =0;
}
}
}
else if(dist >= 180 && dist <= 292){
state =3;
while(state ==3){
digitalWrite(ledRojo, HIGH);
stateboton = digitalRead(boton3);
if(stateboton == 1){
digitalWrite(ledRojo, LOW);
state =0;
}
}
}
}
else {
if (dist >= 10 && dist <= 79){
state =4;
while(state == 4){
digitalWrite(ledBlanco, HIGH);
delay(100);
digitalWrite(ledBlanco, LOW);
delay(100);
stateboton = digitalRead(boton4);
if(stateboton == 1){
digitalWrite(ledBlanco, LOW);
state =0;
}
}
}
else if (dist >= 80 && dist <= 179){
state =5;
while(state == 5){
digitalWrite(ledVerde, HIGH);
delay(100);
digitalWrite(ledVerde, LOW);
delay(100);
stateboton = digitalRead(boton5);
if(stateboton == 1){
digitalWrite(ledVerde, LOW);
state =0;
}
}
}
else if (dist >= 180 && dist <= 292){
state =6;
while(state == 6){
digitalWrite(ledRojo, HIGH);
delay(100);
digitalWrite(ledRojo, LOW);
delay(100);
stateboton = digitalRead(boton6);
if(stateboton == 1){
digitalWrite(ledRojo, LOW);
state =0;
}
}
}
}
delay(500);
}
void iniciarDisparo (){
//Funcion para usar el sensor de distancia (ULTRASONICO)
digitalWrite(Pindisparo, LOW);
delayMicroseconds(2);
digitalWrite(Pindisparo, HIGH);
delayMicroseconds(10);
digitalWrite(Pindisparo, LOW);
}