Inhaltsverzeichnis:
- Schritt 1: ELEMENTOS-UTILIZADOS:
- Schritt 2: Konexionen
- Schritt 3: Codigo
- Schritt 4: Montaje
- Schritt 5: Resultado Finale
Video: PARQUEADERO - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
EINFÜHRUNG
El proyecto consiste en simular un modelo de barrera de parqueadero en el cual se controla el acceso a a garaje con un sistema de reconocimiento por medio de tarjetas para RFID, al ser Detectado como Miembro del parqueadero se levantara la darrera y se le le los vehículos.
Schritt 1: ELEMENTOS-UTILIZADOS:
-Arduino uno
- Protoboard
-1 Pantalla-LCD con Modulo I2C
-1 Stellmotor
-RFID und Tarjetas
-Kabel Macho-Macho und Macho-Hembra
- 2 Unterbrecher finales de carrera
- Widerstände 10 k
Schritt 2: Konexionen
En este paso se hicieron las conexiones de todos los componentses con el Arduino und el protoboard. Beginnen Sie mit der Verbindung zum Arduino mit dem Protoboard.
Seguido de esto se conectó la pantalla und el RFID e igualmente se comprobó de que estos Componentes funcionan correctamente.
Por último se conectaron los finales de carrera por medio de resistencias de 10K.
Schritt 3: Codigo
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 // incluye la biblioteca de servos
#define s1 2 #define s2 4 Servo myservo1;
int Vs1; int Vs2;
int Gesamt = 5; int Espacio = 0;
int-Flag1 = 0; int-Flag2 = 1; int est1 = 0; int est2 = 0; int valida = valida; int ungültiga = ungültiga; const int RST_PIN = 9; // Pin 9 para el reset del RC522 const int SS_PIN = 10; // Pin 10 para el SS (SDA) del RC522 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Instanz des MFRC522-Byte erstellen validKey1 [4] = {0x50, 0xA8, 0x9B, 0x1D}; // Ejemplo de clave valida byte validKey2 [4] = {0xB3, 0xD5, 0xD0, 0x1E}; // Ejemplo de clave valida // Función para comparar dos vectores bool isEqualArray (byte * arrayA, byte * arrayB, int length) {for (int index = 0; index <length; index ++) {if (arrayA [index] = arrayB [indice]) devuelve falso; } devuelve verdadero; }
configuración vacía () {lcd.init (); LCD-Luz de Fondo (); pinMode (s1, INPUT_PULLUP); pinMode (s2, INPUT_PULLUP); Serieller Anfang (9600); // Iniciar serielle SPI.begin (); // Iniciar SPI mfrc522. PCD_Init (); // Iniciar MFRC522 myservo1.attach (3); myservo1.write (100);
mensaje1 (); } Bucle vacío () {Vs1 = digitalRead (s1); Vs2 = digitalRead (s2); mensaje2 (); /// ponerle condicional if (Vs1 == 0) {Verzögerung (100); Flag1 = 1; // est1 = 1; // est2 = 1; // bandera2 = 0; myservo1.write (90); } /// consultar anti rebote // Detectar tarjeta if (mfrc522. PICC_IsNewCardPresent () && Space <= 5 && flag2 == 1) {// Selectcionamos una tarjeta if (mfrc522. PICC_ReadCardSerial ()) {// ID vergleichen con las claves valid if ((isEqualArray (mfrc522.uid.uidByte, validKey1, 4)) || (isEqualArray (mfrc522.uid.uidByte, validKey2, 4))) {Serial.println ("Tarjeta valida"); valide; mensaje4 (); myservo1.write (-90); est1 = 1;} else {Serial.println ("Tarjeta invalida"); ungültig; mensaje3 ();} // Finalizar la lectura aktuell mfrc522. PICC_HaltA (); }} Retraso (250); wenn (Vs2 == 0) {retraso (200); Flag2 = 1; // est1 = 1; // est2 = 1; // bandera1 = 0; Retroso (2000); myservo1.write (90);}
wenn (Vs2 == 0 && Espacio = 0 && est1 == 1) {// est1 = 1; lcd.setCursor (0, 3); lcd.print ("entra"); Espacio ++; Gesamt--; est1 = 0; } if (Vs1 == 0 && Gesamt> = 0 && Gesamt <5 && est1 == 1) {// est2 = 1; lcd.setCursor (0, 3); lcd.print ("venta"); Espacio--; Gesamt ++; est1 = 0; } Serial.print (Gesamt); Seriendruck (";"); Serial.println (espacio); }
mensaje1 vacío () {lcd.setCursor (0, 1); lcd.print ("BIENVENIDOS"); lcd. Komienzo (A4, A5); lcd.setCursor (0, 1); lcd.print ("SISTEMA"); lcd.setCursor (0, 2); lcd.print ("DE PARQUEO"); Retroso (2000); lcd.clear (); aufrechtzuerhalten. Void mensaje2 () {lcd.setCursor (0, 1); lcd.print ("VERFÜGBAR:"); lcd.print (gesamt); lcd.setCursor (0, 2); lcd.print ("OCUPADOS:"); lcd.print (Espacio); aufrechtzuerhalten. Void mensaje3 () {lcd.setCursor (0, 0); lcd.print ("TARJETA INVALIDA"); Retroso (2000); lcd.clear (); aufrechtzuerhalten. Void mensaje4 () {lcd.setCursor (0, 0); lcd.print ("TARJETA VALIDA"); Retroso (2000); lcd.clear (); }
Schritt 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.
Schritt 5: Resultado Finale
Sehen Sie sich ein Video des Endergebnisses des Projekts an, geben Sie einen Beobachtungspunkt und eine Funktion für das Todo und das System des Parqueadero an.