Cuprins:

PARQUEADERO: 5 pași
PARQUEADERO: 5 pași

Video: PARQUEADERO: 5 pași

Video: PARQUEADERO: 5 pași
Video: Tutorial - Permis acces auto in Portul Constanta in 5 pasi. 2024, Iulie
Anonim
PARQUEADERO
PARQUEADERO

INTRODUCERE

El proyecto consiste en simular un modelo de barrera de parqueadero en el cual se controla accesul la un garaj cu un sistem de recunoaștere a mediului de tarjetas pentru RFID, al fi detectat ca membru al parcheaderului se levantara la bară și se dă accesul de los vehículos.

Pasul 1: ELEMENTOS UTILIZADOS:

ELEMENTOS UTILIZADOS
ELEMENTOS UTILIZADOS
ELEMENTOS UTILIZADOS
ELEMENTOS UTILIZADOS

-Arduino uno

- protoboard

-1 ecran LCD cu modul I2C

-1 servomotor

-RFID y tarjetas

-cables macho-macho y macho-hembra

- 2 interruptores finales de carrera

- rezistențe 10 k

Pasul 2: Conexiuni

Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni
Conexiuni

În acest pas se întâlnesc conexiunile tuturor componentelor cu Arduino și 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 funcționează corect.

Por último se conectaron los finales de carrera por medio de resistencias de 10K.

Pasul 3: Cod

În acest pas se anexează codul care se utilizează pentru darle funcționare a tuturor componentelor parcheaderului.

#incluir #incluir #incluir // DESCARGAR LIBRERÍA: https://github.com/ELECTROALL/Codigos-arduino/blob/master/LiquidCrystal_I2C.zip LiquidCrystal_I2C lcd (0x27, 20, 4); // #incluir // include biblioteca de servos

#define s1 2 #define s2 4 Servo myservo1;

int Vs1; int Vs2;

int Total = 5; int Espacio = 0;

int flag1 = 0; int flag2 = 1; int est1 = 0; int est2 = 0; int valida = valida; int invalida = invalida; const int RST_PIN = 9; // Pin 9 pentru resetarea RC522 const int SS_PIN = 10; // Pinul 10 pentru SS (SDA) del RC522 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Crear instancia del MFRC522 byte validKey1 [4] = {0x50, 0xA8, 0x9B, 0x1D}; // Ejemplo de clave valida byte validKey2 [4] = {0xB3, 0xD5, 0xD0, 0x1E}; // Ejemplo de clave valida // Funcția pentru a compara doi vectori bool isEqualArray (byte * arrayA, byte * arrayB, int length) {for (int index = 0; index <length; index ++) {if (arrayA [index] ! = arrayB [índice]) devuelve falso; } devuelve verdadero; }

configurare vacía () {lcd.init (); LCD luz de fondo (); pinMode (s1, INPUT_PULLUP); pinMode (s2, INPUT_PULLUP); Serial.begin (9600); // Iniciar serial 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 condițional if (Vs1 == 0) {delay (100); steag1 = 1; // est1 = 1; // est2 = 1; // bandera2 = 0; myservo1.write (90); } /// consulta anti rebote // Detectar tarjeta if (mfrc522. PICC_IsNewCardPresent () && Space <= 5 && flag2 == 1) {// Seleccionamos una tarjeta if (mfrc522. PICC_ReadCardSerial ()) {// Compare ID con las claves válidas if ((isEqualArray (mfrc522.uid.uidByte, validKey1, 4)) || (isEqualArray (mfrc522.uid.uidByte, validKey2, 4))) {Serial.println ("Tarjeta valida"); valida; mensaje4 (); myservo1.write (-90); est1 = 1;} else {Serial.println ("Tarjeta invalida"); invalida; mensaje3 ();} // Finalizați lectura adevărată mfrc522. PICC_HaltA (); }} retraso (250); if (Vs2 == 0) {retraso (200); steag2 = 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 ++; Total--; est1 = 0; } if (Vs1 == 0 && Total> = 0 && Total <5 && est1 == 1) {// est2 = 1; lcd.setCursor (0, 3); lcd.print ("venta"); Espacio--; Total ++; est1 = 0; } Serial.print (Total); 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 ("DISPONIBLE:"); lcd.print (total); 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 VALIDA"); retraso (2000); lcd.clear (); }

Pasul 4: Montaj

Montaj
Montaj
Montaj
Montaj

Luego de hacer todas las conexiones y de comprobar que el código realizara las funcciones requeridas para cada condición del parqueadero, se procede a realiza montajul structurii.

Pasul 5: Rezultatul final

Se anexează un videoclip al rezultatului final al proiectului, unde se poate observa funcționarea tuturor sistemelor parcheaderului.

Recomandat: