norr@manorshi.com       +   86-519-89185720
1
Centro de noticias

¿Cómo utilizar el sensor ultrasónico con Arduino?

Vistas: 164     Autor: Grace Hora de publicación: 2021-07-26 Origen: Sitio

botón para compartir facebook
botón para compartir en twitter
botón para compartir línea
botón para compartir wechat
botón para compartir en linkedin
botón para compartir en pinterest
boton compartir whatsapp
botón para compartir kakao
botón para compartir Snapchat
botón para compartir telegramas
comparte este botón para compartir

Cómo utilizar el sensor ultrasónico con Arduino: Guía HC-SR04

El El sensor ultrasónico HC-SR04 es uno de los módulos de medición de distancia más populares para proyectos Arduino. Se utiliza ampliamente en robots para evitar obstáculos, sensores de estacionamiento, detección de nivel, contenedores de basura inteligentes, medidores de distancia y otras aplicaciones de detección sin contacto.

El módulo emite ondas ultrasónicas de 40 kHz a través de un transmisor. Cuando la onda de sonido encuentra un objeto, se refleja hacia el receptor. Al medir el tiempo del eco y utilizar la velocidad del sonido, Arduino puede calcular la distancia entre el sensor y el objeto.

Módulo sensor ultrasónico HC-SR04 para medición de distancia Arduino

HC-SR04 Principales parámetros técnicos

Parámetro Valor
Tensión de trabajo típica 5 VCC
Corriente de trabajo estática Menos de 5 mA en algunas versiones de módulo
Frecuencia de funcionamiento onda ultrasónica de 40kHz
Distancia de detección Rango común: 2 cm a 400 cm; algunas versiones con ganancia ajustada pueden admitir un alcance más largo.
Ángulo de detección Generalmente dentro de los 15 grados; Algunas versiones con mayor ganancia pueden alcanzar unos 30 grados.
Precisión Hasta aproximadamente 0,3 cm en condiciones de prueba adecuadas
zona ciega Distancia mínima de medición de aproximadamente 2 cm

Descripción de pines HC-SR04

El módulo ultrasónico HC-SR04 tiene cuatro pines: VCC, TRIG, ECHO y GND. Arduino envía un pulso de disparo corto al pin TRIG y luego lee el pulso de retorno del pin ECHO.

HC-SR04 Pasador Conexión Arduino Función
VCC 5V Fuente de alimentación para el módulo ultrasónico.
TRIGONOMETRÍA Pin digital 9 Entrada de disparador. Arduino aplica un pulso de 10us para comenzar a medir el alcance.
ECO Pin digital 10 Salida de eco. Arduino lee el ancho del pulso para calcular la distancia.
Tierra Tierra Conexión a tierra.

Configuración de pines del sensor ultrasónico HC-SR04 VCC TRIG ECHO GND

Principio de funcionamiento del sensor ultrasónico HC-SR04

El HC-SR04 funciona mediante medición del tiempo de vuelo. Arduino envía una señal de activación de alto nivel de al menos 10 microsegundos al pin TRIG. Luego, el módulo envía automáticamente ocho pulsos ultrasónicos de 40 kHz y espera el eco reflejado.

Cuando se detecta la señal ultrasónica reflejada, el pin ECHO emite un pulso de alto nivel. La duración de este pulso es el tiempo de viaje de ida y vuelta de la onda ultrasónica.

Distancia = Tiempo de eco de alto nivel × Velocidad del sonido / 2

En el código Arduino, la fórmula simplificada común es:

Distancia en cm = duración × 0,0343 / 2

Principio de funcionamiento del tiempo de vuelo del módulo ultrasónico HC-SR04

Diagrama de sincronización del módulo ultrasónico HC-SR04

El proceso de sincronización es simple: Arduino mantiene TRIG bajo brevemente, envía un pulso alto de 10 us y luego regresa TRIG a bajo. El HC-SR04 envía una ráfaga ultrasónica y establece ECHO en nivel alto hasta que la señal reflejada regresa o la medición se agota.

Para evitar lecturas inestables, deje un breve retraso entre mediciones. Generalmente se utiliza un ciclo de medición de aproximadamente 60 ms para que el eco ultrasónico anterior tenga tiempo de desaparecer antes del siguiente disparo.

Conceptos básicos de programación Arduino: función pulseIn

La función Arduino pulseIn() se utiliza para medir cuánto tiempo un pin digital permanece ALTO o BAJO. Para HC-SR04, Arduino usa pulseIn(echoPin, HIGH) para leer el ancho de pulso de alto nivel del pin ECHO.

Sintaxis Significado
pulseIn(pin, valor) Lee la duración de un pulso ALTO o BAJO.
pulseIn(pin, valor, tiempo de espera) Lee el pulso con un valor de tiempo de espera en microsegundos.

Se recomienda utilizar un tiempo de espera. Si no se devuelve ningún eco, la función puede dejar de esperar y devolver 0 en lugar de bloquear el programa por mucho tiempo.

Placa Arduino utilizada con sensor de distancia ultrasónico HC-SR04

Cómo conectar el sensor ultrasónico HC-SR04 a Arduino

El cableado es sencillo. Conecte VCC a 5V, GND a GND, TRIG a un pin de salida digital de Arduino y ECHO a un pin de entrada digital de Arduino. El siguiente ejemplo utiliza Arduino Uno, TRIG en el pin 9 y ECHO en el pin 10.

Diagrama de cableado de la placa de pruebas Arduino Uno para el sensor ultrasónico HC-SR04

HC-SR04 Sensor Ultrasónico Código Arduino

El siguiente programa típico de Arduino envía un pulso de disparo de 10us, lee el ancho del pulso del ECO, calcula la distancia en centímetros e imprime el resultado en el monitor serie.

constante int trigPin = 9; constante int echoPin = 10; larga duración; distancia de flotación cm; configuración vacía() { pinMode(trigPin, SALIDA);   pinMode(echoPin, ENTRADA);   Serie.begin(9600); } bucle vacío() { digitalWrite(trigPin, LOW);   retrasoMicrosegundos(2);   escritura digital (trigPin, ALTA);   retrasoMicrosegundos(10);   escritura digital (trigPin, BAJO);   duración = pulseIn(echoPin, ALTA, 30000);   if (duración == 0) { Serial.println('Fuera de rango');   } else { distanciaCm = duración * 0,0343 / 2;     Serial.print('Distancia: ');     Serial.print(distanciaCm);     Serial.println('cm');   } retraso(60); }

Si ve valores de distancia en el monitor serie, el sensor ultrasónico HC-SR04 y el cableado Arduino están funcionando correctamente. Luego podrá utilizar los datos de distancia para la detección de obstáculos, control de movimiento del robot, puertas automáticas, recordatorios de estacionamiento o proyectos de nivel de líquido.

Programa de alcance del sensor ultrasónico Arduino HC-SR04

Cómo mejorar la precisión de las mediciones del HC-SR04

  • Mantenga el objeto medido dentro del rango de distancia recomendado y fuera de la zona ciega de 2 cm.

  • Utilice una superficie objetivo plana y sólida para una mejor reflexión ultrasónica.

  • Evite medir materiales blandos, angulados, porosos o que absorban el sonido.

  • Utilice una fuente de alimentación estable de 5 V y mantenga el cableado corto y seguro.

  • Agregue un tiempo de espera a pulseIn() para evitar un bloqueo prolongado cuando no regresa ningún eco.

  • Filtre el promedio o la mediana de varias lecturas para reducir el ruido.

  • Para mayor precisión, compense la temperatura porque la velocidad del sonido cambia con la temperatura del aire.

Aplicaciones comunes de proyectos de sensores ultrasónicos Arduino

Solicitud Cómo se utiliza HC-SR04
Robot para evitar obstáculos Detecta objetos cercanos y ayuda al robot a cambiar de dirección.
Sensor de distancia de aparcamiento Mide la distancia entre el vehículo y un obstáculo.
Detección de nivel de líquido Mide la distancia desde el sensor a la superficie del líquido sin contacto.
Papelera inteligente Detecta una mano u objeto cercano y activa la apertura automática de la tapa.

Resumen

Para usar un sensor ultrasónico HC-SR04 con Arduino, conecte VCC a 5V, GND a GND, TRIG a un pin de salida digital y ECHO a un pin de entrada digital. Envíe un pulso de disparo de 10us, lea la duración del eco con pulseIn() y calcule la distancia con la fórmula de tiempo de vuelo.

El HC-SR04 es económico, fácil de usar y adecuado para muchos proyectos de medición de distancias con Arduino. Para obtener mejores resultados, preste atención a la superficie objetivo, el ángulo de medición, la zona ciega, la potencia estable, el manejo del tiempo de espera y los efectos de la temperatura.

Preguntas frecuentes sobre el sensor ultrasónico Arduino HC-SR04

¿Cómo funciona el sensor ultrasónico HC-SR04 con Arduino?

Arduino envía un pulso de 10us al pin TRIG. El HC-SR04 emite ocho pulsos ultrasónicos de 40 kHz y establece el pin ECHO en alto hasta que regresa el sonido reflejado. Arduino mide este tiempo de pulso y calcula la distancia.

¿Cuál es la fórmula de distancia para proyectos Arduino HC-SR04?

La fórmula es distancia = duración × velocidad del sonido / 2. En centímetros, una fórmula común de Arduino es distanciaCm = duración × 0,0343 / 2, donde la duración se mide en microsegundos.

¿Por qué dividimos el resultado del sensor ultrasónico por 2?

El tiempo de eco medido es el tiempo de ida y vuelta desde el sensor al objeto y de regreso al sensor. Dividir por 2 da la distancia unidireccional entre el sensor y el objeto.

¿Qué pines Arduino debo usar para TRIG y ECHO?

Puedes utilizar la mayoría de los pines digitales Arduino. En muchos ejemplos, TRIG está conectado al pin digital 9 y ECHO está conectado al pin digital 10. El código debe coincidir con los pines utilizados en su cableado.

¿Por qué mi sensor ultrasónico HC-SR04 devuelve valores cero o aleatorios?

Las causas comunes incluyen cableado suelto, alimentación inestable de 5 V, números de pin TRIG o ECHO incorrectos, ningún objeto dentro del alcance, superficies objetivo en ángulo, materiales blandos, cabezales de sensores bloqueados o falta de tiempo de espera en la función pulseIn().

¿Cuál es la zona ciega del sensor ultrasónico HC-SR04?

La zona ciega es la distancia mínima donde el módulo no puede medir de manera confiable. Para HC-SR04, la zona ciega suele ser de unos 2 cm. Los objetos más cercanos pueden producir lecturas inestables.

¿Puede el HC-SR04 medir el nivel del agua con Arduino?

Sí, el HC-SR04 se puede utilizar para proyectos sencillos de nivel de agua sin contacto si el sensor está protegido de la humedad y montado sobre la superficie del líquido. Para tanques húmedos, exteriores o industriales, se recomienda un sensor ultrasónico resistente al agua.

¿Cómo puedo hacer que las lecturas del sensor ultrasónico Arduino sean más estables?

Utilice una fuente de alimentación estable, mantenga el sensor perpendicular al objetivo, evite superficies blandas o en ángulo, agregue tiempo de espera de entrada de pulso, tome lecturas múltiples, use filtrado mediano y permita aproximadamente 60 ms entre mediciones.

Tabla de contenido