Un sensor de ultrasonidos es un dispositivo para medir distancias.
Su funcionamiento se base en el envío de un pulso de alta frecuencia,
no audible por el ser humano. Este pulso rebota en los objetos cercanos y
es reflejado hacia el sensor, que dispone de un micrófono adecuado para
esa frecuencia.
Midiendo el tiempo entre pulsos,
conociendo la velocidad del sonido, podemos estimar la distancia del
objeto contra cuya superficie impactó el impulso de ultrasonidos.
FUNCIONAMIENTO |
Es decir, el sonido tarda 29,2 microsegundos en recorrer un centímetro. Por tanto, podemos obtener la distancia a partir del tiempo entre la emisión y recepción del pulso mediante la siguiente ecuación.
El motivo de divir por dos el tiempo es porque hemos medido el tiempo que tarda el pulso en ir y volver, por lo que la distancia recorrida por el pulso es el doble de la que queremos medir.
CONEXIÓN ELÉCTRICA |
CÓDIGO ARDUINO |
const int EchoPin = 11; const int TriggerPin = 12;void setup() { Serial.begin(9600); pinMode(TriggerPin, OUTPUT); pinMode(EchoPin, INPUT); }void loop() { int cm = ping(TriggerPin, EchoPin); Serial.print(“Distancia: “); Serial.println(cm); delay(1000); } int ping(int TriggerPin, int EchoPin) { long duration, distanceCm; digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us delayMicroseconds(4); digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us delayMicroseconds(10); digitalWrite(TriggerPin, LOW); duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos distanceCm = duration * 10 / 292/ 2; //convertimos la distancia, en cm return distanceCm; } |
CÓDIGO ARDUINO CON LIBRERIA ULTRASONIC |
// incluimos la librerias: #include <Ultrasonic.h> Ultrasonic sensor(12,11,30000); // (Trig PIN,Echo PIN, microsegundos max “distancia máxima”) 30000us = 5 metros int distancia=0; //Declaramos la variable donde guardaremos la distanciavoid setup() { Serial.begin(9600); //Inicializamos el puerto serie }void loop() { distancia=sensor.Ranging(CM); // Medimos la distancia y la guardamos en la variable Serial.print(“Distancia “); // Imprimimos la palabra distancia en el monitor serial Serial.print(distancia); // Imprimimos la variable distancia Serial.println(” cm”); //Imprimimos las letras cm y saltamos de linea. delay (2000); //Esperamos 2 segundos para repetir el proceso. } |
Fuentes consultadas:
No hay comentarios:
Publicar un comentario