Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:atoader:mihnea.marinel [2026/05/22 09:54]
mihnea.marinel [Introducere]
pm:prj2026:atoader:mihnea.marinel [2026/05/22 10:20] (current)
mihnea.marinel
Line 51: 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. +
-  +
-2.Bucla principală:+
  
--Eșantionare ciclică a canalelor ADC0 (MQ-2) și ADC1 (LM35). ​  +1.Inițializare:​ Configurare ADC (prescaler, referință), PWM (Timer 1), I2C (frecvență bus 100kHz) și pini I/O.
-                                                                           +
--Conversia valorii brute ADC în unități de măsură (°C). +
  
-*Logica de decizie:+2.Bucla principală ​:
  
--Dacă Gaz > Prag: Viteza = 100% (Override), LED Roșu intermitent. +• Eșantionare ciclică a canalelor ADC0 (MQ-2) și ADC1 (LM35).
  
--Dacă Gaz < Prag: Viteza se ajustează după temperatură (0% sub 25°C, 60% la 25-30°C, 100% peste 30°C). +• 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.
  
--Actualizare LCD și LED-uri. +• 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ță. 
 + 
 +3.Logica de decizie: 
 + 
 +• 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ă (Oprit sub 33°C, Viteză medie între 33-38°C, Maxim peste 38°C). 
 + 
 +• 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 98: 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>​
pm/prj2026/atoader/mihnea.marinel.1779432855.txt.gz · Last modified: 2026/05/22 09:54 by mihnea.marinel
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