Sistema de Aparcamiento Automatizado Inteligente con Arduino
Componentes y suministros
| Arduino UNO | 1 |
| Servos (Tower Pro MG996R) | 1 |
| Sensor de proximidad infrarrojo | 3 |
| LED (genérico) | 1 |
| Partes electrónicas UTSOURCE | 1 |
Aplicaciones y servicios online
- Arduino IDE
Sobre este proyecto
Un sistema de aparcamiento automático con Arduino, muy fácil y divertido de hacer. Cuando llega un coche, muestra el número de plazas libres (si hay) y abre la barrera. Si no hay plazas, la barrera no se abre. Lo increíble es que todo el proyecto puede alimentarse solo con un POWER BANK!!
Mira el video para el tutorial completo.
Nota: Puedes usar un display en lugar de mi display LED artesanal.
Paso 1: Piezas
- Arduino - cualquier placa
- Sensor de proximidad infrarrojo (dos tipos funcionales)
- Resistencia 330Ω
- Algunos LEDs
- Servomotor - cualquier modelo/tamaño
Paso 2: Hacer el display LED
Usé un trozo de protoboard, soldé los LEDs y resistencias 330Ω, y añadí cable plano para acabado limpio. Nota: Soldé las resistencias por detrás para que no se vean. Sería mejor usar display LCD u OLED barato, pero no tenía y hice este.
Paso 3: Construir el aparcamiento
Usé una caja de cartón, la corté para hacer una rampa. Pegué un trozo de cartón al servomotor con pegamento caliente. Coloqué un sensor en la entrada y otro en cada plaza. Pegué dos palillos chinos con el display y lo pegué a la caja. Recorté zona para acceder al puerto USB del Arduino (alimentación). Píntalo un poco.
Paso 4: El circuito
Parece un lío por los LEDs pero es muy simple. NOTA: Los sensores de proximidad usan 5V, conéctalos a 5V del Arduino. ¿Por qué el servo a VIN? Los power banks dan 5V 1A por USB, el regulador del Arduino da 0.5A a la placa. Conectando a VIN accedemos a la energía del power bank sin protoboard. Funciona y es seguro.
Paso 5: El código
Sube el siguiente código al Arduino:
Descargar código: GitHub
O copia el CÓDIGO de abajo
/* Aparcamiento Automatizado por Ashraf Minhaj. www.youtube.com/c/fusebatti
* Consultas: ashraf_minhaj@yahoo.com
*/
#include <Servo.h>
Servo gate;
int slot1 = 5; // Sensor IR plaza 1 en pin digital 5
int slot2 = 4; // Plaza 2 en pin 4
int gateSensor = 3; // Sensor IR barrera en pin 3
int slot1_l = 13; // LED plaza 1
int slot2_l = 12; // LED plaza 2
int gate_grn = 11; // LED verde barrera
int gate_red = 10; // LED rojo barrera
void setup() {
gate.attach(7); // Servo barrera en pin 7
pinMode(slot1, INPUT);
pinMode(slot2, INPUT);
pinMode(gateSensor, INPUT);
pinMode(slot1_l, OUTPUT);
pinMode(slot2_l, OUTPUT);
pinMode(gate_grn, OUTPUT);
pinMode(gate_red, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Coche llega, sensor LOW
if (!digitalRead(gateSensor) && digitalRead(slot1) && digitalRead(slot2)) { // ambas libres
Serial.println("Bienvenido, Disponibles: PLAZA1, PLAZA2");
digitalWrite(slot1_l, HIGH); digitalWrite(slot2_l, HIGH);
delay(1000);
digitalWrite(gate_grn, HIGH);
gate.write(75); // abre barrera
}
if (!digitalRead(gateSensor) && !digitalRead(slot1) && digitalRead(slot2)) { // plaza 1 ocupada
Serial.println("Bienvenido, Disponible: PLAZA2");
digitalWrite(slot1_l, LOW); digitalWrite(slot2_l, HIGH);
delay(1000);
digitalWrite(gate_grn, HIGH);
gate.write(75);
}
if (!digitalRead(gateSensor) && digitalRead(slot1) && !digitalRead(slot2)) { // plaza 2 ocupada
Serial.println("Bienvenido, Disponible: PLAZA1");
digitalWrite(slot1_l, HIGH); digitalWrite(slot2_l, LOW);
delay(1000);
digitalWrite(gate_grn, HIGH);
gate.write(75);
delay(100);
}
if (!digitalRead(gateSensor) && !digitalRead(slot1) && !digitalRead(slot2)) { // completo
Serial.println("Bienvenido, Aparcamiento Completo");
digitalWrite(slot1_l, LOW); digitalWrite(slot2_l, LOW);
delay(1000);
digitalWrite(gate_red, HIGH);
delay(100); digitalWrite(gate_red, LOW);
delay(100); digitalWrite(gate_red, HIGH);
delay(100); digitalWrite(gate_red, LOW);
}
if (digitalRead(gateSensor)) { // sin coche
Serial.println("Bienvenido");
gate.write(5); // cierra barrera
digitalWrite(slot1_l, LOW); digitalWrite(slot2_l, LOW);
digitalWrite(gate_red, LOW);
digitalWrite(gate_grn, HIGH);
delay(100); digitalWrite(gate_grn, LOW);
delay(100);
}
}
Versión 2 con display LCD: GitHub
Paso 6: Terminado
Alimenta con cable USB al Arduino y disfruta. Cuéntame cómo piensas mejorarlo y por qué. ¡Gracias!
Proceso de manufactura
- Construya su propio LUMAZOID: Visualizador de música DIY con Arduino
- Construye un lanzador automático LEGO Star Wars con Arduino Uno
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- SunGlass-BOT: Gafas de Sol Inteligentes que se Ajustan Automáticamente a la Luz
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
- Temporizador de Lavado de Manos con Arduino: Herramienta DIY Simple para Combatir el COVID‑19
- Mezclador de Colores RGB con Arduino – Proyecto DIY para Principiantes
- Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso
- Automatiza el Juego del Dinosaurio de Chrome con Arduino y Python
- Construye un dispositivo de tratamiento radiónico EMR con Arduino DIY
- Focos LED RGB Exterior Controlados por DMX – Económicos y Alto Rendimiento