The HC-SR04 ultrasonic sensor is a popular, cost-effective tool for measuring distance in various DIY and professional projects. Cuando se combina con una Raspberry Pi, abre un mundo de posibilidades para crear aplicaciones como detección de obstáculos, medición de nivel e incluso instalaciones interactivas. This blog post will guide you through the process of setting up and using the HC-SR04 sensor with your Raspberry Pi.
What is the HC-SR04 Ultrasonic Sensor?
El HC-SR04 es un módulo de sensor ultrasónico que mide la distancia emitiendo ondas ultrasónicas y calculando el tiempo que tarda el eco en regresar. Funciona a 5V y es conocido por su precisión y confiabilidad en mediciones de distancia de alcance corto a medio, típicamente entre 2 cm y 400 cm.
Componentes que necesitará
- Raspberry Pi (cualquier modelo con pines GPIO, como Raspberry Pi 4)
- Sensor ultrasónico HC-SR04
- Cables de jersey
- Tablero de circuitos
- Resistencia de 10kΩ (para división de voltaje)
- Opcional: LED y resistencia para retroalimentación visual
Cableado el HC-SR04 al Raspberry Pi
Conectar el HC-SR04 al Raspberry Pi requiere un manejo cuidadoso, especialmente porque los pines GPIO de Raspberry Pi funcionan a 3.3V y el HC-SR04 funciona a 5V. Para evitar daños a su PI, es esencial usar un divisor de voltaje en el pasador de eco.
Conexiones
- VCC of HC-SR04 to 5V pin on Raspberry Pi
- Gnd of HC-SR04 to Gnd en Raspberry Pi
- Trigonometría Pin de HC-SR04 a un Pasador de gpio en Raspberry Pi (por ejemplo, GPIO23)
- Eco pin of HC-SR04 to Raspberry Pi through a voltage divider
Setting Up the Voltage Divider
Para conectar de manera segura el pin de eco a la Raspberry Pi, use un divisor de voltaje con una resistencia de 10kΩ y una resistencia de 20kΩ. Esto reducirá la señal de 5 V a aproximadamente 3.3V.
# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
# |
# 20kΩ
# |
# GND
Instalación de las bibliotecas necesarias
Antes de escribir el código, asegúrese de que su Raspberry Pi esté actualizado y tenga las bibliotecas necesarias instaladas.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio
Escribiendo el guión de Python
A continuación se muestra un simple script de Python para interactuar con el sensor HC-SR04. Este script envía un pulso de activación, espera el eco y calcula la distancia en función del tiempo necesario para que el eco regrese.
import RPi.GPIO as GPIO
import time
# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
# Set GPIO Pins
TRIG = 23
ECHO = 24
print("Distance Measurement In Progress")
# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def distance():
# Set TRIG to LOW
GPIO.output(TRIG, False)
time.sleep(2)
# Send 10us pulse to TRIG
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
start_time = time.time()
stop_time = time.time()
# Save StartTime
while GPIO.input(ECHO) == 0:
start_time = time.time()
# Save Time of Arrival
while GPIO.input(ECHO) == 1:
stop_time = time.time()
# Time difference between start and arrival
time_elapsed = stop_time - start_time
# Multiply with speed of sound (34300 cm/s)
# and divide by 2, because there and back
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print("Measured Distance = %.1f cm" % dist)
time.sleep(1)
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
Ejecutando el script
Asegúrese de que su cableado sea correcto y luego ejecute el script usando Python 3:
python3 hc-sr04.py
Debería ver la distancia medida en centímetros impresos en la consola. Si está utilizando un LED para comentarios visuales, puede modificar el script para iluminar el LED cuando un objeto está dentro de un rango determinado.
Mejorando su proyecto
Una vez que tenga las mediciones básicas de distancia funcionando, considere integrar características adicionales:
- Indicadores LED: Use LED para indicar diferentes rangos de distancia.
- Pantalla LCD: Muestre la distancia en una pantalla LCD.
- Registro de datos: Medidas de distancia de registro a lo largo del tiempo para el análisis.
- Sistemas de alerta: Activar alarmas o notificaciones cuando los objetos están demasiado cerca.
Solución de problemas de problemas comunes
Trabajar con sensores y GPIO a veces puede ser un desafío. Aquí hay algunos problemas comunes y cómo abordarlos:
- Cableado incorrecto: Vuelva a verificar todas las conexiones, especialmente el divisor de voltaje en el pasador de eco.
- Medidas ruidosas: Asegúrese de que su configuración sea estable y considere agregar condensadores para filtrar el ruido.
- Conflictos de GPIO: Asegúrese de que ningún otro scripts o servicios esté utilizando los mismos pines GPIO.
-
Permisos: Ejecute sus scripts con los permisos apropiados, utilizando
sudo
si es necesario.
Conclusión
El sensor ultrasónico HC-SR04 es un componente versátil y confiable que, cuando se combina con la Raspberry Pi, puede servir a una multitud de aplicaciones desde una simple medición de distancia hasta sistemas de automatización complejos. Siguiendo los pasos descritos en esta guía, debería poder configurar y comenzar a experimentar con el HC-SR04 en su Raspberry Pi. ¡Feliz tinking!