Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Medición Precisa de Distancia por Ultrasonidos con Arduino – Guía Paso a Paso

Proyecto de Medición de Distancia por Ultrasonidos con Arduino

La medición de distancia por ultrasonidos es una herramienta útil en diversas aplicaciones: posicionamiento, localización, dimensionado, selección, medición de nivel, control y perfilado. Con cálculos matemáticos sobre valores de salida también se pueden medir velocidad y otras magnitudes físicas. Tiene aplicaciones en robótica.

Teniendo en cuenta estas aplicaciones, el sensor ultrasónico es excelente para medir distancias sin contacto físico en rangos cortos. Usa el concepto de ECO para medir distancia. En este proyecto aprenderemos a medir distancia interfazando módulo sensor HC-SR04 con Arduino y mostrando la distancia en LCD 16×2.

Diagrama de Circuito del Proyecto de Medición

Medición Precisa de Distancia por Ultrasonidos con Arduino – Guía Paso a Paso

El interfazado es muy simple. Siga el diagrama: pines Trig y Echo del sensor ultrasónico a A4 y A5 de Arduino UNO; VCC y GND a 5 V y GND de Arduino.

Mostraremos la distancia en LCD 16×2 conectado a Arduino. Conecte RS y EN a pines digitales 12 y 11 respectivamente. D4-D7 del LCD a pines digitales 5-2 de Arduino. Potenciómetro 10K para controlar contraste del LCD como en diagrama.

Componentes Necesarios

Módulo Sensor Ultrasónico

El sensor usado es HC-SR04, dispositivo de medición ultrasónica sin contacto. Mide distancia en rango 2 cm – 400 cm con precisión hasta 3 mm.

Consta de transmisor y receptor ultrasónico. Principio simple: pulso de disparo (IO trigger) envía señal alta 10 μs. El módulo envía 8 ciclos de 40 kHz y detecta si recibe pulso de retorno. Si lo recibe, el tiempo que el trigger permanece alto es el tiempo de ida y vuelta de la señal.

Distancia = (Tiempo nivel alto × Velocidad sonido en aire (340 m/s)) / 2

Diagrama de Tiempos (Timing Diagram)

El módulo funciona por ECO del sonido. Para disparar, pulso de ~10 μs. Tras esto, envía 8 ciclos de 40 kHz y verifica reflexión. Si hay obstáculo, señal choca y vuelve al receptor. Distancia se calcula con fórmula anterior. Dividimos por 2 porque el tiempo total es ida + vuelta; tiempo hasta obstáculo es la mitad. Diagrama de tiempos:

Medición Precisa de Distancia por Ultrasonidos con Arduino – Guía Paso a Paso
Especificaciones Técnicas
Pinout del Sensor HC-SR04

Al conectar módulo con microcontrolador, se dispara por Trig enviando pulso alto 10 μs. Se espera ECO. Microcontrolador calcula el tiempo y luego la distancia con la fórmula.

Arduino UNO

Arduino es microcontrolador open source usado en proyectos embebidos pequeños y grandes. El usado aquí es Arduino UNO: más barato y fácil de interfazar. 14 pines digitales I/O y 6 analógicos. Open source: el usuario decide cómo usarlo. Puede modificar placa y software según necesidades.

Módulo LCD 16×2

Comunes en proyectos embebidos por ser baratos y fáciles de interfazar. Los ve en calculadoras, multímetros, etc. Muestra 16 caracteres por fila, 2 filas (16 columnas × 2 filas). Cada carácter = matriz 5×8 píxeles. Total píxeles = 5×8×16×2 = 1280. Para gestionar posición de caracteres, se usa IC HD44780 que toma datos/comandos del microcontrolador y los procesa para imprimir en LCD. Facilita mucho el interfazado.

Pinout y Descripción LCD 16×2

PinNombreDescripción
1VSSTierra, conectada a tierra del circuito.
2VDDAlimentación LCD (4,7–5,3 V), típicamente 5 V
3VEControl de contraste. Conectar potenciómetro; ajustando perilla se cambian niveles de contraste.
4RSRegister Select. Cambia entre registro de comandos y datos. Conectado a microcontrolador.
5RWRead/Write. Leer/escribir en LCD. Generalmente a tierra para escribir datos.
6ENEnable. Conectado a microcontrolador; recibe 1/0 para validar dato.
7Data pins (0-7)Envían datos de 8 bits al LCD. Puede usarse en modo 4 bits (solo 4 pines).
8AÁnodo. Positivo para retroiluminación LCD. Opcional. Úselo si necesita retroiluminación. Consumo muy bajo sin ella.
9KCátodo. Negativo para retroiluminación LCD.

Interfazado básico LCD con Arduino: RS y EN a pines 12 y 11. D4-D7 a pines 5-2. RW, VSS, K a tierra; VDD, A a 5 V. Potenciómetro en VE para contraste.

Código básico: incluir librería LiquidCrystal.h.

#include <LiquidCrystal.h>

Definir variables para pines de datos y pasarlas a función LiquidCrystal:

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

En setup(), inicializar LCD con lcd.begin(16, 2) (16 columnas, 2 filas). Imprimir "Hello, World!":

lcd.begin(16, 2);
lcd.print("Hello, World!");

En loop(), cursor a posición (0,1) e imprimir milisegundos/1000:

lcd.setCursor(0, 1);
lcd.print(millis() / 1000);

Suba código a Arduino; verá mensaje en display. Cambie contraste girando potenciómetro.

Programación Arduino para Medición de Distancia con Sensor Ultrasónico

Código muy fácil. Incluir cabecera para LCD:

#include <LiquidCrystal.h>

Definir macros para pines A4 (pin 18) y A5 (pin 19):

#define trig 18
#define echo 19

Variables para pines LCD e inicializar:

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Variables distancia d y tiempo t inicializadas a 0:

float t = 0, d = 0;

En setup(): inicializar LCD, definir Trig como OUTPUT y Echo como INPUT:

void setup() {
  lcd.begin(16, 2);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

En loop(): limpiar LCD, inicializar sensor enviando pulso alto 10 μs, sensor envía 8 ciclos 40 kHz y verifica reflexión. Leer tiempo del sensor y calcular distancia. Dividir por 10000 para convertir m/s a cm:

void loop() {
  lcd.clear();
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  t = pulseIn(echo, HIGH);
  d = t * 0.0340 / 2;
  d = t * 0.01330 / 2;
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(d);
  lcd.print(" cm");
  delay(1000);
}

Funcionamiento del Circuito de Medición

Suba código a Arduino. Acercale cualquier objeto o su mano frente al sensor. Lea distancia en LCD. Cambie distancia del objeto y obtendrá mediciones precisas.

Al inicializar sensor con pulso alto 10 μs, este envía 8 ciclos ultrasónicos 40 kHz; si se reflejan en obstáculo, vuelven al receptor. Sensor da tiempo de viaje de señal transmisor-obstáculo-receptor. Usamos ese tiempo para calcular distancia sensor-obstáculo.

Medición Precisa de Distancia por Ultrasonidos con Arduino – Guía Paso a Paso

Tecnología Industrial

  1. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  2. Construye un Dispositivo de Levitación Ultrasónica con Arduino – Guía Paso a Paso
  3. Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
  4. Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
  5. Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
  6. Construye una Radio FM Compacta con Arduino Nano y RDA5807M
  7. Sistema Radar Compacto con Arduino Nano, Sensor HC-SR04 y Pantalla 1.8"
  8. Interruptor Táctil Capacitivo LED con Arduino UNO – Proyecto DIY Fácil
  9. Cómo Funcionan los Sensores de Distancia y sus Aplicaciones Clave
  10. Sensores para Arduino: Tipos, Aplicaciones y Proyectos Reales
  11. Cómo Funcionan los Circuitos de Sensor PIR: Diseño, Operación y Aplicaciones Reales