Arhitectura proiectului este centrată pe microcontrolerul ATmega328P. Sistemul este organizat în trei piloni funcționali:
Microcontrolerul compară distanța cu pragul setat și verifică PIR. În funcție de stare, actualizează LED-ul, buzzer-ul și mesajele trimise pe Serial.
Lista componentelor hardware utilizate:
| Nr. Crt. | Componentă | Cantitate | Rol în proiect | Modul / Interfață folosită |
|---|---|---|---|---|
| 1. | ATmega328P-Xplained Mini | 1 buc. | Unitatea centrală de procesare. | Toate |
| 2. | OLED SSD1306 128×64 | 1 buc. | Afișare distanță, prag, stare alarmă. | I2C (SDA, SCL) |
| 3. | Senzor Ultrasonic HC-SR04 | 1 buc. | Măsurarea distanței prin ultrasunete. | Timere / Input Capture |
| 4. | Senzor Motion (PIR) | 1 buc. | Detectarea mișcării. | GPIO |
| 5. | Slide-pot (HW-233) | 1 buc. | Reglarea pragului de alarmă. | ADC |
| 6. | Buzzer Pasiv | 1 buc. | Alarmă sonoră cu ton variabil. | PWM / Timere |
| 7. | LED status | 1 buc. | Alarmă vizuală. | PWM |
| 8. | Rezistență 220Ω | 1 buc. | Protecția LED-ului. | N/A |
| Componentă | Pin ATmega328P | Rol | Motivație tehnică |
|---|---|---|---|
| OLED SDA | PC4 (SDA) | I2C data | SDA hardware (TWI) pentru I2C stabil |
| OLED SCL | PC5 (SCL) | I2C clock | SCL hardware (TWI) pentru I2C stabil |
| Ultrasonic Trig | PD3 | output digital | pin simplu pentru impuls 10 us |
| Ultrasonic Echo | PB0 (ICP1) | input capture | ICP1 măsoară lățimea impulsului precis |
| Motion (PIR) | PC1 | input digital | ieșire digitală comparată intern |
| Potențiometru | PC0 (ADC0) | intrare analogică | ADC0 este canal dedicat ADC |
| Buzzer | PD6 (OC0A) | PWM output | OC0A oferă PWM hardware |
| LED status | PB3 (OC2A) | PWM output | PWM hardware pentru efecte |
ATmega328P OLED SSD1306 PC4 (SDA) ----------- SDA PC5 (SCL) ----------- SCL VCC ----------- VCC GND ----------- GND ATmega328P HC-SR04 PD3 (TRIG) ----------- TRIG PB0 (ECHO) ----------- ECHO VCC ----------- VCC GND ----------- GND ATmega328P MOTION PC1 ------------------ OUT VCC ----------- VCC GND ----------- GND ATmega328P Slide-pot HW-233 PC0 (ADC0) ----------- OUT VCC ----------- VCC GND ----------- GND ATmega328P Buzzer pasiv PD6 (OC0A) ----------- S VCC ----------- VCC GND ----------- GND ATmega328P LED status PB3 (OC2A) ----------- ANOD (+) GND ------------------ CATOD (-) (cu rezistență serie)
Codul este conceput pentru ATmega328P și folosește o arhitectură modulară (driver per periferic). Nu sunt folosite biblioteci Arduino; totul este scris cu acces direct la registre.
distanta = (timp_ecou * 0.034) / 2.Header-ele standard:
<avr/io.h>, <avr/interrupt.h>, <util/delay.h>, <avr/pgmspace.h><stdint.h>, <stdbool.h>, <stdio.h>Drivere locale:
include/usart.h + src/usart.cinclude/adc.h + src/adc.cinclude/twi.h + src/twi.cinclude/ssd1306.h + src/ssd1306.cinclude/motion.h + src/motion.cinclude/ultrasonic.h + src/ultrasonic.cinclude/buzzer.h + src/buzzer.csrc/main.cpp: inițializări, bucla principală, logică de alarmă.src/usart.c + include/usart.h: inițializare și transmitere USART.src/adc.c + include/adc.h: citire ADC și mapare prag.src/twi.c + include/twi.h: comunicație I2C.src/ssd1306.c + include/ssd1306.h: buffer OLED și randare text.src/ultrasonic.c + include/ultrasonic.h: trigger, input capture, conversie cm.src/motion.c + include/motion.h: citire PIR pe PC1.src/buzzer.c + include/buzzer.h: PWM Timer0 și mapare frecvență.src/ssd1306.c.
Proiectul demonstrează integrarea corectă a interfețelor ADC, TWI/I2C, Timere/PWM și USART într-un sistem de alarmă funcțional. Soluția oferă feedback clar (vizual, sonor și digital) și permite configurarea pragului în timp real, fiind o bază solidă pentru extinderi viitoare.