Sensor de aparcamiento con Arduino
realizando
un sensor de aparcamiento por ultrasonidos, con un Arduino UNO, un
sensor HC-SR04 y un altavoz para señal acústica.
¿Qué
son los ultrasonidos?
Un
ultrasonido
es
una onda acústica o sonora cuya frecuencia está por encima del
espectro audible del oído humano (aproximadamente 20.000
Hz).Sabiendo esto, veamos como es y como funciona el sensor utilizado:
El
sensor HC-SR04
y
su funcionamiento
Como componente principal del proyecto, utilizaré un sensor de ultrasonidos HC-SR04. Este sensor contiene un emisor y un receptor de ondas de ultrasonidos, y funciona a modo de sonar, de tal forma que el emisor lanza un tren de pulsos ultrasónicos – de 40 kHz en este caso – y el receptor espera el “eco” de dicho tren de pulsos en algún objeto.
Como componente principal del proyecto, utilizaré un sensor de ultrasonidos HC-SR04. Este sensor contiene un emisor y un receptor de ondas de ultrasonidos, y funciona a modo de sonar, de tal forma que el emisor lanza un tren de pulsos ultrasónicos – de 40 kHz en este caso – y el receptor espera el “eco” de dicho tren de pulsos en algún objeto.
En
el datasheet del sensor podemos ver que la distancia medida es
proporcional a la amplitud del eco de la señal enviada, y para
calcular dicha distancia, nos remitimos a la formula “Distancia
= Velocidad x Tiempo”.
Si
tenemos en cuenta que la velocidad del sonido a temperatura ambiente
(20º) es de:
343 m/s o 34300 cm/s, podemos calcular que las ondas tardan en recorrer 1 centímetro:1 centímetro = 1 segundo / 34300 = 29,15 uS
343 m/s o 34300 cm/s, podemos calcular que las ondas tardan en recorrer 1 centímetro:1 centímetro = 1 segundo / 34300 = 29,15 uS
Sabiendo
que la onda tarda 29,15 uS en recorrer 1 cm, y que el sensor nos dará
el tiempo de la señal desde que es enviada hasta que el receptor
captura su eco, calculamos la distancia de la siguiente manera:
“Distancia
en cm = (tiempo de la señal / 29,15 uS) / 2 ”
La división por 2 se debe a que la señal desde que es enviada por el emisor, recorre la distancia hasta el objeto, y vuelve por el mismo camino hasta el receptor como se puede ver en la siguiente imagen, de modo que la onda recorre 2 veces el mismo camino, por lo que si no realizamos esta operación, la distancia resultante en centímetros sería el doble de la que hay realmente entre el sensor y el objeto.
La división por 2 se debe a que la señal desde que es enviada por el emisor, recorre la distancia hasta el objeto, y vuelve por el mismo camino hasta el receptor como se puede ver en la siguiente imagen, de modo que la onda recorre 2 veces el mismo camino, por lo que si no realizamos esta operación, la distancia resultante en centímetros sería el doble de la que hay realmente entre el sensor y el objeto.
Para nuestra suerte, existen librerías para Arduino y PIC que realizan estos cálculos por nosotros, y nos dejan la simple tarea de hacer una llamada a una función que nos dará el valor de la distancia lista para utilizar en nuestro proyecto.
Sabiendo
como funciona el sensor me he puesto a programar un
sensor
de aparcamiento.
El
funcionamiento de un sensor de aparcamiento es muy sencillo,
simplemente se basa en un sensor colocado en la parte trasera de un
coche que se activa en el momento en que se mete la marcha atrás,
que mide la distancia que hay entre nuestro coche y el objeto que
esté detrás (otro coche o una pared), y mediante una señal
acústica nos va indicando.
La
frecuencia de la señal acústica irá en aumento a medida que se
reduce la distancia con el objeto y a una mínima distancia, la señal
acústica es continua. Si la distancia aumenta, la frecuencia de la
señal acústica aumentará hasta una distancia máxima.
El
proyecto consta de varios componentes como es una placa Arduino UNO,
un Sensor HC-SR04 y un Altavoz 8Ω con su resistencia 120Ω, se
conecta de la siguiente forma:
El
código de programación de la placa Arduino es muy simple, aunque
consta de varias librerías para el control del sensor HC-SR04 y una
librería de sonidos.
Los archivos son los siguientes:
Los archivos son los siguientes:
- Código programa “Sensor de Aparcamiento” : SensorParking.pde
– Librería Sensor HC-SR04: Ultrasonic.cpp – Ultrasonic.h
– Librería Sonidos: Pitches.h
CODIGO
DE LA PROGRAMACION
/*Opiron
Electronics by A.Girod
Programación
de un sensor de ultrasonidos HC-SR04
by
Anton Girod (mahamadou.diarra@alu.escuelassj.com@gmail.com)
int
Pin_echo = 13;
int
Pin_trig = 12;
void
setup() {
Serial.begin
(9600);
pinMode(Pin_trig,
OUTPUT);
pinMode(Pin_echo,
INPUT);
}
void
loop() {
int
pulso, cm;
digitalWrite(Pin_trig,
LOW);
delayMicroseconds(2);
digitalWrite(Pin_trig,
HIGH);
delayMicroseconds(10);
digitalWrite(Pin_trig,
LOW);
pulso
= pulseIn(Pin_echo, HIGH); //Medición del ancho de pulso recibido en
el pin Echo
cm
= pulso / 29 / 2; // Convertimos ese pulso en una distancia y a cm
Serial.print("Distancia:");
//Imprimimos todo por el puerto Serial
Serial.print(cm);
Serial.println("
cm");
delay(500);
}
Y
conectado y programado… podemos comprobar el funcionamiento en foto
o video de demostración haciendo clic aquí:
https://www.youtube.com/watch?v=m_2jvYjFJrk
No hay comentarios:
Publicar un comentario