This shows you the differences between two versions of the page.
pm:prj2022:avaduva:smart_fan [2022/04/21 23:06] teodora.miu created |
pm:prj2022:avaduva:smart_fan [2022/05/27 16:14] (current) teodora.miu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | + | **Smart Fan** este un ventilator inteligent care isi schimba viteza de rotatie in functie de temperatura camerei. |
- | Smart Fan este un ventilator inteligent care isi schimba viteza de rotatie in functie de temperatura camerei. Poate fi reglat si manual, folosind un potentimetru. De asemenea, va arata temperatura camerei pe un display led. | + | |
- | </note> | + | |
- | ===== Descriere generală ===== | + | |
- | <note tip> | + | Acesta are doua moduri de functionare: |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | - **modul AUTO**: cu cat devine mai cald in camera, cu atat se mareste viteza ventilatorului |
- | </note> | + | |
+ | - **modul MANUAL**: se poate schimba viteza de rotatie a ventilatorului cu ajutorul unui potentiometru | ||
+ | |||
+ | Temperatura curenta masurata de senzor va fi aratata pe display-ul OLED (in cazul modului __auto__). De asemenea va fi aratata starea potentiometrului (in cazul modului __manual__). | ||
+ | |||
+ | Cu ajutorul butonului de on/off, se poate opri functionarea display-ului si al motorului (butonul verde). | ||
+ | Cu ajutorul butonului de switch, se poate trece de la modul auto la modul manual (butonul rosu). | ||
+ | |||
+ | |||
+ | ===== Descriere generală ===== | ||
+ | |||
+ | {{:pm:prj2022:avaduva:block_diagram.png?700|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | __Lista de piese folosite__: |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | - motor DC 6V |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | - senzor temperatura DS18B20 |
- | * rezultatele simulării | + | |
- | </note> | + | - punte H dubla L298N |
+ | |||
+ | - display OLED | ||
+ | |||
+ | - potentiometru | ||
+ | |||
+ | - fire (mama-tata si tata-tata) | ||
+ | |||
+ | - suport 4 baterii AA | ||
+ | |||
+ | {{:pm:prj2022:avaduva:schema_tmiu.png?700|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | __Mediul de dezvoltare__: **Arduino IDE** | ||
+ | |||
+ | __Librarii folosite__: | ||
+ | |||
+ | - Wire | ||
+ | |||
+ | - Adafruit_GFX | ||
+ | |||
+ | - Adafruit_SSD1206 | ||
+ | |||
+ | - SPI | ||
+ | |||
+ | - OneWire | ||
+ | |||
+ | - DallasTemperature | ||
+ | |||
+ | __Structura codului__: | ||
+ | |||
+ | **Modul AUTO**: Se citeste temperatura masurata de senzor. Daca este mai mare decat o valoare maximala (in cazul meu, 31 de grade), ramane la valoarea maximala. Se afiseaza aceasta temperatura pe display. Apoi, calculez viteza de rotatie, doar daca temperatura masurata este mai mare decat o valoare minimala (in cazul meu, 25 de grade): sub aceasta valoare, viteza va fi 0, ventilatorul se opreste. Folosesc o functie determinata de mine (https://www.dcode.fr/function-equation-finder) pentru a transforma valoarea temperaturii in valoarea vitezei de rotatie, pe care apoi o scriu la inputul motorului (prin intermediul driver-ului L298N). | ||
+ | |||
+ | **Modul MANUAL**: Se citeste valoarea masurata de potentiometru. Folosesc o metoda similara cu cea a modului auto, folosind o alta functie pentru a transforma valoarea masurata de potentiometru in viteza de rotatie a ventilatorului. | ||
+ | |||
+ | Butonul de **on/off** (cel verde) activeaza o intrerupere pe placa Arduino, care opreste/porneste display-ul si motorul (in functie de starea a sistemului). | ||
+ | |||
+ | Butonul de **switch** (cel rosu) activeaza o alta intrerupere care schimba modul de functionare de la manual la automat sau invers. Se verifica pe parcursul programului starea valorilor boolean on si manual, care vor determina activarea/modul de functionare al sistemului. | ||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | **DEMO** |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | https://drive.google.com/file/d/1wIx1pyRJh8H2I5YNZR8PETIqa9jjN-UG/view?usp=sharing |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Datorita acestui mic proiect, am invatat lucruri interesante despre functionarea unui microprocesor ATmega328P si compatibilitatea acestuia cu diferite componente. Regret ca nu am avut mai mult timp sa dedic acestui proiect, deoarece sunt sigura ca cu ajutorul cunostiintelor acumulate as fi putut face ceva mai ambitios. Totodata, consider ca ceea ce am invatat imi va fi foarte util pe viitor, pentru ca legatura dintre software si hardware mi se pare fascinanta. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2022:avaduva:smart_fan.rar|}} |
- | 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> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | https://www.youtube.com/watch?v=PrIAnDZ9dp8&t=11s |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | https://www.youtube.com/watch?v=Ey4xoG970Go |
+ | |||
+ | https://create.arduino.cc/projecthub/TheGadgetBoy/ds18b20-digital-temperature-sensor-and-arduino-9cc806 | ||
+ | |||
+ | https://lastminuteengineers.com/ds18b20-arduino-tutorial/ | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||