SENSOR DE ULTRASONIDO EN ARDUINO
SENSOR DE ULTRASONIDOS EN ARDUINO
¿QUÉ ES UN SENSOR DE ULTRASONIDOS?
Este sensor de ultrasonidos es un dispositivo que nos permite medir distancias aproximadas.
Su funcionamiento básicamente se basa en el envio de un pulso de alta frecuencia el cual el ser humano no puede llegar a reconocerlo, no es audible para nosotros. Esta frecuencia alta rebota en objetos que se encuentran cerca y así el sensor lo refleja, ya que posee un microfono adecuado para esta frecuencia.
Su funcionamiento básicamente se basa en el envio de un pulso de alta frecuencia el cual el ser humano no puede llegar a reconocerlo, no es audible para nosotros. Esta frecuencia alta rebota en objetos que se encuentran cerca y así el sensor lo refleja, ya que posee un microfono adecuado para esta frecuencia.
Se mide el tiempo entre los pulsos así nos permite conocer la velocidad del sonido y se puede llegar a estimar la distancia que hay entre el objeto contra la superficie que fue impactada por el impulso de ultrasonidos
¿CÓMO FUNCIONA UN SENSOR DE ULTRASONIDOS?
El sensor se basa en medir el tiempo entre el envio y la recepción de un pulso sonoro.
La velocidad del sonido es 343m/s en condiciones de temperatura 20 ºC, 50% de humedad, presión atmosférica a nivel del mar:
El sonido tarda 29,2 microsegundos en recorrer un centrimetro.
MONTAJE DEL SENSOR ULTRASONIDO CON PROTOBOARD
CÓDIGO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
const int EchoPin = 5;
const int TriggerPin = 6;
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 a distancia, en cm
return distanceCm;
}
|
#include <NewPing.h>
const int UltrasonicPin = 5;
const int MaxDistance = 200;
NewPing sonar(UltrasonicPin, UltrasonicPin, MaxDistance);
void setup() {
Serial.begin(9600);
}
void loop() {
delay(50); // esperar 50ms entre pings (29ms como minimo)
Serial.print(sonar.ping_cm()); // obtener el valor en cm (0 = fuera de rango)
Serial.println("cm");
}
Luego de terminar el codigo procedemos a verificar las distancias aproximadas que arroja el sensor se ultrasonido y puede notarse que cuando esta abajo su distancia disminuye, cuando se encuentra arriba su distancia aumenta y cuando se encuentra quieto y se tapa con los dedos su distancia es de 0cm.
Comentarios
Publicar un comentario