en este proyecto le presentaré el sensor ultrasónico HC-SR04. Funciona enviando ondas de sonido desde el transmisor, que luego rebotan en un objeto y luego regresan al receptor. Puede determinar qué tan lejos está algo por el tiempo que tardan las ondas de sonido en volver al sensor. ¡Vamos al grano!,

Conexiones

Las conexiones son muy sencillas:

  • VCC a 5V
  • GND a GND
  • Trigonométricas para el pin 9
  • Echo para el pin 10

en realidad Se puede conectar Trig y Echo a cualquiera de los pines quieres, 9 y 10 son solo los estoy usando.

Diagrama (En Tinkercad sólo había una mesa de Ping))) sensor de manera que tuve que editar eso)

Código

en Primer lugar definimos los pines que Trigonométricas y de Echo están conectados.,

const int trigPin = 9; const int echoPin = 10;

luego declaramos 2 flotadores, duración y distancia, que mantendrán la longitud de la onda de sonido y cuán lejos está el objeto.

float duration, distance; 

a continuación, en la configuración, declaramos el PIN trigonométrico como salida, el pin de Eco como entrada e iniciamos las comunicaciones en serie.

void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } 

ahora, en el bucle, lo que hacemos es establecer primero el trigPin bajo durante 2 microsegundos solo para asegurarnos de que el pin en bajo primero., Luego, lo configuramos alto durante 10 microsegundos, que envía una explosión sónica de 8 ciclos desde el transmisor, que luego rebota de un objeto y golpea el receptor(que está conectado al Pin de Eco).

cuando las ondas de sonido golpean el receptor, gira el pin de Eco alto por el tiempo que las ondas viajaban. Para conseguirlo, podemos usar una práctica función Arduino llamada pulseIn (). Toma 2 argumentos, el pin que está escuchando(en nuestro caso, el pin de Eco) y un estado (alto o bajo)., Lo que hace la función es esperar a que el pin vaya a cualquier estado que ponga, comienza el tiempo, y luego detiene el tiempo cuando cambia al otro estado. En nuestro caso, pondríamos alto ya que queremos comenzar a cronometrar cuando el pin de Eco va alto. Almacenaremos el tiempo en la variable duración. (Devuelve el tiempo en microsegundos)

duration = pulseIn(echoPin, HIGH); 

ahora que tenemos el tiempo, podemos usar la ecuación velocidad = distancia / tiempo, pero lo haremos tiempo X Velocidad = Distancia porque tenemos la velocidad. ¿Qué velocidad tenemos? La velocidad del sonido, por supuesto!, La velocidad del sonido es de aproximadamente 340 metros por segundo, pero dado que la función pulseIn() devuelve el tiempo en microsegundos, necesitaremos tener una velocidad en microsegundos también, que es fácil de obtener. Una búsqueda rápida en Google de» velocidad del sonido en centímetros por microsegundo » dirá que lo es .0343 C / µS. Usted podría hacer los cálculos, pero buscar es más fácil. De todos modos, con esa información, podemos calcular la distancia! Simplemente multiplique la duración por .0343 y luego divídalo por 2 (porque las ondas sonoras viajan hacia el objeto y hacia atrás). Lo almacenaremos en la variable distancia.,

distance = (duration*.0343)/2; 

El resto solo está imprimiendo los resultados en el Monitor Serie.

 Serial.print("Distance: "); Serial.println(distance); delay(100); } 

imagen de portada de: Sparkfun