Ayuda de aparcamiento.

Un sensor de aparcamiento es un aparato electronico que te pita cuando estás dando marcha atrás con tu vehículo y detecta objetos cercanos a la parte frontal. Con eso, un pitido te indica la distancia hacia el obstáculo y te permite maniobrar en consecuencia.

sensor de aparcamiento

Existen muchos tipos de sensores de aparcamiento, más baratos y mejor adaptados, pero el funcionamiento de casi todos es el mismo. Una señal de ultrasonidos rebota con el obstáculo que existe detrás del automovil y el receptor del mismo calcula la distancia a la que se encuentra el mismo. Dependiendo de la distancia, existe un avisador acústico que será fijo cuando la distancia con el obstáculo sea mínima.

Así que para realizar éste proyecto necesitaremos los siguientes elementos.

● Shield Arduino.
● Sensor de ultrasonidos HC-SR04.
● Buzzer o altavoz de alta impedancia.
● Cableados para conexión o Board.

Sensor de aparcamiento.
Primero conecta el sensor HC-SR04 a los cables como puedes ver en pantalla. VCC y GND tienen que ir a alimentación y masa respectivamente.

sensor HC-sr04 conectado a puertos

Conectalo a la placa Board (o directamente a los pines de tu Arduino), tal como puedes ver en la imagen.

conexión a la board

Saca los conectores para alimentar el sensor, teniendo en cuenta que el sensor HC-SR04 tiene una polaridad correcta.

alimentación a positivo | alimentación a negativo

Una vez alimentado el sensor, los otros dos pines que te quedan libres (trigger y echo), se conectarán a los puertos digitales 5 y 6 de nuestra placa Arduino.

Ahora conecta el buzzer a la alimentación y el otro extremo al puerto digital 7, como puedes ver en la imagen.

circuito completo

Ahora solo nos queda crear el sketch. Abre un nuevo sketch y declara las variables que utilizaremos para los puertos del trigger y el echo (disparo y recibo).

declaración de variables

Observa que hemos declarado las variables del trigger y del echo ademas de las variables del buzzer y el timbre del tono que en este caso es de 261,63Hz (Nota Mi).

En el setup(), activamos los puertos del trigger y el echo como OUTPUT e INPUT respectivamente, además de establecer la comunicación con el puerto Serial.

setup()

Y para terminar establecemos el loop(), en el cual deberemos de ir realizándo varios pasos:

● Desactivar el trigger. Para evitar falsas lecturas al inicio
● Desactivarlo duránte 2 microsegundos. Para evitar pulsos.
● Activamos el trigger. Durante 10 microsegundos.
● Lo ponemos en LOW. Para esperar la llegada del eco.

En el programa utilizo una función pulseIn(), cuya función es establecer el tiempo que pasa un pin activo o desactivado. Por ejemplo si el pin 5 está activo (disparándo ondas ultrasónicas), la función pulseIn() espera a que dicho pin pase a inactivo (LOW), y calcula el tiempo que ha tardado en ir de alto a bajo (o viceversa). Con ello, al asignarlo a la variable duracion, establecemos la duración del pulso ultrasónico. Y como sabemos cual es la duración, mediante la anterior fórmula de microsegundos por centímetro, podemos asignar la distancia teniendo en cuenta que la distancia se divide entre dos porque la onda de ultrasonidos choca con el objeto a la mitad de la trayectoria (ida y vuelta); y eso hay que dividirlo entre el valor obtenido en la fórmula original. Para terminar se muestra los valores en el monitor serial.

se calcula el trigger y la distancia

Y ya tienes un detector funcional, que te mide la distancia del objeto.

Pero la función es que cuando detecte un objeto emita un pitido en el buzzer. Para ello, he utilizado un condicional en donde he comparado logicamente el estado de la distancia. Si el objeto está a una distancia bastante alejada, no necesito que pite. Pero si está proximo a chocar, necesito que me avise con urgencia. De ahí que para ciertas distancias emitamos un aviso de duración determinada u otra, y eso lo conseguimos gracias a la función condicional con una estructura lógica AND.

estructura condicional

Así cuando ejecutes el circuito te quedará como se puede ver en el gif (sin sonido).

Funcionamiento del sensor de aparcamiento