Nota
Hola, ¡bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previsualizaciones exclusivas: Accede anticipadamente a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones y sorteos festivos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.2.8 Sensor Ultrasónico
Introducción
El sensor ultrasónico utiliza ultrasonidos para detectar objetos y medir distancias con precisión. Emite ondas ultrasónicas y las convierte en señales electrónicas.
Componentes necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DE COMPONENTES |
ENLACE DE COMPRA |
|---|---|
Diagrama esquemático
Procedimientos experimentales
Paso 1: Construye el circuito.
Paso 2: Ve a la carpeta del código.
cd ~/raphael-kit/nodejs/
Paso 3: Ejecuta el código.
sudo node ultrasonic_sensor.js
Una vez ejecutado el código, el módulo del sensor ultrasónico detecta la distancia entre el obstáculo al frente y el propio módulo, luego el valor de la distancia se imprimirá en la pantalla.
Código
const Gpio = require('pigpio').Gpio;
// The number of microseconds it takes sound to travel 1cm at 20 degrees celcius
const MICROSECDONDS_PER_CM = 1e6/34321;
const trigger = new Gpio(23, {mode: Gpio.OUTPUT});
const echo = new Gpio(24, {mode: Gpio.INPUT, alert: true});
trigger.digitalWrite(0); // Make sure trigger is low
const watchHCSR04 = () => {
let startTick;
echo.on('alert', (level, tick) => {
if (level === 1) {
startTick = tick;
} else {
const endTick = tick;
const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic
console.log(diff / 2 / MICROSECDONDS_PER_CM);
}
});
};
watchHCSR04();
// Trigger a distance measurement once per second
setInterval(() => {
trigger.trigger(10, 1); // Set trigger high for 10 microseconds
}, 1000);
Explicación del Código
La función trigger se puede usar para generar un pulso en un GPIO y
alerts se pueden usar para determinar el tiempo de un cambio de estado GPIO
con precisión de unos pocos microsegundos.
Estas dos características se pueden combinar para medir la distancia usando un sensor ultrasónico HC-SR04.
setInterval(() => {
trigger.trigger(10, 1); // Set trigger high for 10 microseconds
}, 1000);
This is to periodically send out a 10us ultrasonic pulse.
const watchHCSR04 = () => {
echo.on('alert', (level, tick) => {
if (level === 1) {
startTick = tick;
} else {
const endTick = tick;
const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic
console.log(diff / 2 / MICROSECDONDS_PER_CM);
}
});
};
Esta función configura una alerta que registrará el tiempo entre el envío del pulso (level es 1) y la recepción del eco (level es 0). Multiplicando la diferencia de tiempo por la velocidad del sonido (y dividiendo por 2), se puede obtener la distancia al obstáculo delante.
Imagen del fenómeno