Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:victor.stoica0203:131405 [2026/05/09 01:26]
robert.grigore1806 created
pm:prj2026:victor.stoica0203:131405 [2026/05/25 01:21] (current)
robert.grigore1806
Line 1: Line 1:
-====== Sistem acces cu parola ======+ ====== Sistem acces cu parola ======
  
-===== Scurta descriere =====+**Nume:** Robert Grigore
  
-Sistemul de acces cu parola, bazat pe Arduino UNO (ATmega328P),​ permite autentificarea utilizatorului prin introducerea unui cod folosind un keypad 4x4. Sistemul utilizeaza un display LCD cu interfata I2C pentru afisare si controleaza un servo motor prin PWM pentru simularea deschiderii unei usi. Este implementat un mecanism de securitate cu limitarea incercarilor si blocare temporizata,​ iar un buton extern foloseste intreruperi pentru resetarea sistemului.+**Grupa:** 333CA
  
-===== Schema bloc =====+===== Introducere ​=====
  
-{{Schema_bloc_Grigore_Robert.png}}+**Ce face proiectul?​**
  
-===== BOM (Bill Of Materials) =====+Proiectul consta in realizarea unui sistem electronic de acces securizat bazat pe parola. Utilizatorul introduce un cod folosind un keypad 4x4, iar sistemul verifica daca parola este corecta. In cazul validarii, un servo motor simuleaza deschiderea unei usi, iar sistemul ofera feedback vizual si sonor prin LCD, LED-uri si buzzer.
  
-^ Componenta ^ Cantitate ^ Descriere ^ +**Care este scopul lui?**
-| Arduino UNO | 1 | Placa de dezvoltare bazata pe ATmega328P | +
-| Keypad 4x4 | 1 | Introducere parola | +
-| LCD 16x2 cu I2C | 1 | Afisare mesaje sistem | +
-| Servo motor SG90 | 1 | Simulare deschidere usa | +
-| Buzzer | 1 | Semnalizare sonora | +
-| LED rosu | 1 | Semnalizare acces interzis | +
-| LED verde | 1 | Semnalizare acces permis | +
-| Buton | 1 | Reset sistem prin intrerupere | +
-| Breadboard | 1 | Prototipare circuit | +
-| Fire Dupont | mai multe | Conexiuni intre componente | +
-| Rezistente 220Ω | 2 | Protectie LED-uri | +
-| Cablu USB | 1 | Alimentare si programare Arduino |+
  
-===== Laboratoare utilizate =====+Scopul proiectului este realizarea unui sistem embedded care combina controlul accesului cu interactiunea in timp real intre utilizator si microcontroller. Proiectul utilizeaza concepte studiate in laboratoare precum intreruperi,​ PWM si comunicatie I2C pentru controlul componentelor hardware.
  
-  ​* Laborator 2 - Intreruperi +===== Descriere generala ===== 
-  * Laborator 3 - Timere / PWM + 
-  * Laborator 6 - I2C+==== Schema bloc ==== 
 + 
 +{{schema_bloc_Grigore_Robert.png}} 
 + 
 +==== Descrierea Arhitecturii Sistemului ==== 
 + 
 +Proiectul este construit in jurul placii Arduino UNO bazata pe microcontrollerul ATmega328P. Sistemul foloseste un keypad pentru introducerea parolei si un display LCD cu interfata I2C pentru afisarea mesajelor si a starilor sistemului. 
 + 
 +Servo motorul SG90 este controlat prin semnale PWM si simuleaza deschiderea unei usi atunci cand parola introdusa este corecta. Buzzer-ul si LED-urile sunt utilizate pentru semnalizarea starilor de acces permis sau acces interzis. 
 + 
 +Sistemul include si un buton extern care utilizeaza intreruperi pentru resetarea sau deblocarea sistemului. 
 + 
 +===== Hardware Design ===== 
 + 
 +==== Bill of Materials ==== 
 + 
 +^ Componenta ^ Cantitate ^ Link ^ Pret unitar (RON) ^ 
 +| Arduino UNO compatibil ATmega328P | 1 | [[https://​sigmanortec.ro/​Placa-dezvoltare-UNO-R3-Arduino-Compatibil-ATmega328p-CH340G-cu-bara-pini-p170362384|Link]] | 30.93 | 
 +| Keypad 4x4 | 1 | [[https://​sigmanortec.ro/​Tastatura-membrana-Keypad-4x4-p136254812|Link]] | ~6.47 | 
 +| LCD 16x2 | 1 | [[https://​www.bitmi.ro/​electronica/​display-lcd1602-hd44780-albastru-iluminat-10486.html|Link]] | 13.99 | 
 +| Modul interfata I2C pentru LCD | 1 | [[https://​www.bitmi.ro/​module-electronice/​modul-interfata-i2c-pentru-lcd1602-10456.html|Link]] | 9.99 | 
 +| Servo motor SG90 | 1 | [[https://​www.bitmi.ro/​electronica/​servomotor-sg90-180-grade-9g-10504.html|Link]] | 9.99 | 
 +| Buzzer pasiv KY-006 | 1 | [[https://​www.bitmi.ro/​module-electronice/​modul-buzzer-pasiv-ky-006-10678.html|Link]] | 2.99 | 
 +| LED rosu + LED verde | 2 | [[https://​www.bitmi.ro/​electronica/​set-200-led-uri-de-diferite-culori-3-mm-5-mm-bitmi-10508.html|Link]] | ~30.25 | 
 +| Buton switch KY-004 | 1 | [[https://​www.bitmi.ro/​electronica/​modul-buton-switch-ky-004-10672.html|Link]] | 2.99 | 
 +| Breadboard 830 puncte | 1 | [[https://​www.bitmi.ro/​electronica/​breadboard-830-puncte-mb-102-10500.html|Link]] | 13.99 | 
 +| Fire Dupont tata-tata | 1 set | [[https://​www.bitmi.ro/​electronica/​40-fire-dupont-tata-tata-30cm-10505.html|Link]] | ~7.99 | 
 +| Rezistente | 1 set | [[https://​www.bitmi.ro/​electronica/​set-rezistori-20-de-valori-400-bucati-10-10m-1-4w-11255.html|Link]] | 19.99 | 
 +| Cablu USB | 1 | orice cablu USB compatibil | 0.00 | 
 + 
 +^ Pret total estimat ^ ^ ^ ~120 RON ^ 
 + 
 +==== Schema electrica ==== 
 + 
 +{{ :​pm:​prj2026:​victor.stoica0203:​cool_waasa-duup.png?​700 |}} 
 + 
 +===== Pinout ===== 
 + 
 +^ Componenta ^ Pin Arduino ^ Tip Pin ^ Utilitate ^ 
 +| LCD 16x2 I2C | A4 (SDA) | Date I2C | Transmite datele catre display | 
 +| LCD 16x2 I2C | A5 (SCL) | Clock I2C | Sincronizeaza comunicatia I2C | 
 +| Keypad 4x4 R1 | 3 | Digital | Rand tastatura | 
 +| Keypad 4x4 R2 | 4 | Digital | Rand tastatura | 
 +| Keypad 4x4 R3 | 5 | Digital | Rand tastatura | 
 +| Keypad 4x4 R4 | 6 | Digital | Rand tastatura | 
 +| Keypad 4x4 C1 | 7 | Digital | Coloana tastatura | 
 +| Keypad 4x4 C2 | 8 | Digital | Coloana tastatura | 
 +| Keypad 4x4 C3 | 9 | Digital | Coloana tastatura | 
 +| Keypad 4x4 C4 | A0 | Digital | Coloana tastatura | 
 +| Buton | 2 | INT0 | Intrerupere pentru resetare sistem | 
 +| Servo SG90 | 10 | PWM | Controleaza deschiderea usii | 
 +| Buzzer | 11 | Digital | Semnalizare sonora | 
 +| LED RGB (Red) | 12 | Digital | Semnalizare acces interzis | 
 +| LED RGB (Green) | 13 | Digital | Semnalizare acces permis | 
 +| LED RGB (Blue) | A1 | Digital | Semnalizare sistem blocat | 
 +| Linie tensiune | 5V | Power | Alimenteaza componentele | 
 +| Referinta | GND | Power | Masa comuna a circuitului | 
 + 
 +===== Software Design ===== 
 + 
 +Codul sursa al proiectului,​ scris in C++ pentru mediul Arduino IDE, controleaza functionarea completa a sistemului de acces cu parola. Programul citeste parola introdusa de utilizator de la keypad, verifica daca aceasta este corecta si comanda componentele de iesire: LCD-ul, servo motorul, buzzer-ul si LED-ul RGB. 
 + 
 +Pentru a respecta cerintele proiectului,​ o parte din functionalitate este implementata prin lucrul direct cu registrii microcontrollerului ATmega328P. Astfel, proiectul nu se bazeaza doar pe functii Arduino high-level, ci foloseste configurare la nivel coborat pentru intreruperi si PWM. 
 + 
 +**Mediu de dezvoltare:​** Arduino IDE 
 + 
 +**Biblioteci utilizate:​** 
 +  * **Wire** - utilizata pentru comunicatia I2C 
 +  * **LiquidCrystal_I2C** - utilizata pentru controlul display-ului LCD 16x2 prin I2C 
 +  * **Keypad** - utilizata pentru citirea tastaturii matriciale 4x4 
 +  * **avr/​io.h** - utilizata pentru acces direct la registrii microcontrollerului 
 +  * **avr/​interrupt.h** - utilizata pentru implementarea intreruperii externe 
 + 
 +**Functionalitati si tehnici cheie:** 
 + 
 +  * **Autentificare prin parola:** utilizatorul introduce parola de la keypad, iar sistemul compara codul introdus cu parola salvata in program. 
 + 
 +  * **Comunicatie I2C:** display-ul LCD 16x2 este controlat prin interfata I2C, folosind pinii A4 (SDA) si A5 (SCL). Pe LCD sunt afisate mesaje precum "​Introdu parola",​ "Acces permis",​ "Acces interzis"​ si "​Sistem blocat"​. 
 + 
 +  * **Intreruperi hardware:** butonul conectat pe pinul D2 foloseste intreruperea externa INT0. Configurarea este realizata prin registrii DDRD, PORTD, EICRA si EIMSK. La apasarea butonului, sistemul este resetat sau deblocat. 
 + 
 +  * **Control PWM prin registrii:​** servo motorul SG90 este controlat folosind Timer1 al microcontrollerului. Semnalul PWM este configurat prin registrii TCCR1A, TCCR1B, ICR1 si OCR1B, fara utilizarea bibliotecii Servo.h. 
 + 
 +  * **Semnalizare vizuala si sonora:** LED-ul RGB indica starea sistemului: verde pentru acces permis, rosu pentru acces interzis si albastru pentru sistem blocat sau asteptare. Buzzer-ul ofera feedback sonor la introducerea unei parole gresite sau corecte. 
 + 
 +  * **Mecanism de securitate:​** dupa un numar maxim de incercari gresite, sistemul intra intr-o stare de blocare temporara. Dupa expirarea timpului de blocare sau dupa apasarea butonului de reset, sistemul revine la starea initiala. 
 + 
 +**Laboratoare utilizate:​** 
 + 
 +  * **Laborator 2 - Intreruperi:** buton extern conectat pe INT0, configurat prin registrii. 
 +  ​* **Laborator 3 - Timere/PWM:** controlul servo motorului folosind Timer1 si registrii PWM. 
 +  ​* **Laborator 6 - I2C:** comunicatia cu LCD-ul 16x2 prin interfata I2C. 
 + 
 +===== Rezultate Obtinute ===== 
 + 
 +A fost realizat un prototip functional al unui sistem de acces securizat cu parola, bazat pe Arduino UNO si microcontrollerul ATmega328P. Sistemul permite introducerea unei parole de la un keypad 4x4 si verifica daca aceasta este corecta. 
 + 
 +In cazul unei parole corecte, servo motorul SG90 se roteste pentru a simula deschiderea unei usi, LED-ul RGB indica accesul permis, iar LCD-ul afiseaza un mesaj corespunzator. In cazul unei parole gresite, sistemul semnalizeaza eroarea prin buzzer si LED RGB. 
 + 
 +Dupa mai multe incercari gresite, sistemul intra intr-o stare de blocare temporara. Deblocarea se poate face automat dupa expirarea intervalului de timp sau manual, prin apasarea butonului conectat la intreruperea externa INT0. 
 + 
 +Implementarea finala demonstreaza utilizarea combinata a comunicatiei I2C, a intreruperilor hardware si a generarii semnalului PWM prin registrii microcontrollerului. 
 + 
 +===== Concluzii ===== 
 + 
 +Realizarea proiectului a demonstrat modul in care un microcontroller ATmega328P poate fi utilizat pentru implementarea unui sistem simplu de control al accesului. Proiectul combina componente hardware usor de gasit cu concepte importante de programare embedded. 
 + 
 +O parte importanta a proiectului a fost trecerea de la functii Arduino standard la configurarea directa a registrelor pentru intreruperi si PWM. Acest lucru a oferit un control mai bun asupra microcontrollerului si a evidentiat modul real de functionare al perifericelor interne. 
 + 
 +Pe viitor, proiectul poate fi extins prin salvarea parolei in memoria EEPROM, adaugarea unui modul RFID sau integrarea unui modul Bluetooth/​Wi-Fi pentru control de la distanta. 
 + 
 +===== Download ===== 
 + 
 +Arhiva atasata pe OCW va contine codul sursa complet al proiectului si fisierele aferente documentatiei. 
 + 
 +Fisier: 
 +  * {{:​pm:​prj2026:​victor.stoica0203:​Proiect_PM_Grigore_Robert333CA.zip|}} 
 + 
 +===== Jurnal ===== 
 + 
 +  * 09.05.2026 - Alegerea temei proiectului si confirmarea acesteia 
 +  * 10.05.2026 - Realizarea schemei bloc si structurii paginii wiki 
 +  * 11.05.2026 - Stabilirea componentelor hardware necesare 
 +  * 12.05.2026 - Comandarea componentelor 
 +  * 16.05.2026 - Realizarea schemei electrice si stabilirea pinout-ului 
 +  * 18.05.2026 - Conectarea componentelor principale pe breadboard 
 +  * 19.05.2026 - Implementarea citirii parolei de la keypad si afisarea mesajelor pe LCD 
 +  * 20.05.2026 - Implementarea intreruperii externe pentru butonul de reset 
 +  * 21.05.2026 - Configurarea Timer1 pentru controlul servo motorului prin PWM 
 +  * 22.05.2026 - Testarea sistemului si ajustarea starilor de acces permis/​interzis/​blocat 
 + 
 +===== Bibliografie/​Resurse ===== 
 + 
 +**Resurse Hardware** 
 +  * [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] 
 +  * [[https://​www.handsontec.com/​dataspecs/​module/​I2C_1602_LCD.pdf|Datasheet LCD 1602 I2C]] 
 +  * [[https://​components101.com/​motors/​servo-motor-basics-pinout-datasheet|Servo motor SG90]] 
 +  * [[https://​playground.arduino.cc/​Code/​Keypad/​|Keypad Arduino Library]]
pm/prj2026/victor.stoica0203/131405.1778279211.txt.gz · Last modified: 2026/05/09 01:26 by robert.grigore1806
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0