>> INICIO
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
/* Cap-14 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-1
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-2
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-3
Medición distancia por LCD I2C + Led y/o
Buzzer
/*
__________________________________________________
*** =======> Ing. BRAIN NASER SOTO <======= ***
SENSOR ULTRASONICO HC-SR04
Medición Distancia con LED.
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;
int LED =3; // Pin del LED
void setup()
{
pinMode(TRIG, OUTPUT); // trigger como salida
pinMode(ECO, INPUT); // echo como entrada
pinMode (LED, OUTPUT); // Led como Saliuda
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 (3000);
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
// 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);
if (DISTANCIA < 10){
lcd.print (" ");
}
lcd.setCursor(0,1);
lcd.print(DISTANCIA);
lcd.print("cms");
delay(100); // Retardo entre mediciones
if (DISTANCIA <= 20 && DISTANCIA >=0){
digitalWrite (LED, HIGH);
delay (DISTANCIA * 10);
digitalWrite (LED, LOW);
}
} |
|