.. 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