Controller ng Fan ng Arduino Desk: 4 na Hakbang
Controller ng Fan ng Arduino Desk: 4 na Hakbang
Anonim
Controller ng Fan ng Arduino Desk
Controller ng Fan ng Arduino Desk
Controller ng Fan ng Arduino Desk
Controller ng Fan ng Arduino Desk
Controller ng Fan ng Arduino Desk
Controller ng Fan ng Arduino Desk

Nang baguhin ko kamakailan ang mga tungkulin sa loob ng kumpanya, inilipat ko ang mga site, paglipat mula sa Bradford sa aming punong tanggapan sa Wakefield. Nagpaalam ako sa aking matapat na lumang mesa na dapat may tagahanga ng desk upang mapanatili akong cool habang nasa paligid ko ……. Gayunpaman, ang kalakaran sa aming pangunahing tanggapan ay para sa maliliit na tagahanga ng pinapatakbo ng USB na mga 4 "hanggang 6". Kaya't ang isang magandang antigong epekto ng tanso na 6 "na modelo ay mabilis na inorder at naihatid kinabukasan.

Ang problema sa lahat ng mga tagahanga, kung mayroon silang mga setting ng bilis o mga mode ng pag-oscillate ng mekanikal, ay naka-on o naka-off ang mga ito, at natatapos mong i-on at i-off ang mga ito sa lahat ng oras. Ang isang spark ng imahinasyon, na sinamahan ng isang kinakailangan upang itaas ang aking monitor sa pamamagitan ng isang mahusay na 3 , at ang aking susunod na proyekto ay ipinanganak. Ipasok ang Fanomatic.

Naglaro ako kay Arduino ng maraming taon, kaya't ito ang lohikal na unang paghinto.

Hakbang 1: Listahan sa Pamimili at Kaso

Listahan ng Kaso at Kaso
Listahan ng Kaso at Kaso
Listahan ng Kaso at Kaso
Listahan ng Kaso at Kaso
Listahan ng Kaso at Kaso
Listahan ng Kaso at Kaso

Listahan ng bibilhin:

  • 1 sheet ng 12mm MDF - para sa kaso
  • 1 Arduino Uno - ang mga utak
  • 1 sml breadboard at wires
  • 1 DHT11 - digital na temperatura at sensor ng kahalumigmigan - upang mai-sample ang temperatura lamang
  • 1.96 "OLED display - upang ipakita ang mga variable - bilis, temperatura atbp
  • 1 IRF520 Mosfet module - upang buksan at patayin ang lakas ng USB para sa fan
  • 4 10k Potentiometers na may iba't ibang mga kulay na knobs - upang makontrol ang bilis ng fan, sa oras, off time, temp set point
  • 1 switch ng kuryente
  • 1 sml lata na pisara ng pisara - angkop para sa MDF na may 1 amerikana
  • 1 usb cable at 1 usb socket

Kaso:

Ang laki ng kaso ay pinamamahalaan ng laki ng base ng aking 24 monitor at 4 port KVM switch sa 220mm ang lapad at huling taas na nais kong itakda sa aking monitor. Lalim ay lubos na may kakayahang umangkop, kaya't nagpunta ako para sa 180mm upang magbigay ng maraming silid. Kaya't 220mmx180mmx60mm ang laki. Ngayon upang gawin ito at punan ito.

Ang 12mm MDF ay pinutol nang madali sa bahay, bago ang pandikit at tornilyo upang mabuo ang isang gumaganang base at harap. Ang harapan ay pagkatapos ay drill upang magkasya ang 4 10k Potentiometers at 1 sa itaas na on / off switch na makokontrol ang lakas sa Arduino at fan. Ang isang hugis-parihaba na butas ay chiselled upang hawakan ang isang maliit na pinausukang grey na panel ng acrylic, sa likod kung saan pinlano kong i-secure ang isa sa mga nakatutandang ipinakitang OLED. Halfway through, nais kong umalis para sa 3mm ply para sa harap, sa halip na 12mm MDF dahil maraming kahoy ang tinanggal kaysa sa natitira.

Kapag ang mga butas ay na-drill at chiselled sa likod at gilid para sa temperatura sensor, usb socket at usb power in. Ang isang pares ng mga coats ng blackboard pintura ay inilapat. Ito ay isang mahusay na pintura para sa mdf habang ito ay nagbabad nang maayos at hindi nangangailangan ng isang undercoat. Nagbibigay ito ng isang napaka-walang patawad na tapusin ng matt, kung ano ang hinahanap ko.

Ang mga kaldero at switch ay nakakabit, pinausukang mainit na acrylic na nakadikit at mga label na Dyno na ginawa para sa hitsura ng retro na iyon.

Sa tabi ng mga kontrol…

Hakbang 2: Ang Mga Pagkontrol

Ang Mga Pagkontrol
Ang Mga Pagkontrol

Lahat batay sa isang Arduino Uno. Sumakay ako sa tinapay ng mga sangkap at nagsimula sa isang sketch.

Gumagamit ang sketch ng 3 mga aklatan:

  • Isa upang himukin ang irf520 mosfet upang buksan ang fan.
  • Isa upang himukin ang OLED display
  • Isa upang basahin at isalin ang data ng temperatura mula sa DHT11

Isasama ko ang sketch dito sa paglaon, sa sandaling naayos ko ito nang kaunti, ngunit mangyaring mabalaan, HINDI ako isang tagapag-coder, naiintindihan ko ang mahusay na mga prinsipyo ng pag-coding, ngunit may posibilidad na maging isang tamad na coder. Kung makakahanap ako ng paraan sa paligid ng isang bagay at ito ay gumagana, gumagana ito.

Mayroong ilang magagaling na mga site doon na nagpapaliwanag kung paano gamitin ang bawat …. at isasama ang mga link sa mga pinakamahusay na (sa aking opinyon) na mga site upang makuha ang pinakamahusay sa bawat isa.

Lohika:

Ang isang solong usb cable ay nagbibigay ng lakas sa Arduino AT sa USB fan. Ang Arduino ay hindi maaaring patakbuhin ang fan bilang ang kasalukuyang paghila nito ay makapinsala sa Arduino (medyo dramatikong talaga! Bibiyahe ang onboard fuse). Kaya kailangan nating maghanap ng isang paraan ng paggamit ng Arduino upang ilipat o patayin ang kuryente.

Kinakailangan ang isang transistor, nag-order muna ako ng Darlington transistor, ngunit pagkatapos na basahin, bumulusok para sa isang irf520 MOSFET driver module mula sa HobbyComponents.com. Geek Alert !! Ang IRF520 ay mahusay para sa paglipat ng antas ng lohika (output mula sa mga pin ng Arduino). Ang boltahe na ipinadala sa aparato ay tumutukoy sa paglaban ng MOSFET, I. E. ang pagpapadala ng 0 hanggang 255 sa isang digital pin ay magdadala sa fan (o iba pang nakakonektang aparato) mula sa off hanggang sa buong bilis.

Babalik tayo sa 0 hanggang 255 mamaya.

Kaya lumilipat kami ng isang tagahanga sa isang Arduino, bakit mag-abala? Sa gayon, hindi namin nais na ito ay dumating kapag masyadong malamig, hindi ba? Kaya't kung magdagdag kami ng isang sensor ng temperatura, maaari kaming magsulat ng code at subukan upang makita kung ito ay mainit at i-on ang fan (255) o i-off (0). Nagpunta ako para sa isang DHT11 dahil ito ay murang dumi, madaling i-code at sapat na tumpak para sa proyektong ito.

Bumalik sa negosyong 0 hanggang 255. Kung alam natin na ang isang piraso ng code ay bubukas ang fan (255) kung ang temperatura ay mataas, o off (0) kung ang temperatura ay mababa, kung mayroon kaming isang halaga sa pagitan ng 0 at 255, ang paglaban ay babangon o mahuhulog sa kabuuan MOSFET at pabilisin o pabagalin ang fan.

Magpasok ng isang potensyomiter na konektado sa isang analog pin! Kapag nakabukas, bumubuo ng isang halaga sa pagitan ng 0 at 1023. Pagkatapos masubukan ang halagang ito sa code upang mabago ang bilis ng fan !! yipeeeee

Mayroong isang huling bagay (mabuti, isang pares). Ang library ng control ng motor na gagamitin namin upang himukin ang driver ng MOSFET ay tumatanggap ng 2 mga parameter, isa upang maitakda ang paglaban (para sa bilis) at isa pa upang maitakda ang tagal. Kaya sa magic parameter na ito, maitatakda namin kung gaano katagal ang fan, at kung gaano katagal ang fan kung naka-off.

Kaya, mayroon kaming 4 na kaldero upang makontrol ang 4 na variable. Susunod titingnan namin ang display.

Hakbang 3: Ang Display

Ang Display
Ang Display
Ang Display
Ang Display

Kailangan ba nito ng isang display? Hindi naman. Kaya bakit mayroon ito? Kaya, dahil nais ko ang isang nakatutuwang display upang ipakita ang kasalukuyang temperatura, bilis ng fan, fan sa oras, fan off time at temperatura set point.

Ang U8G library ay napakatalino sa pagmamaneho ng maliit na OLED display na ito. Ito ay tumagal ng isang gabi ng pagsasaliksik at nakuha ko ang aking ulo sa paligid ng mga utos upang makuha ang laki ng font na gusto ko para sa 5 mga hilera at upang makuha ang mga variable na maipakita gamit ang mga utos na u8g.print (). Ang bentahe ng display na ito ay hindi ito isang 2 o 4 na 'row' na pagpapakita na ang pamayanan ng Arduino ay sanay na, kaya ang mga graphic, font ay lubos na magagawa.

Upang maging matapat, ang karamihan sa code ay nagmamaneho ng display. kung ang mga pahayag ay tumutukoy sa mga halagang ipapakita, E. G. i-convert ang isang halaga mula sa mga analog na kaldero (0 hanggang 1023) sa isang halaga upang ipakita sa screen. Sa lahat, maraming mga hanay ng mga bloke ng pahayag, matukoy ang bilis ng fan mula sa palayok, i-convert sa% na halaga para sa screen at halaga sa pagitan ng 0 at 255 upang himukin ang fan.

Kaya, gagawin iyan para sa ngayon mga tao. Inaasahan kong nasiyahan ka sa unang yugto na ito. I-e-edit at i-update ko sa mga link at code. Kung mayroong anumang nais mong detalye, mangyaring mag-iwan ng komento at magtanong.

Hakbang 4: Code

Nangako akong i-a-upload ang sketch nang nai-post ko ito, 3 taon na ang nakakaraan, at hindi kailanman ginawa.

Kaya heto na ……