Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más profundamente en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
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.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!
Ultrasonido
Descripción general
Cuando estás retrocediendo, verás la distancia entre el coche y los obstáculos circundantes para evitar colisiones. El dispositivo para detectar la distancia es un sensor ultrasónico. En este experimento, aprenderás cómo la onda ultrasónica detecta la distancia.
Componentes necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
---|---|---|
Elite Explorer Kit |
300+ |
También puedes comprarlos por separado desde los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
Cableado
Diagrama esquemático
Código
Nota
Puedes abrir el archivo
06-ultrasonic.ino
en la rutaelite-explorer-kit-main\basic_project\06-ultrasonic
directamente.O copiar este código en Arduino IDE.
Análisis del código
1. Inicializa el sensor ultrasónico y el LCD1602
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // inicializa el objeto de pantalla de cristal líquido con la dirección I2C 0x27, 16 columnas y 2 filas // Define los números de pin para el sensor ultrasónico const int echoPin = 3; const int trigPin = 4; void setup() { pinMode(echoPin, INPUT); // Establecer el pin de eco como entrada pinMode(trigPin, OUTPUT); // Establecer el pin de disparo como salida lcd.init(); // inicializa el LCD lcd.clear(); // limpia la pantalla LCD lcd.backlight(); // Asegúrate de que la luz de fondo esté encendida }
2. Muestra la distancia en el LCD1602
void loop() { float distance = readDistance(); // Llama a la función para leer los datos del sensor y obtener la distancia lcd.setCursor(0, 0); // Coloca el cursor en la Línea 1, Columna 1. Desde aquí se mostrarán los caracteres lcd.print("Distance:"); // Imprime Distance: en el LCD lcd.setCursor(0, 1); // Coloca el cursor en la Línea 1, Columna 0 lcd.print(" "); // Aquí es para dejar algunos espacios después de los caracteres para borrar los caracteres anteriores que aún pueden quedar. lcd.setCursor(7, 1); // Coloca el cursor en la Línea 1, Columna 7 lcd.print(distance); // imprime en el LCD el valor de la distancia convertida del tiempo entre el envío y la recepción del ping. lcd.setCursor(14, 1); // Coloca el cursor en la Línea 1, Columna 14 lcd.print("cm"); // imprime la unidad "cm" delay(800); // Retraso de 800 milisegundos antes de repetir el bucle }
3. Convierte el tiempo en distancia
float readDistance(){// ...}Aquí, «PING» se refiere al proceso donde el sensor ultrasónico envía un pulso ultrasónico (o «ping») y luego espera su eco.
El PING se activa mediante un pulso ALTO de 2 o más microsegundos. (Da un breve pulso BAJO antes para asegurar un pulso ALTO limpio).
digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);El pin de eco se utiliza para leer la señal de PING, un pulso ALTO cuya duración es el tiempo (en microsegundos) desde el envío del ping hasta la recepción del eco del objeto. Usamos la siguiente función para obtener la duración.
pulseIn(echoPin, HIGH);La velocidad del sonido es de 340 m/s o 29 microsegundos por centímetro.
Esto da la distancia recorrida por el ping, de ida y vuelta, por lo que dividimos por 2 para obtener la distancia del obstáculo.
float distance = pulseIn(echoPin, HIGH) / 29.00 / 2; // Fórmula: (340m/s * 1us) / 2