#include <NewPing.h>
#include <Wire.h>
//#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x27,16,2);
#define ECHO_PIN 11
#define TRIGGER_PIN 12
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
bool flag = false,
inicializado = false;
int dValue;
unsigned long t_start, sample, t3seg;
int ledr = 8;
void setup() {
pinMode (ledr, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (millis()- sample > 200UL) {
dValue = sonar.ping_cm();
Serial.print("Mido = " + String(dValue)+ " ");
if (flag)
Serial.print(" En rango");
else
Serial.print(" Fuera de rango");
if (t3seg)
Serial.println(" condición de 3 seg alcanzada");
else
Serial.println();
sample = millis();
}
if (dValue >= 10 && dValue <= 20) {
flag = true;
if (!inicializado) {
t_start = millis();
inicializado = true;
}
}
else {
flag = false;
inicializado = false;
t3seg = false;
}
if (flag) {
if (millis() - t_start > 3000UL) {
t3seg = true;
digitalWrite(ledr, HIGH);
}
}
else {
digitalWrite(ledr, LOW);
}
}