CONTENIDO ►
Un sensor ultrasónico de aparcamiento en un Arduino es bastante sencillo de construir, y se puede utilizar una indicación luminosa y sonora para avisar de la distancia mínima. No se recomienda utilizar este proyecto con sensores ultrasónicos en un coche, ya que tienen un gran margen de error y no están protegidos contra la humedad. Considerar varias opciones para ejecutar el proyecto «Sensor de aparcamiento con HC-SR04» al mismo tiempo.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- pantalla LCD 16×2 i2c;
- buzzer (zumbador);
- LEDs y resistencias;
- protoboard y cables de conexion;
- libreria LiquidCrystal_I2C.h
Sistema para estacionamiento de un auto
Lo primero que hay que hacer es resolver el problema del falso disparo del sensor ultrasónicos HC-SR04 realizando una función en el programa con varias mediciones de distancia y calculando la media aritmética. Para ello, en el bucle for, realizamos 10 mediciones con el sensor de ultrasonidos, sumando el resultado al total, y al final del bucle, dividimos la suma obtenida por el número de mediciones realizadas, es decir, por 10.
Sensor de aparcamiento con HC-SR04 y LCD 16×2

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Para montar los sensores de aparcamiento con pantalla, es necesario conectar el telémetro ultrasónico, el altavoz piezoeléctrico y la pantalla LCD 1602 i2c como se muestra en la imagen superior. En el programa mostrado, se añaden las funciones de visualización de la distancia y la condición de activación del zumbador. El tiempo entre las mediciones y la distancia a la que se activará el zumbador pueden modificarse en el código.
Programa Arduino para sensor de aparcamiento con LCD
#include "Ultrasonic.h" Ultrasonic ultrasonic (11, 12); // Trig y Echo #include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27,20,4); int del = 5; // retardo entre mediciones en µs int cm = 10; // distancia en cm a la que suena el zumbador void setup() { Serial.begin(9600); LCD.init(); LCD.backlight(); pinMode(7, OUTPUT); } void loop() { // tomar 10 medidas y sumar el resultado int distance, sum, total; for (byte i = 0; i <= 10; i++) { distance = ultrasonic.Ranging(CM); sum = sum + distance; delay(del); } total = sum / 10; Serial.println("Distance - " + String(total)); LCD.clear(); LCD.setCursor(0,0); LCD.print("Distance - "); LCD.print(total); if (total > cm) { noTone(7); } if (total <= cm) { tone(7,100); } }
Explicación del código sensor de aparcamiento con LCD:
- el retardo entre las mediciones y la distancia para activar el zumbador se pueden modificar al principio del código cambiando los valores del y cm;
- se puede aumentar el número de mediciones, pero esto aumentará el tiempo de ejecución del programa sin cambiar fundamentalmente la calidad de la medición de la distancia.
Sensor de aparcamiento con HC-SR04 y LEDs

Como no se recomienda instalar el dispositivo en el vehículo debido a la falta de resistencia a la humedad de los sensores HC-SR04, no es necesario conectar la pantalla LCD 1602 i2c al sensor de aparcamiento ultrasónico de Arduino Uno. Es mejor utilizar una pantalla brillante. La siguiente variante del proyecto utiliza LEDs rojos, amarillos y verdes para indicar la distancia entre el dispositivo y el coche que entra en el garaje.
Programa Arduino para sensor de aparcamiento con LEDs
#include "Ultrasonic.h" Ultrasonic ultrasonic (11, 12); // Trig y Echo int del = 5; // retardo entre mediciones en µs int cm1 = 30; // la distancia a la que se encenderá el LED verde int cm2 = 20; // la distancia a la que se encenderá el LED azul int cm3 = 10; // la distancia a la que se encenderá el LED rojo int cm4 = 5; // la distancia en cm a la que sonará el zumbador void setup() { Serial.begin(9600); pinMode(7, OUTPUT); pinMode(2, OUTPUT); // verde pinMode(3, OUTPUT); // azul pinMode(4, OUTPUT); // rojo } void loop() { // tomar 10 medidas y sumar el resultado int distance, sum, total; for (byte i = 0; i <= 10; i++) { distance = ultrasonic.Ranging(CM); sum = sum + distance; delay(del); } total = sum / 10; Serial.println("Distance - " + String(total)); if (total >= cm1) { digitalWrite(4, LOW); digitalWrite(3, LOW); digitalWrite(2, LOW); } if (total < cm1 && total >= cm2) { digitalWrite(4,LOW); digitalWrite(3,LOW); digitalWrite(2,HIGH); } if (total < cm2 && total > cm3) { digitalWrite(4,LOW); digitalWrite(3,HIGH); digitalWrite(2,LOW); } if (total <= cm3) { digitalWrite(4,HIGH); digitalWrite(3,LOW); digitalWrite(2,LOW); } if (total > cm4) { noTone(7); } if (total <= cm4) { tone(7,100); } }
Explicación del código sensor de aparcamiento con LEDs:
- las variables se definen al principio del programa y pueden modificarse estableciendo un modo de funcionamiento adecuado para el sensor de aparcamiento en el Arduino;
- los LEDs del mismo color pueden conectarse al mismo pin.
Conclusión. El circuito del sensor de aparcamiento ultrasónico en el Arduino utiliza LEDs RGB de 5V y utiliza un cargador de teléfono normal para la alimentación. No se recomienda instalar el dispositivo en un coche, ya que el sensor HC-SR04 no está protegido contra el polvo y la humedad, pero puede utilizarse en un garaje.

Deja una respuesta