This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:mihnea.marinel [2026/05/22 09:38] mihnea.marinel [Introducere] |
pm:prj2026:atoader:mihnea.marinel [2026/05/22 10:20] (current) mihnea.marinel |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| Am ales acest proiect deoarece integrează fluxuri de date analogice cu logică de control în timp real. Direcția este una utilă în scenarii reale, precum camere de servere sau ateliere, unde ventilația trebuie să fie eficientă energetic dar și să reacționeze instantaneu la pericole (scurgeri de gaze). Elementul central este logica de override: indiferent de temperatură, detectarea fumului forțează sistemul în mod de alertă maximă. | Am ales acest proiect deoarece integrează fluxuri de date analogice cu logică de control în timp real. Direcția este una utilă în scenarii reale, precum camere de servere sau ateliere, unde ventilația trebuie să fie eficientă energetic dar și să reacționeze instantaneu la pericole (scurgeri de gaze). Elementul central este logica de override: indiferent de temperatură, detectarea fumului forțează sistemul în mod de alertă maximă. | ||
| + | |||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| Line 50: | Line 51: | ||
| {{ :pm:prj2026:atoader:schema_electrica_ventilator.png?700 |Schema bloc ventilator}} | {{ :pm:prj2026:atoader:schema_electrica_ventilator.png?700 |Schema bloc ventilator}} | ||
| + | |||
| + | |||
| + | **Stările Sistemului:** | ||
| + | |||
| + | 1. **Stare Normală:** Temperatura este sub pragul de alertă, mediul este curat. Ventilatorul este oprit. | ||
| + | {{ :pm:prj2026:atoader:ventilator_stare_neutra.jpeg?700 |Schema bloc ventilator}} | ||
| + | |||
| + | 2. **Stare Atenție Temperatură:** Temperatura crește peste pragul setat, sistemul pornește evacuarea aerului. | ||
| + | {{ :pm:prj2026:atoader:ventilator_stare_medie_temperatura.jpeg?700 |Schema bloc ventilator}} | ||
| + | |||
| + | 3. **Stare Alarma Gaz:** Senzorul MQ-2 detectează gaz. Sistemul ignoră temperatura și intră în modul de siguranță. | ||
| + | {{ :pm:prj2026:atoader:ventilator_stare_critica(gaz_detectat).jpeg?700 |Schema bloc ventilator}} | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| <note tip> | <note tip> | ||
| - | Firmware-ul este scris în C (AVR Libc) folosind registrele specifice ATmega328P. Logica software este structurată modular: | + | Firmware-ul este scris în C (AVR Libc) la nivel de regiștri (bare-metal) pentru ATmega328P, dezvoltat în mediul VS Code cu PlatformIO. Logica software este structurată modular: |
| - | + | ||
| - | 1.Inițializare: Configurare ADC (prescaler, referință), PWM (Timer 1), I2C (frecvență bus) și pini I/O. | + | 1.Inițializare: Configurare ADC (prescaler, referință), PWM (Timer 1), I2C (frecvență bus 100kHz) și pini I/O. |
| - | + | ||
| - | 2.Bucla principală: | + | 2.Bucla principală : |
| + | |||
| + | • Eșantionare ciclică a canalelor ADC0 (MQ-2) și ADC1 (LM35). | ||
| + | |||
| + | • Oversampling și Filtru EMA: Pentru a elimina zgomotul electric de masă (Ground Bounce) generat de comutația motorului DC pe breadboard, citirile senzorului LM35D sunt trecute printr-un filtru EMA (Exponential Moving Average) combinat cu o medie aritmetică din 20 de eșantioane. | ||
| - | -Eșantionare ciclică a canalelor ADC0 (MQ-2) și ADC1 (LM35). | + | • Logică de Histerezis: S-a implementat o zonă tampon (dead-band) de 2.0°C pentru a preveni oscilația ventilatorului (pornit/oprit repetat) când temperatura fluctuează fix la valoarea de graniță. |
| - | + | ||
| - | -Conversia valorii brute ADC în unități de măsură (°C). | + | |
| - | *Logica de decizie: | + | 3.Logica de decizie: |
| - | -Dacă Gaz > Prag: Viteza = 100% (Override), LED Roșu intermitent. | + | • Dacă Gaz > Prag (Analogic > 130 sau Pin Digital activ): Override activat, viteză 100% (PWM 255), LED Roșu intermitent, LCD afișează alarmă. |
| - | -Dacă Gaz < Prag: Viteza se ajustează după temperatură (0% sub 25°C, 60% la 25-30°C, 100% peste 30°C). | + | • Dacă Gaz < Prag: Viteza se ajustează după temperatură (Oprit sub 33°C, Viteză medie între 33-38°C, Maxim peste 38°C). |
| - | -Actualizare LCD și LED-uri. | + | • Actualizare continuă a display-ului LCD și a interfeței UART pentru telemetrie. |
| </note> | </note> | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | Sistemul reușește să filtreze cu succes zgomotul electric puternic indus de motor pe o sursă de alimentare comună (breadboard), oferind citiri stabile de temperatură. De asemenea, funcția de "Hardware Override" a senzorului MQ-2 răspunde aproape instantaneu (sub 1 secundă) la prezența gazului, demonstrând un nivel de fiabilitate esențial pentru un sistem de siguranță. |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | Realizarea acestui proiect a scos în evidență discrepanțele dintre teoria ideală a circuitelor și limitările fizice ale hardware-ului real (inerție termică, zgomot pe linia de GND). Rezolvarea acestor probleme pur hardware prin metode software (filtre exponențiale și histerezis) a demonstrat că un sistem embedded stabil necesită o fuziune echilibrată între electronică și programare. | ||
| ===== Download ===== | ===== Download ===== | ||
| + | <note> | ||
| + | Codul sursă complet, schemele și imaginile sunt disponibile în repo-ul: | ||
| - | <note warning> | + | https://github.com/MMihnea04/Ventilator-Inteligent-cu-Monitorizare-Mediu.git |
| - | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
| - | + | ||
| - | 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**. | + | |
| </note> | </note> | ||
| Line 97: | Line 110: | ||
| •17 Aprilie 2026 : Achiziția componentelor (LM35D, MQ-2, L298N,…). | •17 Aprilie 2026 : Achiziția componentelor (LM35D, MQ-2, L298N,…). | ||
| + | |||
| + | •10-15 Mai 2026 : Asamblare proiect. | ||
| + | |||
| + | •21-22 Mai 2026 : Scriere cod și testare finală. | ||
| </note> | </note> | ||