This is an old revision of the document!
Proiectul constă într-o cutie inteligentă cu închidere mecanică, destinată depozitării telefonului sau a altor obiecte în timpul unei sesiuni de lucru. Utilizatorul selectează o durată de blocare, iar dispozitivul blochează capacul folosind un servomotor. Deblocarea se poate face doar după expirarea timpului setat sau prin introducerea unei combinații rotative.
Proiectul este gândit ca un sistem fizic de limitare a accesului la obiecte care pot distrage atenția, în special telefonul. Spre deosebire de o aplicație software de productivitate, TimeLock Box obligă utilizatorul să își respecte intervalul de lucru printr-o blocare mecanică reală. Sistemul afișează starea curentă pe un LCD și semnalizează vizual sau acustic evenimentele importante.
Componentele principale ale proiectului sunt vizibile în schema bloc de mai jos. Placa ATmega328P Xplained Mini este blocul central al sistemului: citește intrările utilizatorului, actualizează afișajul și comandă mecanismul de blocare.
Encoderul de timp este folosit pentru alegerea duratei de blocare, iar encoderul de cod este folosit pentru introducerea combinației de deblocare. LCD-ul comunică prin I2C și afișează starea sistemului. Servomotorul SG90 este comandat prin PWM și acționează zăvorul mecanic. Microswitch-ul detectează ridicarea capacului, iar buzzerul și LED-urile oferă feedback acustic și vizual. Servo-ul este alimentat separat la 5V, cu masă comună cu restul sistemului.
Schema electrică a proiectului este realizată în KiCad și este atașată mai jos. Pentru lizibilitate, conexiunile sunt grupate prin etichete de semnal, iar alimentarea servo-ului este separată de alimentarea logică.
| Componentă | Cantitate | Rol în proiect |
|---|---|---|
| ATmega328P Xplained Mini | 1 | control principal |
| Encoder rotativ KY-040 pentru timp | 1 | setare durată |
| Encoder rotativ KY-040 pentru cod | 1 | introducere cod |
| LCD 1602 cu interfață I2C | 1 | afișare status |
| Servomotor SG90 | 1 | acționare zăvor |
| Buzzer pasiv 5V | 1 | alarmă acustică |
| Microswitch cu levier | 1 | detecție capac |
| LED roșu | 1 | indicator alarmă |
| LED verde | 1 | indicator OK |
| Rezistențe 330Ω | 2 | limitare curent LED |
| Condensator electrolitic 470uF / 16V | 1 | stabilizare servo |
| Breadboard 830 puncte | 1 | prototipare |
| Fire jumper tată-tată și mamă-tată | mai multe | conexiuni |
| Sursă externă 5V pentru servo | 1 | alimentare servo |
| Modul | Conexiuni | Motiv |
|---|---|---|
| Encoder timp KY-040 | CLK - PD2 / INT0; DT - PD4; SW - PB0 / PCINT0; VCC → +5V; GND → GND | PD2 oferă întrerupere externă pentru citirea rapidă a rotației |
| Encoder cod KY-040 | CLK - PD5 / PCINT21; DT - PD6; SW - PC2 / PCINT10; VCC → +5V; GND → GND | PC2 evită conflictul cu PB3/MOSI, folosit posibil de SPI |
| LCD 1602 I2C | SDA - PC4; SCL - PC5; VCC → +5V; GND → GND | PC4 și PC5 sunt pinii hardware I2C/TWI |
| Servomotor SG90 | Semnal - PB1 / OC1A; VCC → +5V servo; GND → GND comun | PB1/OC1A permite generarea PWM cu Timer1 |
| Buzzer pasiv | + → PD3 / OC2B; - → GND | PD3/OC2B permite generarea unui ton prin PWM |
| Microswitch capac | NO - PB2; C - GND | PB2 este citit cu pull-up intern pentru detecția capacului |
| LED roșu | anod - PC0; catod → rezistență 330Ω → GND | PC0 comandă indicatorul de alarmă/eroare |
| LED verde | anod - PC1; catod → rezistență 330Ω → GND | PC1 comandă indicatorul de stare OK/deblocat |
| Linie alimentare | Componente alimentate | Observații |
|---|---|---|
| +5V logică | ATmega328P Xplained Mini, LCD 1602 I2C, encodere KY-040 | Alimentarea logică este folosită pentru modulele cu consum redus. |
| +5V servo | Servomotor SG90 | Servo-ul este alimentat separat deoarece poate avea vârfuri de curent în timpul mișcării. |
| GND comun | Toate modulele | Masa sursei externe pentru servo este conectată la masa plăcii, astfel încât semnalul PWM să aibă aceeași referință electrică. |
| Condensator 470uF / 16V | Între +5V servo și GND | Ajută la stabilizarea tensiunii când servo-ul pornește sau schimbă poziția. |
| Pin ATmega328P | Funcție în proiect |
|---|---|
| PD2 / INT0 | CLK encoder timp |
| PD4 | DT encoder timp |
| PB0 / PCINT0 | SW encoder timp |
| PD5 / PCINT21 | CLK encoder cod |
| PD6 | DT encoder cod |
| PC2 / PCINT10 | SW encoder cod |
| PC4 / SDA | Date I2C pentru LCD |
| PC5 / SCL | Ceas I2C pentru LCD |
| PB1 / OC1A | PWM servomotor SG90 |
| PD3 / OC2B | PWM buzzer pasiv |
| PB2 | Intrare microswitch capac |
| PC0 | LED roșu |
| PC1 | LED verde |
| PD0 / PD1 | UART pentru debug, lăsați liberi |
În această secțiune voi încărca video-ul realizat în laborator:
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.