Arduino kontroler ventilatora stonog ventilatora: 4 koraka
Arduino kontroler ventilatora stonog ventilatora: 4 koraka
Anonim
Arduino kontroler stonog ventilatora
Arduino kontroler stonog ventilatora
Arduino kontroler stonog ventilatora
Arduino kontroler stonog ventilatora
Arduino kontroler stonog ventilatora
Arduino kontroler stonog ventilatora

Kada sam nedavno promijenio uloge u kompaniji, premjestio sam web stranice, preselivši se iz Bradforda u našu sjedište u Wakefieldu. Oprostio sam se od svog vjernog starog stola sa obaveznim ventilatorom za stol koji me hladi dok sam svuda oko mene ……. U svakom slučaju, trend u našoj glavnoj kancelariji bio je za male ventilatore sa USB -om od 4 "do 6". Tako je lijep model od starinskog mjedi s efektom od 6 inča brzo naručen i isporučen sljedećeg dana.

Problem sa svim ventilatorima, bilo da imaju postavke brzine ili mehaničke oscilacije, je to što su uključeni ili isključeni, a vi ih na kraju stalno uključujete i isključujete. Iskra mašte, u kombinaciji sa zahtjevom da podignem monitor za dobra 3 inča, i moj sljedeći projekt se rađa. Unesite Fanomatic.

Igrao sam s Arduinom dugi niz godina, pa je to bila logična prva stanica.

Korak 1: Lista i slučaj za kupovinu

Lista za kupovinu i futrola
Lista za kupovinu i futrola
Lista za kupovinu i futrola
Lista za kupovinu i futrola
Lista za kupovinu i futrola
Lista za kupovinu i futrola

Lista za kupovinu:

  • 1 list MDF -a od 12 mm - za kućište
  • 1 Arduino Uno - mozak
  • 1 sml matična ploča i žice
  • 1 DHT11 - digitalni senzor temperature i vlažnosti - samo za temperaturu uzorka
  • 1,96 "OLED ekran - za prikaz promenljivih - brzine, temperature itd
  • 1 IRF520 Mosfet modul - za uključivanje i isključivanje USB ventilatora
  • 4 10k potenciometra sa dugmadima u različitim bojama - za kontrolu brzine ventilatora, na vrijeme, vrijeme isključenja, zadatu temperaturu
  • 1 prekidač za napajanje
  • 1 sml limena boja za ploču - prikladna za MDF sa 1 slojem
  • 1 USB kabel i 1 USB utičnica

Slučaj:

Veličina kućišta je određena veličinom osnove monitora od 24 inča i 4 -portnim KVM prekidačem na 220 mm širine i konačnoj visini na koju sam želio postaviti monitor. Dubina je bila prilično fleksibilna, pa sam otišao na 180 mm da bih dao dovoljno soba. Dakle dimenzije 220mmx180mmx60mm. Sada ga napravite i napunite.

MDF od 12 mm se lako reže kod kuće, prije nego što se zalijepi i zavrne kako bi se formirala radna baza i prednja strana. Prednji dio je tada izbušen tako da stane 4 10k potenciometra i 1 preko gornjeg prekidača za uključivanje/isključivanje koji bi kontrolirao napajanje Arduina i ventilatora. Pravokutna rupa isklesana je za držanje male dimljene sive akrilne ploče iza koje sam planirao pričvrstiti jedan od onih slatkih OLED ekrana. Na pola puta, volio bih da sam otišao na 3 mm premaz za prednju stranu, umjesto 12 mm MDF -a jer je uklonjeno više drva nego što je ostalo.

Nakon što su izbušene i isklesane rupe na stražnjoj i bočnoj strani senzora temperature, USB utičnice i USB napajanja. Naneseno je nekoliko slojeva boje za tablu. Odlična je boja za mdf jer se dobro upija i ne treba podlogu. Daje vrlo neoprostiv mat finiš, upravo ono što sam tražio.

Lonci i prekidači su pričvršćeni, vruće zalijepljeni dimljeni akril i proizvedene Dyno naljepnice za taj retro izgled.

Pored kontrola…

Korak 2: Kontrole

Kontrole
Kontrole

Sve se temelji na Arduino Uno. Ukrcao sam komponente na dasku i započeo skicu.

Skica koristi 3 biblioteke:

  • Jedan za pogon irf520 MOSFET -a za uključivanje ventilatora.
  • Jedan za upravljanje OLED ekranom
  • Jedan za čitanje i prevođenje temperaturnih podataka sa DHT11

Skicu ću ovdje uključiti kasnije, kad je malo sredim, ali upozorite me, ja NISAM koder, razumijem dobre principe kodiranja, ali sam obično lijen koder. Ako mogu pronaći način da zaobiđem nešto i to funkcionira, onda funkcionira.

Postoje neke sjajne web stranice koje objašnjavaju kako se koristi svaka…. i uključivat će veze do najboljih (po mom mišljenju) web stranica kako bi iz svake izvukli najbolje.

Logika:

Jedan USB kabel napaja Arduino AND USB ventilator. Arduino ne može pokrenuti ventilator jer bi struja koju vuče oštetila Arduino (zapravo pomalo dramatično! Spotaknuo bi ugrađeni osigurač). Stoga moramo pronaći način korištenja Arduina za uključivanje ili isključivanje ventilatora.

Potreban je tranzistor, prvo sam naručio Darlington tranzistor, ali nakon čitanja, našao sam se za upravljački modul irf520 MOSFET sa HobbyComponents.com. Geek Alert !! IRF520 je odličan za prebacivanje logičkog nivoa (izlaz sa Arduino pinova). Napon koji se šalje na uređaj određuje otpor MOSFET -a, tj. slanjem 0 do 255 na digitalni pin ventilator (ili drugi povezani uređaj) će se isključiti na punu brzinu.

Vratit ćemo se na 0 do 255 kasnije.

Pa uključujemo ventilator s Arduinom, čemu muka? Pa, ne želimo da se upali kad je previše hladno, zar ne? Dakle, ako dodamo senzor temperature, možemo napisati kôd i testirati da vidimo je li vruće i uključiti ventilator (255) ili isključiti (0). Odlučio sam se za DHT11 jer je jeftin, lako kodiran i dovoljno precizan za ovaj projekt.

Vratimo se na taj posao od 0 do 255. Ako znamo da će malo koda uključiti ventilator (255) ako je temperatura visoka, ili isključiti (0) ako je temperatura niska, ako smo imali vrijednost između 0 i 255, otpor bi porastao ili pao preko MOSFET i ubrzati ili usporiti ventilator.

Unesite potenciometar spojen na analogni pin! Kad se okrene, generira vrijednost između 0 i 1023. Ta se vrijednost tada može testirati u kodu za promjenu brzine ventilatora !! yipeeeee.

Postoji još jedna stvar (pa, par). Biblioteka za upravljanje motorom koju ćemo koristiti za pogon MOSFET upravljačkog programa prihvaća 2 parametra, jedan za postavljanje otpora (za brzinu), a drugi za postavljanje trajanja. Dakle, pomoću ovog čarobnog parametra možemo postaviti koliko je dugo ventilator uključen, a koliko dugo ako je isključen.

Dakle, imamo 4 lonca za kontrolu 4 varijable. Zatim ćemo pogledati ekran.

Korak 3: Zaslon

Zaslon
Zaslon
Zaslon
Zaslon

DA LI TREBA displej? Ne baš. Pa zašto ga ima? Pa, zato što sam želio slatki ekran koji prikazuje trenutnu temperaturu, brzinu ventilatora, ventilator na vrijeme, vrijeme isključenja ventilatora i zadatu temperaturu.

U8G biblioteka sjajno upravlja ovim malim OLED ekranom. Trebalo mi je jedno veče istraživanja, pa sam se pozabavio naredbama kako bih dobio željenu veličinu fonta za 5 redova i kako bih varijable prikazao pomoću naredbi u8g.print (). Prednost ovog zaslona je u tome što nije ekran u 2 ili 4 reda 'na koji je zajednica Arduino toliko navikla, pa su grafika i fontovi vrlo izvedivi.

Da budem iskren, većina koda pokreće ekran. ako izrazi određuju vrijednosti koje će se prikazati, npr. pretvoriti vrijednost iz analognih posuda (0 do 1023) u vrijednost za prikaz na ekranu. Sve u svemu, postoji nekoliko skupova blokova izjava, odredite brzinu ventilatora iz pot, pretvorite u % vrijednost za ekran i vrijednost između 0 i 255 za pogon ventilatora.

Pa to će zasad biti dovoljno ljudi. Nadam se da ćete uživati u ovoj prvoj obroci. Uređivat ću i ažurirati vezama i kodom. Ako želite nešto više o detaljima, ostavite komentar i pitajte.

Korak 4: Kodirajte

Obećao sam da ću postaviti skicu kad sam ovo postavio, prije 3 godine, i nikada nisam.

Pa evo ga ……