This shows you the differences between two versions of the page.
pm:prj2025:abirlica:cristian.nastase03 [2025/05/27 01:05] cristian.nastase03 |
pm:prj2025:abirlica:cristian.nastase03 [2025/05/27 17:56] (current) cristian.nastase03 |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Parcare pentru Masini ====== | ====== Parcare pentru Masini ====== | ||
+ | |||
+ | {{pm\:prj2025\:abirlica\:crnastase_poza_proiect.jpg?600x}} | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 24: | Line 26: | ||
**Descriere functionala:** | **Descriere functionala:** | ||
- | Cand un card este apropiat de cititor, modulul RC522 genereaza o intrerupere. Daca UID-ul cardului este valid, Arduino ridica bariera folosind un servomotor, apoi o coboara dupa un scurt delay. In paralel, sistemul citeste valorile de la 4 fotorezistori conectati pe intrari analogice si afiseaza pe LCD daca fiecare loc este ocupat ("O") sau liber ("L"). Statusul este afisat si in Serial Monitor pentru debugging. | + | Cand un card este apropiat de cititor, modulul RC522 genereaza o intrerupere. Daca UID-ul cardului este valid, Arduino ridica bariera folosind un servomotor, apoi o coboara dupa un scurt delay. In paralel, sistemul citeste valorile de la 4 fotorezistori conectati pe intrari analogice si pe LCD se contorizeaza numarul de locuri libere din parcare |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 30: | Line 32: | ||
**Lista de piese:** | **Lista de piese:** | ||
- | * 1x Arduino Uno | + | * Arduino Uno |
- | * 1x Modul RFID RC522 + carduri/taguri | + | * Modul RFID RC522 + carduri/taguri |
- | * 1x Servomotor SG90 | + | * Servomotor SG90 |
- | * 1x LCD 16x2 | + | * LCD 16x2 (fara I2C) |
- | * 4x Fotorezistori (LDR) | + | * 4x Fotorezistori (LDR) |
- | * 4x rezistente 10kΩ (pentru divizoare tensiune LDR) | + | * 4x rezistente 10kΩ (pentru divizoare tensiune LDR) |
- | * Breadboard, fire jumper | + | * Breadboard |
- | * Sursa alimentare externa 5V sau USB | + | * Fire jumper mama-tata |
+ | * Sursa alimentare externa 5V sau USB | ||
- | **Scheme electrice:** | + | **Schema electrica:** |
- | (se vor include in sectiunea Download) | + | |
+ | {{pm\:prj2025\:abirlica\:cristian.nastase03\_sch.jpg.png?800x}} | ||
**Rezultatele simularii:** | **Rezultatele simularii:** | ||
+ | |||
Testele fizice au confirmat: | Testele fizice au confirmat: | ||
- | * citirea corecta a cardurilor RFID | + | * citirea corecta a cardurilor RFID |
- | * ridicarea/coborarea precisa a barierei | + | * ridicarea si coborarea precisa a barierei cu servomotorul |
- | * detectia corecta a ocuparii locurilor cu fotorezistori | + | * detectia fiabila a ocuparii locurilor de parcare folosind fotorezistori |
- | * afisaj LCD functional si sincronizat cu starea reala | + | * afisaj LCD sincronizat cu starea reala a locurilor |
+ | * afisarea valorilor senzorilor in Serial Monitor pentru debugging | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 56: | Line 62: | ||
**Librarii folosite:** | **Librarii folosite:** | ||
- | * <SPI.h> | + | * <SPI.h> |
- | * <MFRC522.h> | + | * <MFRC522.h> |
- | * <LiquidCrystal.h> | + | * <LiquidCrystal.h> |
- | * <Servo.h> | + | * <Servo.h> |
**Structuri si concepte implementate:** | **Structuri si concepte implementate:** | ||
- | * gestionarea unei intreruperi externe (IRQ de la RC522) | + | * tratarea unei intreruperi externe generate de modulul RFID RC522 prin pinul IRQ |
- | * control servomotor cu biblioteca Servo | + | * PWM - controlul unui servomotor pentru bariera folosind biblioteca Servo |
- | * citire analogica de la mai multi senzori LDR | + | * ADC - citirea valorilor de la mai multi senzori analogici (fotorezistori) pentru monitorizarea locurilor |
- | * afisare conditionala pe LCD cu mesaje dinamice | + | * actualizarea dinamica a afisajului LCD in functie de starea parcarii |
- | * comparare UID-uri RFID | + | * validarea cardurilor RFID (SPI) prin compararea UID-urilor cu o lista prestabilita |
- | * folosirea unei etichete `goto` pentru sincronizare dupa acces | + | * sincronizarea fluxului in functia `loop()` prin utilizarea unei etichete `goto` pentru separarea logicii de control acces si monitorizare |
**Functii principale:** | **Functii principale:** | ||
- | * `setup()` - initializare module, activare intreruperi, configurare pinuri | + | * `setup()` - initializare module, activare intreruperi, configurare pinuri |
- | * `loop()` - gestioneaza detectia cardului, verifica UID-ul, controleaza bariera, afiseaza statusul locurilor | + | * `loop()` - gestioneaza detectia cardului, verifica UID-ul, controleaza bariera, afiseaza statusul locurilor |
===== Rezultate Obtinute ===== | ===== Rezultate Obtinute ===== | ||
Line 84: | Line 91: | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | **Codul sursa si fisierele proiectului sunt disponibile pe GitHub:** | ||
+ | |||
+ | 👉 https://github.com/Nastyst16/Parking_for_Cars.git | ||
<note warning> | <note warning> | ||
- | O arhiva ZIP va contine: | + | Recomandare: clonati repository-ul folosind comanda: |
+ | git clone https://github.com/Nastyst16/Parking_for_Cars.git | ||
+ | |||
+ | Arhiva ZIP va contine: | ||
* codul sursa `.ino` | * codul sursa `.ino` | ||
- | * schemele electrice in format PNG/PDF | + | * schemele electrice in format PNG |
- | * README cu instructiuni de conectare | + | |
</note> | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | * Saptamana 1: Alegere tema, documentare, selectie componente | + | * Saptamana 1: Alegere tema, documentare, selectie componente |
- | * Saptamana 2: Testare individuala module (LCD, RFID, servo, LDR) | + | * Saptamana 2: Testare individuala module (LCD, RFID, servo, LDR) |
- | * Saptamana 3: Integrare hardware si testare completa | + | * Saptamana 3: Integrare hardware si testare completa |
- | * Saptamana 4: Finalizare cod, validare functionare, redactare documentatie | + | * Saptamana 4: Finalizare cod, validare functionare, redactare documentatie |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 103: | Line 116: | ||
**Resurse Software:** | **Resurse Software:** | ||
- | to be continued | + | * Documentatia oficiala Arduino: https://www.arduino.cc/reference/en/ |
+ | * MFRC522 Library (GitHub): https://github.com/miguelbalboa/rfid | ||
+ | * Servo Library (Arduino built-in): https://www.arduino.cc/en/Reference/Servo | ||
+ | * Exemple si tutoriale LCD 16x2: https://docs.arduino.cc/learn/electronics/lcd-displays/ | ||
+ | * Forum Arduino pentru depanare si exemple practice: https://forum.arduino.cc/ | ||
**Resurse Hardware:** | **Resurse Hardware:** | ||
- | * Datasheet RC522 | + | * Datasheet RC522: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf |
- | * Arduino Uno pinout | + | * Arduino Uno pinout: https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf |
- | * Exemple din comunitatea Arduino Forum | + | * Tutorial fotorezistor + divizor tensiune: https://projecthub.arduino.cc/tropicalbean/how-to-use-a-photoresistor-1143fd |
+ | * Datasheet Servo: https://docs.arduino.cc/learn/electronics/servo-motors/ | ||
+ | * Proiecte similare in comunitatea Arduino Forum | ||