Introducción
En este tutorial te enseñamos a conectar y programar un sensor ultrasónico con Raspberry Pi Pico y el lenguaje de programación MicroPython.
Para este tutorial estaremos utilizando un sensor ultrasónico HC-SR04 que es muy común y accesible. Este sensor permite medir distancia sin contacto gracias a la emisión de ondas de sonido a frecuencias ultrasónicas; Mediante la medición del tiempo que tarda en viajar el sonido es posible calcular la distancia.
Este es un sensor muy común, usado en infinidad de proyectos, por lo que hablar de su uso es importante para tener completa nuestra colección de tutoriales de Raspberry Pi Pico.
Materiales
- Raspberry Pi Pico (Pico W o Pico 2 también funcionan)
- Sensor ultrasónico HC-SR04
- Protoboard de 400 puntos
- Alambre para protoboard
- Resistencia de 1.2K 5% 1/4 W
- Resistencia de 2.2K 5% 1/4 W
Para usar la pantalla puede ser necesario soldar los pines macho que permiten colocarla en el protoboard.
Diagrama de conexión para sensor ultrasónico HC-SR04 y Raspberry Pi Pico
Uno de los detalles a tener en cuenta al conectar un sensor ultrasónico HC-SR04 es que la mayoría de las versiones que se comercializan solamente funcionan con una alimentación y niveles lógicos de 5 volts y nuestra Raspberry Pi Pico funciona con lógica de 3.3 volts. Afortunadamente esto se puede solventar con solo dos resistencias que forman un un divisor resistivo en el pin Echo.
El diagrama para conectar el sensor ultrasónico que se muestra a continuación permite solventar los diferentes voltajes de operación y hacer que nuestra tarjeta funcione de manera segura.

Durante el armado debemos tener en cuenta algunas precauciones y consideraciones:
- Puentear la tierra y voltaje desde la Raspberry Pi Pico hacia los buses de alimentación y asegurarnos de una correcta conexión de la alimentación al sensor.
- El sensor debe alimentarse con 5 Volts (Vbus)
- Respetar la función de los pines:
- La resistencia de 2.2K debe conectarse a tierra en el divisor resistivo, mientras que la de 1.2K debe conectarse al pin Echo de nuestro sensor. El punto en donde se unen ambas resistencias es la señal de eco pero con nivel lógico de 3.3 volts.
Código para medir distancia con sensor ultrasónico y Raspberry Pi Pico
A continuación mostramos el código para realizar la medición de distancia con MicroPython, es importante mencionar que no estamos usando ningún módulo o librería específico para realizar la interfaz con el sensor ultrasónico.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # GEEK FACTORY - Dale vuelo a tus proyectos # https://www.geekfactory.mx # # Ejemplo para medir distancia con el sensor ultrasónico HC-SR04 y la Raspberry Pi Pico, # el resultado de la medición se muestra en la terminal serial. # # importar los módulos de python necesarios para que este programa funcione import machine, time # pines "echo" y "trigger" para la interfaz con el sensor pinecho = machine.Pin(15, machine.Pin.IN) pintrig = machine.Pin(16, machine.Pin.OUT) # Definir una función que realiza la medición de distancia con el sensor ultrasónico # y retorna el resultado al código que la llama. def read_ultrasonic(): # esperar un poco antes de enviar el pulso de disparo pintrig(0) time.sleep_us(10) # enviar pulso de disparo de 10 uS pintrig(1) time.sleep_us(10) pintrig(0) # a continuación mediremos el puso de eco # esperamos mientras comienza el pulso alto while pinecho() == 0: pass # almacenar en una variable el tiempo en el que inicia el pulso en el pin "echo" toff = time.ticks_us() # esperamos mientras el pulso está en nivel alto while pinecho() == 1: pass # almacenar en una variable el tiempo en el que termina el pulso en el pin "echo" ton = time.ticks_us() # calcular la duración del pulso de eco elapsedtime = ton - toff # calcular la distancia en centímetros dist = elapsedtime / 58 # devolvemos la distancia que acabamos de calcular dentro de la función return dist while True: # llamamos a la función de medición distance = read_ultrasonic() # imprimimos la distancia print(f'Distancia medida: {distance} cm') # esperamos un segundo time.sleep(1) |
Enlaces y lecturas recomendadas
- Sensor ultrasónico HC-SR04 con Arduino
- Tutorial externo (en inglés)
- Página de producto sensor ultrasónico HC-SR04
Conclusión
- En este tutorial observamos cómo podemos manejar un sensor ultrasónico HC-SR04 con una Raspberry Pi Pico para medir distancias. Realizamos nuestra programa usando el API estándar de MicroPython sin requerir la instalación de módulos o librerías.
- Observamos cómo podemos medir la longitud de un pulso usando las funciones de módulo “time” de MicroPython.
- Aprendimos a conectar una señal de 5 volts a los pines de entrada digitales de nuestra tarjeta Raspberry Pi Pico.








![Resistencia 1/4 de watt 5% tolerancia [1 Ohm a 10 MOhm]](https://www.geekfactory.mx/wp-content/uploads/resistencia-1-4-de-watt-5-tolerancia-300x300.jpg.webp)




