/*
__________________________________________________
*** =======>
Ing. BRAIN NASER SOTO <======= ***
SENSOR ULTRASONICO HC-SR04
Medición Distancia con LED y Poromedio 50 Muestras.
Act. 03/09/2022
___________________________________________________
*/
#include <LiquidCrystal_I2C.h>
//Carga Libreria
LiquidCrystal_I2C lcd(0x27,
16, 2); // Inicializa Display
#define TRIG 12 //
trigger en pin 12
#define ECO 10 //
echo en pin 10
#define LED 3 // Pin del
LED
int DURACION;
int DISTANCIA;
int MEDIDA;
int VALOR;
int I = 0;
int CUENTAS = 50;
void setup()
{
pinMode(TRIG,
OUTPUT); // trigger como salida
pinMode(ECO, INPUT);
// echo como entrada
pinMode (LED, OUTPUT);
// Led como Saliuda
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("PROBANDO");
lcd.setCursor (1, 1);
lcd.print("SENSOR HC-SR04");
delay (1500);
lcd.clear();
}
void loop()
{
MEDIDA = 0;
for (I = 1; I <=
CUENTAS; I++) {
digitalWrite(TRIG,
HIGH); // Inicio del pulso de Trigger
delay(1);
// Espera 1mS
digitalWrite(TRIG,
LOW); // Término del pulso
DURACION =
pulseIn(ECO, HIGH); // pulseIn devuelve tiempo
// Velocidad del
Sionido = 340 m/S ó 29 uS por centímetro
// Dividir el tiempo
por 58, tiempo que tarda la onda en recorrer 1 cm.
DISTANCIA = DURACION
/ 58; // distancia medida en centimetros
MEDIDA = MEDIDA +
DISTANCIA;
}
VALOR = MEDIDA /
CUENTAS;
lcd.setCursor(0, 0);
lcd.print("La
distancia es:");
lcd.setCursor(0, 1);
if (VALOR < 10) {
lcd.print ("
");
}
lcd.setCursor(0, 1);
lcd.print(VALOR);
lcd.print("cms");
if (VALOR <= 20 &&
VALOR >= 0) {
digitalWrite (LED,
HIGH);
delay (VALOR * 10);
digitalWrite (LED,
LOW);
}
}
|