This is an old revision of the document!


Seif Electronic cu Cod PIN și Sistem Anti-Efracție

Introducere

Proiectul constă într-un seif electronic controlat printr-o tastatură matriceală 4×4, care permite deblocarea unui mecanism de zăvorâre (servomotor SG90) doar la introducerea codului PIN corect.

* Ce face: Utilizatorul introduce un cod PIN de 4 cifre pe tastatura

matriceală. Dacă codul este corect, servomotorul deblochează ușa seifului, 
LCD-ul afișează "Acces permis" și LED-ul RGB devine verde. La cod greșit, 
buzzer-ul emite un semnal sonor, LCD-ul afișează "Cod incorect" și LED-ul 
devine roșu. După 3 încercări greșite consecutive, sistemul intră în 
blocare temporară de 30 secunde. Un senzor LDR montat în interiorul 
seifului detectează deschiderea forțată a ușii fără cod și declanșează 
o alarmă sonoră continuă.

* Scopul: Realizarea unui sistem de securitate simplu, funcțional și

ieftin, construit în jurul microcontrolerului ATmega328P Xplained Mini.

* Ideea de pornire: Proiectele similare de tip seif există, însă

niciuna nu combina mecanismul de blocare cu un senzor de lumină 
anti-efracție pe ATmega328P Xplained Mini. Adăugarea LDR-ului oferă 
un nivel suplimentar de securitate față de proiectele anterioare.

* Utilitate: Proiectul demonstrează integrarea mai multor periferice

hardware (GPIO, PWM, ADC, I2C) într-un sistem embedded real, util 
atât ca proiect educațional cât și ca prototip funcțional.

Descriere generală

Schema bloc a proiectului:

+——————+ +——————-+

Tastatură 4×4 ——>

+——————+ | ATmega328P |—–> Servomotor SG90

                          |   Xplained Mini   |-----> LED RGB

+——————+ | |—–> Buzzer pasiv

Senzor LDR ——>

+——————+ +——————-+

Module hardware:

  • Tastatură 4×4 — input utilizator pentru introducerea codului PIN.

Conectată pe 8 pini GPIO ai ATmega328P (4 rânduri + 4 coloane),

  citită prin scanare matriceală.
* **LCD 1602 + modul I2C** — afișează starea sistemului (introducere cod, 
  acces permis/refuzat, alarmă). Comunicație I2C (SDA/SCL).
* **Servomotor SG90** — controlează mecanismul fizic de blocare al ușii 
  seifului. Poziție 0° = blocat, poziție 90° = deblocat. Controlat 
  prin semnal PWM.
* **Senzor LDR** — detectează variația de lumină în interiorul seifului 
  (ușă deschisă forțat). Citit prin ADC.
* **Buzzer pasiv** — feedback audio: bip scurt la tastă apăsată, bip 
  lung la cod greșit, ton continuu la alarmă. Controlat prin PWM.
* **LED RGB** — indicator vizual: verde = deblocat, roșu = cod greșit 
  sau alarmă. Controlat prin GPIO/PWM.

Interacțiunea modulelor: Utilizatorul introduce cifre pe tastatură → ATmega procesează input-ul prin întreruperi → compară codul cu cel stocat în EEPROM → comandă servomotorul prin PWM și afișează rezultatul pe LCD prin I2C → LDR monitorizează continuu lumina prin ADC și poate declanșa alarma independent de starea codului.

Hardware Design

Listă de piese:

  • ATmega328P Xplained Mini (placă de dezvoltare)
  • Tastatură matriceală 4×4 (membrană)
  • Display LCD1602 HD44780
  • Modul interfață I2C/IIC pentru LCD1602
  • Servomotor SG90 180 grade
  • Modul senzor LDR (fotorezistor)
  • Modul buzzer pasiv KY-006
  • Modul LED RGB 3 culori
  • Breadboard 830 puncte MB-102
  • Set rezistoare 20 valori 400 bucăți
  • Fire Dupont tată-mamă 20cm (x40)
  • Fire Dupont tată-tată 30cm (x40)
  • Cutie lemn (carcasă seif)

Conexiuni principale:

  • Tastatură 4×4 → PB0-PB3 (rânduri), PD4-PD7 (coloane)
  • LCD I2C → SDA (PC4), SCL (PC5)
  • Servo SG90 → PB1 (OC1A, Timer1 PWM)
  • LDR → PC0 (ADC0)
  • Buzzer → PB2 (OC1B, Timer1 PWM)
  • LED RGB → PD3 (roșu), PD5 (verde), PD6 (albastru) — cu rezistențe

220Ω în serie

Software Design

Mediu de dezvoltare:

  • Microchip Studio (fost AVR Studio) — IDE principal
  • AVR-GCC — compilator C
  • AVRDUDE — programare prin USB (mEDBG integrat pe Xplained Mini)

Librării utilizate:

  • LiquidCrystal_I2C (portată pentru AVR) — comunicație cu LCD prin I2C
  • Librărie proprie pentru scanare tastatură matriceală
  • avr/io.h, avr/interrupt.h, avr/eeprom.h, util/delay.h — librării

standard AVR

Algoritmi și structuri planificate:

1. **Scanare tastatură (Lab 0 — GPIO + Lab 2 — Întreruperi)**
   - Rândurile tastaturii pe pini OUTPUT, coloanele pe INPUT_PULLUP
   - Timer2 configurat să declanșeze întrerupere la fiecare 10ms 
     pentru debounce și scanare matriceală
   - La detecție tastă: adaugă cifra în buffer cod curent
2. **Verificare cod PIN (EEPROM)**
   - Codul PIN stocat în EEPROM (persistent între resetări)
   - Comparare buffer introdus vs. cod stocat
   - Contor încercări greșite — blocare 30s după 3 eșecuri
   - Posibilitate schimbare cod prin secvență specială (#)
3. **Control servomotor (Lab 3 — Timer/PWM)**
   - Timer1 în modul Fast PWM, frecvență 50Hz (perioada 20ms)
   - Deblocat: ICR = 1500μs (poziție 90°)
   - Blocat: ICR = 500μs (poziție 0°)
4. **Buzzer (Lab 3 — Timer/PWM)**
   - Ton la apăsare tastă: 1kHz, 50ms
   - Ton cod greșit: 500Hz, 500ms
   - Alarmă: 2kHz continuu
5. **Senzor LDR — anti-efracție (Lab 4 — ADC)**
   - ADC în modul Free Running, referință AVcc
   - Prag calibrat la pornire (lumina din interior când ușa e închisă)
   - Dacă valoare ADC depășește pragul + offset → declanșare alarmă
   - Verificare la fiecare 100ms prin flag setat de Timer2
6. **Afișaj LCD (Lab 6 — I2C)**
   - Mesaje: "Introduceti PIN:", "Acces permis!", "Cod incorect!", 
     "ALARMA ACTIVA!", "Blocat 30s..."
   - Afișare număr asteriscuri (*) per cifră introdusă
7. **LED RGB (Lab 0 — GPIO)**
   - Verde: cod corect / ușă deblocată
   - Roșu: cod greșit / alarmă
   - Clipire roșu: blocare temporară

Rezultate Obținute

De completat după finalizarea proiectului. ===== Concluzii ===== De completat după finalizarea proiectului.

Download

Arhiva cu sursele .c/.h, schema electrică și README se va încărca după finalizare.

Jurnal

  • Săptămâna 1: Achiziție componente, testare individuală (LCD,

tastatură, servo)

  • Săptămâna 2: Implementare scanare tastatură + verificare PIN +

control servo

  • Săptămâna 3: Integrare LDR (anti-efracție) + buzzer + LED RGB
  • Săptămâna 4: Montare în carcasă, teste finale, documentație

Bibliografie/Resurse

Resurse Hardware:

Resurse Software:

pm/prj2026/mihnea.dinica/ovidiu.calina.1777994194.txt.gz · Last modified: 2026/05/05 18:16 by ovidiu.calina
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