Cómo crear un sistema de aparcamiento con Arduino

Cómo crear un sistema de aparcamiento con Arduino. El Blog de Joseca. Guayaquil - Ecuador.

Sistema de Aparcamiento Automático

Proyecto Arduino

Después de dominar los fundamentos de la electrónica, es hora de poner a prueba tus conocimientos con un proyecto emocionante y práctico: un Sistema Automático de Estacionamiento (Car Parking System) controlado por una placa Arduino.

Este video de Simple Circuits te muestra, paso a paso y en acción, cómo integrar varios componentes clave de la electrónica para crear un sistema funcional que detecta la llegada de un vehículo y gestiona el acceso a una barrera. Es un excelente ejemplo de cómo la programación y el hardware se unen para resolver problemas cotidianos.

En el video verás la integración de:

  • Sensores IR: Para detectar la presencia y la distancia del "coche".
  • Servomotores: Para actuar como la barrera de acceso.
  • Módulo LED o Pantalla: Para indicar el estado (acceso permitido, estacionamiento lleno, etc.).
  • La placa Arduino: El cerebro que procesa las señales de los sensores y controla los actuadores (servomotores).

¡Mira cómo se ensambla el hardware y se prueba el código que da vida a este sistema de parking inteligente!


Materiales necesarios:

  • Arduino UNO
  • Cables Jumper
  • Protoboard
  • Pantalla LCD con módulo I2C
  • Servomotor
  • Sensor Infrarrojo (IR)

Diagrama de circuito:



Diagrama de maqueta:



Código Arduino:

// Created by Simple Circuits
#include <Wire.h>
#include <LiquidCrystal_I2C.h>        //Incluir libreria by Frank de Brabander
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Servo.h>
Servo myservo;

int IR1 = 2;
int IR2 = 3;
int Slot = 4;  //Total number of parking Slots
int flag1 = 0;
int flag2 = 0;

void setup() {
  Serial.begin(9600);
  lcd.init();       //initialize the lcd
  lcd.backlight();  //open the backlight

  pinMode(IR1, INPUT);
  pinMode(IR2, INPUT);

  myservo.attach(4);
  myservo.write(110);

  lcd.setCursor(0, 0);
  lcd.print("     ARDUINO    ");
  lcd.setCursor(0, 1);
  lcd.print(" PARKING SYSTEM ");
  delay(2000);
  lcd.clear();
}

void loop() {

  if (digitalRead(IR1) == LOW && flag1 == 0) {

    if (Slot > 0) {
      flag1 = 1;

      if (flag2 == 0) {
        myservo.write(0);
        Slot = Slot - 1;
      }
    } else {
      lcd.setCursor(0, 0);

      lcd.print("    SORRY :(    ");
      lcd.setCursor(0, 1);
      lcd.print("  Parking Full  ");
      delay(3000);
      lcd.clear();
    }
  }

  if (digitalRead(IR2) == LOW && flag2 == 0) {
    flag2 = 1;

    if (flag1 == 0) {
      myservo.write(0);
      Slot = Slot + 1;
    }
  }

  if (flag1 == 1 && flag2 == 1) {
    delay(1000);
    myservo.write(110);
    flag1 = 0, flag2 = 0;
  }

  lcd.setCursor(0, 0);
  lcd.print("    WELCOME!    ");
  lcd.setCursor(0, 1);
  lcd.print("Slot Left: ");
  lcd.print(Slot);
}


octubre 28, 2025

Publicar un comentario

[blogger]

MKRdezign

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Con tecnología de Blogger.
Javascript DisablePlease Enable Javascript To See All Widget