Spisu treści:
Wideo: PARQUEADERO: 5 kroków
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
WPROWADZENIE
El proyecto consimular un modelo de barrera de parqueadero en el cual se controla el acceso a un garaje con un sistema de reconocimiento por medio de tarjetas para RFID, al ser detectado como miembro del parqueadero se levantara la barrera y se le los vehículos.
Krok 1: UTILIZADOS ELEMENTOS:
-Arduino uno
- płyta prototypowa
-1 panel LCD z modułem I2C
-1 serwomotor
-RFID i tarjetas
-kable macho-macho y macho-hembra
- 2 przerwane finały de carrera
- oporności 10 k
Krok 2: Conexiones
En este paso se hicieron las conexiones de todos los components con el Arduino y el protoboard. Inicialmente se conectó el Arduino al protoboard, luego de esto se se hizo la conexión del servomotor al protoboard y se comprobó de que funcionara.
Seguido de esto se conectó la pantalla y el RFID e igualmente se comprobó de que estos componentes funcionan correctamente.
Por último se conectaron los finales de carrera por medio de Resistanceencias de 10K.
Krok 3: Kodigo
En este paso se anexa el código que se utilizó para darle funcionamiento a todos los componentes del parqueadero.
#incluir #incluir #incluir // DESCARGAR LIBRERÍA: https://github.com/ELECTROALL/Codigos-arduino/blob/master/LiquidCrystal_I2C.zip LiquidCrystal_I2C lcd (0x27, 20, 4); // #incluir // zawiera biblioteczkę serwo
#define s1 2 #define s2 4 Servo myservo1;
int Vs1; int Vs2;
int Suma = 5; int Espacio = 0;
int flaga1 = 0; int flaga2 = 1; int est1 = 0; int est2 = 0; int poprawna = poprawna; int nieważne = nieważne; const int RST_PIN = 9; // Pin 9 para el reset del RC522 const int SS_PIN = 10; // Pin 10 para el SS (SDA) do RC522 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Utwórz instancję MFRC522 bajt validKey1 [4] = {0x50, 0xA8, 0x9B, 0x1D}; // Ejemplo de clave valida bajt validKey2 [4] = {0xB3, 0xD5, 0xD0, 0x1E}; // Ejemplo de clave valida // Función para comparar dos vectores bool isEqualArray (bajt * tablicaA, bajt * tablicaB, długość int) {for (indeks = 0; indeks <długość; indeks ++) {if (tablicaA [indeks] ! = tablicaB [indice]) devuelve false; } devuelve verdadero; }
konfiguracja vacía () {lcd.init (); LCD luz de fondo(); pinMode (s1, INPUT_PULLUP); pinMode (s2, INPUT_PULLUP); Serial.początek (9600); // Początkowy numer seryjny SPI.begin (); // Początkowy SPI mfrc522. PCD_Init (); // Początkowy MFRC522 myservo1.attach (3); myservo1.write (100);
mensaje1 (); } bucle vacío () {Vs1 = digitalRead (s1); Vs2 = odczyt cyfrowy (s2); mensaje2 (); /// ponerle warunkowe if (Vs1 == 0) {delay (100); flaga1 = 1; // est1 = 1; // est2 = 1; // bandera2 = 0; myservo1.write (90); } /// consultar anti rebote // Detectar tarjeta if (mfrc522. PICC_IsNewCardPresent () && Space <= 5 && flag2 == 1) {// Seleccionamos una tarjeta if (mfrc522. PICC_ReadCardSerial ()) {// Porównaj ID con las claves válidas if ((isEqualArray (mfrc522.uid.uidByte, validKey1, 4)) || (isEqualArray (mfrc522.uid.uidByte, validKey2, 4))) {Serial.println ("Tarjeta valida"); poprawna; mensaje4 (); myservo1.write (-90); est1 = 1;} else {Serial.println ("Nieważna Tarjeta"); nieważny; mensaje3 ();} // Finalizar la lectura aktualna mfrc522. PICC_HaltA (); }} retraso (250); jeśli (Vs2 == 0) {retraso (200); flaga2 = 1; // est1 = 1; // est2 = 1; // bandera1 = 0; retraso (2000); myservo1.write (90);}
if (Vs2 == 0 && Espacio = 0 && est1 == 1) {// est1 = 1; lcd.setCursor (0, 3); lcd.print ("entra"); Espacio++; Całkowity--; est1 = 0; } if (Vs1 == 0 && Suma> = 0 && Suma <5 && est1 == 1) {// est2 = 1; lcd.setCursor (0, 3); lcd.print ("venta"); Espacio--; Razem ++; est1 = 0; } Serial.print (ogółem); Serial.print (";"); Serial.println (espacio); }
mensaje1 vacío () {lcd.setCursor (0, 1); lcd.print ("BIENVENIDOS"); LCD. Comienzo (A4, A5); lcd.setCursor (0, 1); lcd.print ("SISTEMA"); lcd.setCursor (0, 2); lcd.print ("DE PARQUEO"); retraso (2000); lcd.clear (); } void mensaje2 () {lcd.setCursor (0, 1); lcd.print ("DOZWOLONE:"); lcd.print (ogółem); lcd.setCursor (0, 2); lcd.print ("OCUPADOS:"); lcd.print (Espacio); } void mensaje3 () {lcd.setCursor (0, 0); lcd.print ("TARJETA INVALIDA"); retraso (2000); lcd.clear (); } void mensaje4 () {lcd.setCursor (0, 0); lcd.print ("TARJETA WALIDA"); retraso (2000); lcd.clear (); }
Krok 4: Montaje
Luego de hacer todas las conexiones y de comprobar que el código realizara las funciones requeridas para cada condición del parqueadero, se procede a realizar el montaje de la estructura.
Krok 5: Wynik końcowy
Se anexa un video del resultado final del proyecto, donde se puede obserwator el funcionamiento de todo el sistema del parqueadero.