Inicio Noticias en 330 Tutorial #8 de Raspberry Pi Pico: sensor ultrasónico

Tutorial #8 de Raspberry Pi Pico: sensor ultrasónico

Los sensores ultrasónicos son unos de los más usados en prácticas de electrónica. Los puedes encontrar en robots que evitan obstáculos, detectores de presencia, medidores de nivel, en autos al estacionarse y más. En esta entrada veremos como puedes conectar un sensor HC-SR04 a tu Raspberry Pi Pico y cómo obtener medidas precisas con el.

Diagrama de conexiones

Para esta práctica necesitarás

  • Raspberry Pi Pico
  • Sensor ultrasónico HC-SR04
  • Jumpers macho-macho (al menos 4)
  • 2 resistencias de 1 kOhms
  • Cable micro USB
  • Flexómetro o regla graduada (opcional)

Lo primero que debes saber es que debes tener cuidado al conectar este sensor a tu Raspberry Pi Pico, ya que maneja voltajes que podrían dañarla. Sucede que el HC-SR04 maneja dos pines, uno de entrada (TRIG) y otro de salida (ECHO). El pin de salida maneja un voltaje de 5V, mientras que tu Raspberry Pi Pico, solo de 3.3V. Si conectas directamente el sensor a los pines de tu tarjeta, la corriente que fluye dañará el puerto de entrada.

Para evitar esto, basta con construir un arreglo de resistencias que permita disminuir el voltaje de salida. Para lograrlo, conecta tu practica como se muestra en la imagen.

El punto intermedio entre los resistores va hacia el pin de tu Raspberry Pi Pico. Vía: fritzing
Así es como deben quedar nuestras conexiones. Vía: freva.com

Carga tu programa con Thonny

Ahora solo necesitas cargar tu programa a la tarjeta. A continuación te mostramos un ejemplo que toma la señal del sensor y devuelve la distancia entre este y el objeto.

from machine import Pin
import time
trig = Pin(17, Pin.OUT)
echo = Pin(16, Pin.IN, Pin.PULL_DOWN)
while True:
     trig.value(0)
     time.sleep(0.1)
     trig.value(1)
     time.sleep_us(2)
     trig.value(0)
     while echo.value()==0:
          pulse_start = time.ticks_us()
     while echo.value()==1:
          pulse_end = time.ticks_us()
     pulse_duration = pulse_end - pulse_start
     distance = pulse_duration * 17165 / 1000000
     distance = round(distance, 0)
     print ('Distance:',"{:.0f}".format(distance),'cm')
     time.sleep(1)

El programa a grandes rasgos emite un pulso a través de Trig, esperando a que se genera un eco que pueda ser leído de nuevo a través del pin Echo. Midiendo cuanto tarda en regresar la respuesta, podemos determinar la distancia del sensor y el objeto.

Si todo está en orden, la consola debería mostrar el resultado de la medición cada segundo

Para calibrar tu sensor puedes utilizar un flexómetro o regla graduada y verificar que las mediciones coinciden con tu instrumento. Recuerda que la superficie del objeto a medir debe reflejar bien las ondas sonoras. Si usas un trozo de alfombra o el ambiente es muy húmedo tus mediciones pueden salir afectadas.

Referencias:

HC-SR04 ultrasonic distance sensor with Raspberry Pi Pico