>> INICIO     

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  /*  Cap-21 MODULO HC-SR04 - Ultrasonido  */  

 

 

 

  CLASE 

 

 

  COMANDOS  

 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
DISTANCIA = DURACION / 58; // 58, tiempo que tarda la onda en recorrer 1 cm.

 

LIBRERÍA NewPing V_1.9.7

Descargue Librería  aquí

Detalles de Constructor y Métodos de la librería, aquí

 

  LAMINAS  

 

  SKETCH Lab -9a

  Medición distancia por Monitor Serial 

/*
__________________________________________________
*** =======> Ing. BRAIN NASER SOTO <======= ***
SENSOR ULTRASONICO HC-SR04
Medición Distancia en cms. por Monitor Serial
Act. 03/09/2022
___________________________________________________

{ } ! < > " [ ]
*/

int TRIG = 12; // trigger en pin 12
int ECO = 10; // echo en pin 10
int DURACION; // Variable para la duración del tiempo de respuesta
int DISTANCIA; // Variable para el cálculo de la distancia

void setup()
{
pinMode(TRIG, OUTPUT); // trigger como salida
pinMode(ECO, INPUT); // echo como entrada
Serial.begin(9600); // inicializacion de comunicacion serial a 9600 bps

}

void loop()
{
digitalWrite(TRIG, HIGH); // generacion del pulso a enviar
delay(1); // al pin conectado al trigger
digitalWrite(TRIG, LOW); // del sensor

DURACION = pulseIn(ECO, HIGH); // pulseIn devuelve tiempo en uS
DISTANCIA = DURACION / 58.2; // distancia medida en centimetros; 58.2 es constante entregada por datasheet
Serial.println(DISTANCIA); // envio de valor de distancia por monitor serial
delay(200); // retardo entre lectturas

}

 

 

 

  SKETCH Lab -9b

  Medición distancia por LCD I2C 

/*
__________________________________________________
*** =======> Ing. BRAIN NASER SOTO <======= ***
SENSOR ULTRASONICO HC-SR04
Medición Distancia en cms.con Display LCD I2C
Act. 03/09/2022
___________________________________________________

{ } ! < > " [ ]
*/
#include <LiquidCrystal_I2C.h> //Carga Libreria
LiquidCrystal_I2C lcd(0x27,16,2); // Inicializa Display

int TRIG = 12; // trigger en pin 12
int ECO = 10; // echo en pin 10
int DURACION;
int DISTANCIA;

void setup()
{
pinMode(TRIG, OUTPUT); // trigger como salida
pinMode(ECO, INPUT); // echo como entrada
Serial.begin(9600); // inicializacion de comunicacion serial a 9600 bps
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(4,0);
lcd.print("PROBANDO");
lcd.setCursor (1,1);
lcd.print("SENSOR HC-SR04");
delay (5000);
lcd.clear();
}

void loop()
{
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 uS, entre Trigger y Eco

// 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
Serial.println(DISTANCIA);
lcd.setCursor(0,0);
lcd.print("La distancia es:");
lcd.setCursor(0,1);
lcd.print( DISTANCIA);
lcd.print("cms");

delay(100); // Retardo entre mediciones


}

 

  SKETCH -Lab 9c 

  Medición distancia por LCD I2C + Led y/o Buzzer 

/*

           __________________________________________________

           *** =======> Ing. BRAIN NASER SOTO <======= ***

                       SENSOR ULTRASONICO HC-SR04

                       Medición Distancia con LED.

                           Act. 28/06/2024

           ___________________________________________________

*/

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd (0X27, 16, 2);

#define TRIG 12

#define ECO 10

#define LED 3 // Puede ser un Buzzer activo

int DURACION;

int DISTANCIA;

 

void setup() {

  pinMode (TRIG, OUTPUT);

  pinMode (ECO, INPUT);

  pinMode (LED, OUTPUT);

  Serial.begin (9600);

  lcd.init();

  lcd.backlight();

  lcd.clear();

  lcd.setCursor (0, 0);

  lcd.print ("PROBANDO...");

  lcd.setCursor (1, 1);

  lcd.print ("SENSOR HC-SR04");

  delay (1500);

  lcd.clear();

 

}

 

void loop() {

  digitalWrite (TRIG, HIGH);

  delay (1);

  digitalWrite (TRIG, LOW);

  DURACION = pulseIn (ECO, HIGH);

  DISTANCIA = DURACION / 58;

  Serial.println (DISTANCIA);

  lcd.clear();

  lcd.setCursor (0, 0);

  lcd.print ("La Distancia es: ");

  lcd.setCursor (0, 1);

  lcd.print (DISTANCIA);

  lcd.print ("cms.");

  delay (150);

  if (DISTANCIA <= 20 && DISTANCIA >= 0) {

    digitalWrite (LED, HIGH);

    delay (DISTANCIA * 10);

    digitalWrite (LED, LOW);

  }

}

 

 

 SKETCH -Lab 9d 

  Medición distancia Promedio por Cuentas con LCD I2C + Led y/o Buzzer 

 

/*

           __________________________________________________

           *** =======> 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);

  }

 

}