Table of Contents

Smart Fan

Introducere

Smart Fan este un ventilator inteligent care isi schimba viteza de rotatie in functie de temperatura camerei.

Acesta are doua moduri de functionare:

- modul AUTO: cu cat devine mai cald in camera, cu atat se mareste viteza ventilatorului

- 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ă

Hardware Design

Lista de piese folosite:

- motor DC 6V

- senzor temperatura DS18B20

- punte H dubla L298N

- display OLED

- potentiometru

- fire (mama-tata si tata-tata)

- suport 4 baterii AA

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.

Rezultate Obţinute

DEMO

https://drive.google.com/file/d/1wIx1pyRJh8H2I5YNZR8PETIqa9jjN-UG/view?usp=sharing

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

smart_fan.rar

Bibliografie/Resurse

https://www.youtube.com/watch?v=PrIAnDZ9dp8&t=11s

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/

Export to PDF