Obtenga entrega gratuita en todas las órdenes más de £20!

Using the HC-SR04 With the Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

El HC-SR04 sensor ultrasónico es una herramienta popular y económica para medir distancias en diversos proyectos DIY y profesionales. Al emparejarlo 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. Esta entrada del blog te guiará a través del proceso de configurar y usar el HC-SR04 con tu Raspberry Pi.

¿Qué es el sensor ultrasónico HC-SR04?

El HC-SR04 es un módulo 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 fiabilidad en mediciones de distancia de corto a medio alcance, típicamente entre 2 cm y 400 cm.

Componentes que necesitarás

  • Raspberry Pi (cualquier modelo con pines GPIO, como Raspberry Pi 4)
  • HC-SR04 Sensor ultrasónico
  • Cables jumper
  • Protoboard
  • Resistencia de 10kΩ (para divisor de voltaje)
  • Opcional: LED y resistencia para retroalimentación visual

Conectar el HC-SR04 a la Raspberry Pi

Conectar el HC-SR04 a la Raspberry Pi requiere manejarlo con cuidado, especialmente porque los pines GPIO de la Raspberry Pi operan a 3.3V y el HC-SR04 opera a 5V. Para evitar dañar la Pi, es esencial usar un divisor de voltaje en el pin Echo.

Conexiones de pines

  • VCC del HC-SR04 al pin 5V de la Raspberry Pi
  • GND del HC-SR04 al GND de la Raspberry Pi
  • Trig pin del HC-SR04 a un pin GPIO en la Raspberry Pi (p. ej., GPIO23)
  • Echo pin del HC-SR04 a la Raspberry Pi a través de un divisor de voltaje

Configurar el divisor de voltaje

Para conectar de forma segura el pin Echo a la Raspberry Pi, usa un divisor de voltaje con una resistencia de 10kΩ y una de 20kΩ. Esto reducirá la señal de 5V a aproximadamente 3.3V.


# Esquema de ejemplo para divisor de voltaje
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Instalar las bibliotecas necesarias

Antes de escribir el código, asegúrate de que tu Raspberry Pi esté actualizada y tenga instaladas las bibliotecas necesarias.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Escribir el script en Python

A continuación hay un script simple en Python para conectar el sensor HC-SR04. Este script envía un pulso de trigger, espera el eco y calcula la distancia basándose en el tiempo que tarda en regresar el eco.


import RPi.GPIO as GPIO
import time

# Modo GPIO (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Definir pines GPIO
TRIG = 23
ECHO = 24

print("Medición de distancia en progreso")

# Definir dirección de los pines GPIO (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Poner TRIG en LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Enviar pulso de 10us al TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Guardar StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Guardar tiempo de llegada
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Diferencia de tiempo entre inicio y llegada
    time_elapsed = stop_time - start_time
    # Multiplicar por la velocidad del sonido (34300 cm/s)
    # y dividir por 2, porque va y vuelve
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Distancia medida = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Medición detenida por el usuario")
        GPIO.cleanup()

Ejecutar el script

Asegúrate de que el cableado esté correcto y luego ejecuta el script usando Python 3:


python3 hc-sr04.py

Deberías ver la distancia medida en centímetros impresa en la consola. Si estás usando un LED para retroalimentación visual, puedes modificar el script para encender el LED cuando un objeto esté dentro de cierto rango.

Mejorando tu proyecto

Una vez que tengas las mediciones básicas funcionando, considera integrar funciones adicionales:

  • Indicadores LED: Usa LEDs para indicar diferentes rangos de distancia.
  • Pantalla LCD: Muestra la distancia en una pantalla LCD.
  • Registro de datos: Registra mediciones de distancia a lo largo del tiempo para su análisis.
  • Sistemas de alerta: Activa alarmas o notificaciones cuando los objetos estén demasiado cerca.

Solución de problemas comunes

Trabajar con sensores y GPIO a veces puede ser desafiante. Aquí hay algunos problemas comunes y cómo abordarlos:

  • Cableado incorrecto: Verifica todas las conexiones, especialmente el divisor de voltaje en el pin Echo.
  • Mediciones ruidosas: Asegura que tu montaje sea estable y considera añadir condensadores para filtrar el ruido.
  • Conflictos de GPIO: Asegúrate de que ningún otro script o servicio esté usando los mismos pines GPIO.
  • Permisos: Ejecuta tus scripts con los permisos adecuados, usando sudo si es necesario.

Conclusión

El sensor ultrasónico HC-SR04 es un componente versátil y fiable que, combinado con la Raspberry Pi, puede servir para 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ías poder configurar y comenzar a experimentar con el HC-SR04 en tu Raspberry Pi. ¡Feliz tinkering!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Escribir un comentario