Sistema de aparcamiento

1. Descripción del proyecto

Este proyecto simula un sensor de proximidad diseñado para ayudar al conductor durante el
aparcamiento. El sistema está compuesto por una placa Arduino, un sensor ultrasónico, un buzzer
y un LED RGB, los cuales trabajan conjuntamente para proporcionar alertas visuales y sonoras
al usuario.
La activación del sistema se realiza mediante un botón que simula la activación de la marcha
atrás. Una vez pulsado el botón, el sensor de proximidad ultrasónico comienza a medir la distancia
existente entre el vehículo y el obstáculo.
En función de la distancia detectada, el sistema responde de dos formas:

  • Alerta sonora: un buzzer que emite sonidos(pitidos) cuya frecuencia aumenta cuanto más
    cerca se encuentra el obstáculo.
  • Alerta visual: un LED RGB cambia de color según el nivel de proximidad detectado.
    El funcionamiento del sistema se desarrolla de la siguiente manera:
  1. Se pulsa el botón para activar la marcha atrás.
  2. El sensor ultrasónico mide la distancia al obstáculo.
  3. El buffer pita más rápido cuanto más cerca está el obstáculo.
  4. El LED RGB cambia de color según la proximidad.
    El LED RGB indica el nivel de proximidad mediante diferentes colores:
    Verde – Lejos: indica una distancia segura.
    Azul – Media distancia: indica precaución.
    Rojo – Cerca: indica peligro por proximidad al obstáculo.
    De esta manera, el sistema proporciona al conductor una alerta visual y sonora para facilitar el
    aparcamiento de forma segura.

2. Materiales utilizados

Para la realización de este proyecto se han utilizado los siguientes materiales electrónicos y
componentes básicos necesarios para el funcionamiento del sistema de sensor de aparcamiento.

  1. Placa Arduino UNO
    La placa Arduino UNO es el componente principal del proyecto. Se encarga de controlar el
    funcionamiento del sistema, procesar la información recibida por el sensor ultrasónico y activar
    las alertas visuales y sonoras correspondientes.
  2. Buzzer (emite sonido)
    El buzzer es el encargado de generar los sonidos de aviso del sistema. Los pitidos emitidos
    aumentan su frecuencia cuanto más cerca se encuentra el obstáculo detectado.
  3. Dos resistencias de 220 Ω
    Se utilizan dos resistencias de 220 ohmios para proteger los componentes electrónicos y regular
    la corriente eléctrica dentro del circuito, especialmente en la conexión del LED RGB.
  4. Sensor ultrasónico HC-SR04
    El sensor ultrasónico HC-SR04 actúa como medidor de distancia. Este componente detecta la
    proximidad de un obstáculo mediante ultrasonidos y envía la información a la placa Arduino para
    su procesamiento.
  5. LED RGB
    El LED RGB proporciona una alerta visual mediante diferentes colores según la distancia
    detectada:
    Rojo: indica peligro o cercanía extrema al obstáculo.
    Azul: indica una distancia media o situación de precaución.
    Verde: indica una distancia segura.
  6. Botón
    El botón se utiliza para simular la activación de la marcha atrás del vehículo. Al pulsarlo, el
    sistema comienza a funcionar y el sensor inicia la medición de distancia.
  7. Cables
    Los cables permiten realizar las conexiones entre todos los componentes electrónicos del circuito,
    asegurando la comunicación y alimentación del sistema.

3. Costes

A continuación, se detallan los materiales utilizados en el proyecto y su coste aproximado en el
mercado. Algunos de los componentes fueron proporcionados en clase, por lo que no supusieron
un gasto adicional en nuestro caso.

  1. Placa Arduino UNO
    La placa Arduino UNO es la encargada de controlar todo el sistema y procesar la información
    recibida por los distintos componentes.
    Precio real: 29,00 € → En nuestro caso: Gratis (proporcionada en clase)
  2. Buzzer (emite sonido)
    El buzzer se utiliza para emitir sonidos o pitidos en función de la distancia detectada por el sensor.
    Precio real: 2,10 € → En nuestro caso: 2,10 €
  3. Display LCD (16×2)
    El display LCD permite mostrar en pantalla la distancia medida en centímetros.
    Precio real: 9,10 € → En nuestro caso: 9,10 €
  4. Sensor ultrasónico HC-SR04
    El sensor ultrasónico HC-SR04 mide la distancia a los obstáculos mediante ultrasonidos.
    Precio real: 3,50 € → En nuestro caso: 3,50 €
  5. LED RGB
    El LED RGB indica el nivel de proximidad cambiando de color según la distancia detectada.
    Precio real: 0,50 € → En nuestro caso: Gratis (proporcionado en clase)
  6. Botón
    El botón simula la activación de la marcha atrás y permite iniciar el funcionamiento del sistema.
    Precio real: 0,50 € → En nuestro caso: Gratis (proporcionado en clase)
  7. Resistencias (220 Ω)
    Las resistencias limitan la corriente eléctrica en el LED RGB para proteger el circuito.
    Precio real: 0,01 € por unidad → En nuestro caso: 0,01 € por unidad
  8. Cables
    Los cables permiten realizar las conexiones entre todos los componentes del circuito.
    Precio real: 2,00 € aproximadamente → En nuestro caso: 2,00 € aproximadamente
    Coste total aproximado
    El coste total aproximado del proyecto es de 14,62 €, sin contar los materiales proporcionados
    gratuitamente en clase.

4. Funcionamiento

Paso 1. Activación del sistema
El funcionamiento del sistema comienza cuando el conductor coloca la palanca de cambios en
marcha atrás, lo que provoca el encendido de las luces blancas de aparcamiento del vehículo.
Para simular esta acción en el proyecto, el conductor pulsa un botón conectado al circuito
electrónico. Este botón representa la activación de la marcha atrás y permite iniciar el
funcionamiento completo del sistema de aparcamiento.
Una vez pulsado el botón, la placa Arduino comienza a ejecutar el programa y activa el sensor
ultrasónico para iniciar la medición de distancias.
El objetivo de esta primera fase es simular la activación real del sistema de aparcamiento al poner
el vehículo en marcha atrás, reproduciendo el comportamiento que tendría un coche real equipado
con sensores de proximidad

Paso 2. Acercarse – Luz verde (lejos)
En esta fase del funcionamiento, el vehículo todavía se encuentra lejos del obstáculo o del límite
de aparcamiento. El sensor ultrasónico detecta una distancia igual o superior a 10 cm, lo que
indica que el conductor puede continuar acercándose con seguridad.
Cuando el sistema detecta esta distancia, el LED RGB se ilumina de color verde para indicar que
el obstáculo está lejos y no existe peligro inmediato.
Al mismo tiempo, el buffer permanece sin emitir sonido o genera pitidos muy lentos, ya que la
distancia detectada todavía es segura.
El sensor ultrasónico es el encargado de medir continuamente la distancia entre el vehículo y el
obstáculo para enviar la información a la placa Arduino y actualizar el estado del sistema en
tiempo real.
¿Qué significa esta señal? La luz verde indica que el vehículo se encuentra a una distancia segura
de la pared o del obstáculo. En esta situación, el conductor puede seguir acercándose sin riesgo.

Paso 3. Acercarse – Luz azul (cerca)
En esta fase del funcionamiento, el vehículo se encuentra a una distancia media del obstáculo. El
sensor ultrasónico detecta una distancia comprendida entre 10 cm y 5 cm, indicando que el
vehículo ya está relativamente cerca y debe continuar avanzando con precaución.
Cuando el sistema detecta esta distancia, el LED RGB se ilumina de color azul para indicar un
nivel intermedio de proximidad.
Al mismo tiempo, el buffer emite sonidos o pitidos intermitentes que alertan al conductor de que
el vehículo se está acercando al obstáculo.
El sensor ultrasónico continúa midiendo constantemente la distancia para actualizar el estado del
sistema en tiempo real y proporcionar avisos adecuados según la proximidad detectada.
¿Qué significa esta señal? La luz azul indica que el vehículo está cerca del obstáculo. En esta
situación, el conductor debe reducir la velocidad y continuar maniobrando con precaución.

Paso 4. Acercarse – Luz roja (muy cerca)
En esta fase del funcionamiento, el vehículo se encuentra muy cerca del obstáculo. El sensor
ultrasónico detecta una distancia comprendida entre 5 cm y 2 cm, indicando una situación de
proximidad elevada y de mayor peligro.
Cuando el sistema detecta esta distancia, el LED RGB se ilumina de color rojo para advertir al
conductor de que el obstáculo está muy cerca.
Al mismo tiempo, el buffer emite un sonido o pitido continuo y más rápido para alertar al
conductor de que debe extremar la precaución durante la maniobra.
El sensor ultrasónico continúa midiendo constantemente la distancia para actualizar el estado del
sistema en tiempo real y proporcionar avisos cada vez más intensos a medida que el vehículo se
acerca al obstáculo.
¿Qué significa esta señal? La luz roja indica que el vehículo está muy cerca del obstáculo. En esta
situación, el conductor debe reducir al máximo la velocidad y continuar maniobrando con mucha
precaución.

Paso 5. Acercarse – Luz roja parpadeante (extremadamente cerca)
En esta última fase del funcionamiento, el vehículo se encuentra extremadamente cerca del
obstáculo. El sensor ultrasónico detecta una distancia comprendida entre 2 cm y 0 cm, indicando
una situación de peligro máximo y riesgo inmediato de colisión.
Cuando el sistema detecta esta distancia, el LED RGB rojo comienza a parpadear rápidamente
para advertir visualmente al conductor de que el obstáculo está extremadamente cerca.
Al mismo tiempo, el buffer emite un sonido continuo e intensificado para generar una alerta
acústica más urgente y facilitar una reacción inmediata por parte del conductor.
El sensor ultrasónico continúa midiendo constantemente la distancia para mantener actualizado
el estado del sistema y detectar cualquier cambio durante la maniobra de aparcamiento.
¿Qué significa esta señal? La luz roja parpadeante indica que el vehículo está extremadamente
cerca del obstáculo. En esta situación, el conductor debe detener inmediatamente el vehículo para
evitar una posible colisión

5. Problemas que nos surgieron

Durante el desarrollo del proyecto surgieron varias dificultades técnicas, siendo una de las más
importantes la integración de una pantalla LCD en el circuito. En un principio, la idea era
incorporar una pantalla LCD 16×2 para mostrar en tiempo real la distancia detectada por el sensor
ultrasónico, ya que esto permitiría al conductor visualizar con mayor precisión la proximidad del
obstáculo además de las alertas luminosas y sonoras.
Sin embargo, al comenzar el montaje del circuito nos encontramos con diferentes problemas de
conexión y funcionamiento. Uno de los principales inconvenientes fue la gran cantidad de cables
y conexiones necesarias para controlar correctamente la pantalla LCD junto con el resto de
componentes del proyecto. La placa Arduino ya estaba utilizando varios pines para el sensor
ultrasónico, el LED RGB, el buzzer y el botón de activación, por lo que la distribución de
conexiones empezó a complicarse considerablemente.
Además, durante las primeras pruebas la pantalla mostraba caracteres incorrectos o directamente
no encendía. Tras revisar el circuito varias veces, descubrimos que existían problemas
relacionados con la alimentación y con algunos errores en el cableado de los pines de datos de la
pantalla. También tuvimos dificultades para ajustar correctamente el potenciómetro encargado
del contraste, ya que en ocasiones parecía que la pantalla no funcionaba cuando realmente el texto
simplemente no era visible.
Otro de los problemas apareció a nivel de programación. Al integrar las librerías necesarias para
la pantalla LCD, algunas funciones del código dejaron de comportarse como esperábamos. En
determinados momentos el sistema sufría pequeños retrasos en la actualización de la distancia, lo
que afectaba al funcionamiento de las alertas sonoras y visuales. Esto nos obligó a reorganizar
parte del programa y optimizar el código para que todos los componentes pudieran funcionar de
forma simultánea y estable

6. Codigo arduino

#include <LiquidCrystal.h>

#define echopin2
#define trigPin3
#define buzzer 9

#define RED 6
#define GREEN 5
#define BLUE 4

#define BUTTON 7

LiquidCrystal lcd(13, 12, 11, 10, 8, A0);

long duration;
int distance;
int delayVal;

bool sistemaActivo = false;

void setup() {
pinMode(buzzer, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);

pinMode(BUTTON, INPUT_PULLUP);

lcd.begin(16, 2);

Serial.begin(9600);
}

void apagarRGB() {
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}

void loop() {

static bool lastState = HIGH;
bool currentState = digitalRead(BUTTON);

if (lastState == HIGH && currentState == LOW) {
sistemaActivo = !sistemaActivo;
delay(200);
}
lastState = currentState;

if (!sistemaActivo) {
noTone(buzzer);
apagarRGB();
lcd.clear();
lcd.setCursor(0,0);
lcd.print(«Sistema OFF»);
return;
}

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;

if (distance <= 0 || distance > 400) {
noTone(buzzer);
apagarRGB();
return;
}

Serial.print(«Distancia: «);
Serial.println(distance);

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(«Distancia:»);
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(» cm»);

apagarRGB();
digitalWrite(GREEN, HIGH);

if(distance >= 6 && distance < 10){
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, HIGH);

delayVal = map(distance, 6, 10, 150, 400);

tone(buzzer, 1200);
delay(delayVal);
noTone(buzzer);
delay(delayVal);

}

else if(distance >= 3 && distance < 6){
digitalWrite(GREEN, LOW);
digitalWrite(RED, HIGH);

delayVal = map(distance, 3, 6, 40, 120);

tone(buzzer, 1500);
delay(delayVal);
noTone(buzzer);
delay(delayVal);

}

else if(distance < 3){
digitalWrite(GREEN, LOW);

int flashDelay = 40;

digitalWrite(RED, HIGH);
tone(buzzer, 2000);
delay(flashDelay);

digitalWrite(RED, LOW);
noTone(buzzer);
delay(flashDelay);

}
}

7. Video de funcionamiento

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *