#include <NewPing.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define pirPin 4 // Pin de datos del sensor PIR
#define LED_PIN_RED 8
#define LED_PIN_GREEN 9
#define LED_PIN_BLUE 10
#define LED_PIN_ORANGE 7
NewPing sonar(TRIGGER_PIN, ECHO_PIN);
int camps = 1;
void setup() {
Serial.begin(9600);
pinMode(LED_PIN_RED, OUTPUT);
pinMode(LED_PIN_GREEN, OUTPUT);
pinMode(LED_PIN_BLUE, OUTPUT);
pinMode(LED_PIN_ORANGE, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN_RED, HIGH);
delay(1000);
unsigned int distance = sonar.ping_cm();
if (distance < 30) {
digitalWrite(LED_PIN_RED, LOW);
delay(1000);
digitalWrite(LED_PIN_ORANGE, HIGH);
Serial.println("1: La distancia es menor a 30 y se ha encendido el LED NARANJAR.");
int pirValue = digitalRead(pirPin); // Leer el valor del sensor PIR
if (pirValue == HIGH) {
Serial.println("2: Se ha detectado movimiento y se ha encendido los LEDs rojo, azul y verde.");
while(camps<15){
delay(1000);
digitalWrite(LED_PIN_RED, HIGH);
delay(1000);
digitalWrite(LED_PIN_RED, LOW);
delay(1000);
digitalWrite(LED_PIN_GREEN, HIGH);
delay(1000);
digitalWrite(LED_PIN_GREEN, LOW);
delay(1000);
digitalWrite(LED_PIN_BLUE, HIGH);
delay(1000);
digitalWrite(LED_PIN_BLUE, LOW);
Serial.println("En Bucle");
camps+=1;
}
} else {
delay(1000);
digitalWrite(LED_PIN_RED, HIGH);
delay(1000);
digitalWrite(LED_PIN_BLUE, LOW);
Serial.println("3: Hay objeto cerca y no se detecta movimiento. Se ha encendido el LED rojo.");
}
} else {
Serial.println("No se encuentra a una distancia menor a 30.");
}
delay(1000); // Esperar un segundo antes de la próxima lectura
}