This shows you the differences between two versions of the page.
|
pm:prj2026:victor.stoica0203:131405 [2026/05/16 15:10] robert.grigore1806 [Schema electrica] |
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 ====== |
| **Nume:** Robert Grigore | **Nume:** Robert Grigore | ||
| Line 34: | Line 34: | ||
| ^ Componenta ^ Cantitate ^ Link ^ Pret unitar (RON) ^ | ^ 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | + | | 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 | | | Cablu USB | 1 | orice cablu USB compatibil | 0.00 | | ||
| Line 76: | Line 76: | ||
| ===== Software Design ===== | ===== 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 | **Mediu de dezvoltare:** Arduino IDE | ||
| **Biblioteci utilizate:** | **Biblioteci utilizate:** | ||
| - | * LiquidCrystal_I2C | + | * **Wire** - utilizata pentru comunicatia I2C |
| - | * Keypad | + | * **LiquidCrystal_I2C** - utilizata pentru controlul display-ului LCD 16x2 prin I2C |
| - | * Wire | + | * **Keypad** - utilizata pentru citirea tastaturii matriciale 4x4 |
| - | * Servo | + | * **avr/io.h** - utilizata pentru acces direct la registrii microcontrollerului |
| + | * **avr/interrupt.h** - utilizata pentru implementarea intreruperii externe | ||
| - | **Functionalitati planificate:** | + | **Functionalitati si tehnici cheie:** |
| - | * verificarea parolei introduse | + | |
| - | * afisarea mesajelor pe LCD | + | * **Autentificare prin parola:** utilizatorul introduce parola de la keypad, iar sistemul compara codul introdus cu parola salvata in program. |
| - | * controlul servo motorului prin PWM | + | |
| - | * utilizarea intreruperilor pentru resetarea sistemului | + | * **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". |
| - | * semnalizare sonora si vizuala | + | |
| + | * **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 ===== | ===== Rezultate Obtinute ===== | ||
| - | TBC | + | 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 ===== | ===== Concluzii ===== | ||
| - | TBC | + | 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 ===== | ===== Download ===== | ||
| - | TBC | + | 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 ===== | ===== Jurnal ===== | ||
| Line 110: | Line 141: | ||
| * 11.05.2026 - Stabilirea componentelor hardware necesare | * 11.05.2026 - Stabilirea componentelor hardware necesare | ||
| * 12.05.2026 - Comandarea componentelor | * 12.05.2026 - Comandarea componentelor | ||
| - | * TBD - Implementarea hardware | + | * 16.05.2026 - Realizarea schemei electrice si stabilirea pinout-ului |
| - | * TBD - Implementarea software | + | * 18.05.2026 - Conectarea componentelor principale pe breadboard |
| - | * TBD - Realizarea schemei electrice | + | * 19.05.2026 - Implementarea citirii parolei de la keypad si afisarea mesajelor pe LCD |
| - | * TBD - Testarea si integrarea componentelor | + | * 20.05.2026 - Implementarea intreruperii externe pentru butonul de reset |
| - | * TBD - Finalizarea proiectului si documentatiei | + | * 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 ===== | ===== Bibliografie/Resurse ===== | ||
| - | |||
| - | **Resurse Software** | ||
| - | * Laboratoarele PM | ||
| - | * https://www.arduino.cc/ | ||
| - | * https://docs.arduino.cc/ | ||
| **Resurse Hardware** | **Resurse Hardware** | ||
| - | * Datasheet ATmega328P | + | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] |
| - | * Datasheet LCD 1602 | + | * [[https://www.handsontec.com/dataspecs/module/I2C_1602_LCD.pdf|Datasheet LCD 1602 I2C]] |
| - | * Datasheet Servo SG90 | + | * [[https://components101.com/motors/servo-motor-basics-pinout-datasheet|Servo motor SG90]] |
| - | + | * [[https://playground.arduino.cc/Code/Keypad/|Keypad Arduino Library]] | |
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |