Sensores Arduino y Raspberry Pi
38Descripción:
Este módulo es ideal para medir distancias en un rango de 2 cm a 3 m. Con una resolución de unos 3 mm, las distancias se pueden medir por señal ultrasónica. Si se aplica una señal (flanco descendente) a la entrada del disparador, se realiza una medición de distancia y se emite en la salida de eco como una señal PWM TTL. El sensor de distancia ultrasónico es especialmente adecuado para la detección de obstáculos, la medición de distancias, como indicador de nivel y para aplicaciones industriales.
PRINCIPIO DE FUNCIONAMIENTO
Este módulo muestra cómo se puede usar un altavoz ultrasónico y un micrófono para medir la distancia a un objeto sin contacto. El principio se basa en el hecho de que la velocidad del sonido en el aire permanece casi constante a temperatura constante: a 20 °C es de 343,2 m/s.
A partir de esto, la medición de distancia se puede convertir en una medición de tiempo, que luego puede ser fácilmente asumida por microcontroladores.
Cuando se activa, el altavoz ultrasónico (transductor) emite un ruido ultrasónico de un máximo de 200 µs. El altavoz ultrasónico emite una señal de 40 kHz. Esto significa que se emiten 8 períodos (cambios de borde) dentro de los 200 µs en los que el sensor emite su ruido ultrasónico. Para llegar matemáticamente a estos 8 períodos de la señal de 40 kHz, se calcula todo como se muestra a continuación.
Número de períodos en un segundo = 40000
Tiempo = 1s
Duración de un solo período:
1s / 40000 = 25µs**
Duración máxima del sonido ultrasónico = 200us
Duración de un solo período = 25us
Número de períodos en el sonido ultrasónico:
200 µs / 25 µs = 8
El principio se mantiene simple, se emite un sonido ultrasónico desde el altavoz en la PCB, que luego se refleja en un objeto y es captado por el micrófono en la PCB. El ultrasonido se usa porque está fuera del rango de audición del oído humano (alrededor de 20Hz-22kHz).
La transmisión de la señal ultrasónica se inicia cuando se recibe una señal de inicio de 10 µs de duración (ActiveHigh) en el "pin de entrada del disparador". Después de la transmisión, la señal se activa en el "pin de señal de salida de eco" (ActiveHigh). Si la señal reflejada ahora se capta de nuevo en el micrófono, la señal de eco se desactiva nuevamente después de la detección. El tiempo entre la activación y desactivación de la señal de eco se puede medir y convertir en distancia, ya que esto también corresponde al tiempo que tarda la señal ultrasónica en cubrir la distancia entre altavoz-> pared reflectante -> micrófono en el aire. Luego, la conversión se realiza aproximando una velocidad constante del aire: la distancia es entonces la mitad de la distancia recorrida.
Al recibir una señal el Trigger, comenzará la medición que será enviada como PWM-TTL por el echo.
Especificaciones:
Operating Voltage: 5V
Working Current: 15 mA
Measurable distance: 2 cm - 400 cm
Measurement resolution: 3 mm
Min. time between measurements: 50 µs
Quiescent Current: <2mA
Effectual Angle: <15°
Measuring Angle: 30°
Trigger Input Pulse width: 10uS TTL pulse
Echo Output Signal: TTL pulse proportional to the distance range
Dimension: 45mm x 20mm x 15mm
Speed of sound in the air at 20ºC (68ºF): 343m/s
Distance to an object: (((speed of sound in the air)*time)/2)
Esquemático:
Pinout:
Conexión Arduino:
Código Arduino:
Conexión Raspberry Pi:
Para poder conectar el módulo de 5V al Raspberry Pi debemos hacer un divisor resistivo. Un divisor resistivo consiste de dos resistencias (R1 y R2) en serie conectadas a un voltaje de entrada (Vin), el cual debe ser reducido a un voltaje de salida (Vout). En nuestro circuito, Vin corresponderá al ECHO, el cual requiere disminuir de 5V al Vout que necesitamos de 3.3v. El siguiente esquema muestra la disposición que deben tener las resistencias:
Código Raspberry Pi:
Creamos el siguiente programa desde la Terminal o con tu IDE favorito:
nano KY_050.py
Presionamos Ctrl + x para salir, luego y para confirmar los cambios, finalmente Enter. Para guardarlos.
Para correr el programa abrimos la Terminal e ingresamos:
sudo python KY_050.py
Conexión Raspberry Pi Pico:
Código MicroPython Raspberry Pi Pico:
Código Kaluma's JavaScript Raspberry Pi Pico:
Requiere Package hc-sr04 (En Windows para instalar Packages requerimos tener Git instalado, en Pi OS viene por defecto, si usas otro Linux: sudo apt install git).
Abrimos la Terminal o el CMD e ingresamos:
cd
mkdir ky050-app
cd ky050-app
npm install https://github.com/niklauslee/hc-sr04 --save
npm init -y
nano index.js
Guardamos los cambios con Ctrl+o, Confirmamos con Enter, Cerramos el archivo con Ctrl+x.
En Windows en lugar de nano tenemos notepad, guardar los cambios con Ctrl+g, Salir con Ctrl+w:
notepad index.js
kaluma flash ./index.js --bundle --shell
Conexión Raspberry Pi Pico W:
Código MicroPython Raspberry Pi Pico W:
Código Kaluma's JavaScript Raspberry Pi Pico W:
Requiere Package hc-sr04 (En Windows para instalar Packages requerimos tener Git instalado, en Pi OS viene por defecto, si usas otro Linux: sudo apt install git).
Abrimos la Terminal o el CMD e ingresamos:
cd
mkdir ky050-app
cd ky050-app
npm install https://github.com/niklauslee/hc-sr04 --save
npm init -y
nano index.js
Guardamos los cambios con Ctrl+o, Confirmamos con Enter, Cerramos el archivo con Ctrl+x.
En Windows en lugar de nano tenemos notepad, guardar los cambios con Ctrl+g, Salir con Ctrl+w:
notepad index.js
kaluma flash ./index.js --bundle --shell