.. note:: ¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas. **¿Por qué unirte?** - **Soporte Experto**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprende y Comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Avances Exclusivos**: Obtén acceso anticipado a nuevos anuncios de productos y adelantos exclusivos. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones Festivas y Sorteos**: Participa en sorteos y promociones especiales de temporada. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo. 2.2.5Módulo Sensor Ultrasónico ================================= Introducción --------------- El sensor ultrasónico utiliza ondas ultrasónicas para detectar objetos con precisión y medir distancias. Emite ondas ultrasónicas y las convierte en señales electrónicas. Componentes ------------- .. image:: ../img/list_2.2.5.png Diagrama del Circuito ------------------------- .. image:: ../img/image329.png Procedimientos Experimentales --------------------------------- **Paso 1:** Construye el circuito. .. image:: ../img/image220.png **Paso 2:** Dirígete a la carpeta del código. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/nodejs/ **Paso 3:** Ejecuta el código. .. raw:: html .. code-block:: sudo node ultrasonic_sensor.js Después de ejecutar el código, el módulo de sensor ultrasónico detectará la distancia entre el obstáculo y el propio módulo, y el valor de la distancia se imprimirá en la pantalla. **Código** .. code-block:: js const Gpio = require('pigpio').Gpio; // Número de microsegundos que tarda el sonido en viajar 1 cm a 20 grados Celsius 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); // Asegura que el trigger esté bajo const watchHCSR04 = () => { let startTick; echo.on('alert', (level, tick) => { if (level === 1) { startTick = tick; } else { const endTick = tick; const diff = (endTick >> 0) - (startTick >> 0); // Aritmética de 32 bits sin signo console.log(diff / 2 / MICROSECDONDS_PER_CM); } }); }; watchHCSR04(); // Activa la medición de distancia una vez por segundo setInterval(() => { trigger.trigger(10, 1); // Configura el trigger en alto durante 10 microsegundos }, 1000); **Explicación del Código** La función ``trigger`` se utiliza para generar un pulso en un GPIO, y ``alerts`` para determinar el tiempo de cambio de estado de un GPIO con precisión de unos microsegundos. Estas dos características se pueden combinar para medir distancias utilizando el sensor ultrasónico HC-SR04. .. code-block:: js setInterval(() => { trigger.trigger(10, 1); // Configura el trigger en alto durante 10 microsegundos }, 1000); Esto envía un pulso ultrasónico de 10 microsegundos periódicamente. .. code-block:: js const watchHCSR04 = () => { echo.on('alert', (level, tick) => { if (level === 1) { startTick = tick; } else { const endTick = tick; const diff = (endTick >> 0) - (startTick >> 0); // Aritmética de 32 bits sin signo console.log(diff / 2 / MICROSECDONDS_PER_CM); } }); }; Esta función configura una alerta que registrará el tiempo entre el envío del pulso (nivel 1) y la recepción del eco (nivel 0). Multiplicando la diferencia de tiempo por la velocidad del sonido (y dividiendo por 2), se obtiene la distancia al obstáculo. .. https://github.com/fivdi/pigpio Imagen del Fenómeno ---------------------- .. image:: ../img/image221.jpeg