BuckFan - Överambitiös fläktkontroller
In English: http://dagbro.com/?cat=61
Hej alla moddare!
Jag har byggt en extradator kring ett Alienware-moderkort och i7-CPU som jag hittade i soprummet (!). Den datorn levererades tydligen med proprietär vattenkylning och saknar, konstigt nog, all form av fläktstyrning på moderkortet - Därför bygger jag nu ett eget system från grunden. Eftersom jag pluggar Elektroteknik på LTH blir det otroligt "over-engineered", jag gillar sånt.
1. Proof-of-Concept med en Arduino Pro Mini
Styrning
Styrningen kommer att använda två termometrar för att bestämma kylbehovet i två olika kanaler med max tre fläktar vardera. Varvtalet hos en av fläktarna i varje kanal läses av och regleras löpande av en mikrokontroller (därför bör tyvärr alla tre fläktar vara likadana). Kontrollern i fråga kommer vara en Atmega 328p, samma processor som sitter i bland annat Arduino Pro Mini och Uno SMD. Till processorn kopplar jag ett FTDI USB-gränssnitt för att få USB-kommunikation för programmering och inställningar.
2. LM35 "termometer".
Drivning av fläktar
Utgångssteget då? Efter många iterativa experiment (bild 1) med en Arduino och ett par komponenter har jag bestämt mig för att bygga en Buck Converter (bild 3), en konstruktion som ofta används för att omvandla DC-spänning med låga förluster. Samma teknik används t.ex. i VRM:erna på ett moderkort.
3. Principskiss för en Buck Converter
Strömbrytaren på skissen ovan är ofta en fälteffekttransistor (MOSFET) för deras snabba växling och låga resistans. Men riktigt så enkelt är det inte - Atmega-kontrollern är för strömsvag för att kunna switcha en MOSFET tillräckligt snabbt. Dessutom når inte kontrollerns 5 V upp till de ~11 V som krävs för att stänga av en "high-side switch", en strömbrytare på 12V-sidan. Därför behövs en extra konstruktion som kan leverera tillräckligt med spänning och ström för att styra transistorn effektivt.
4. Min implementation av utgångssteget.
Om vi följer signalen från vänster till höger: Q1 är en inverterande level-shifter. Beroende på om styrsignalen från Arduinon är 0 V eller +5 V (d.v.s. "om Q1 leder eller inte") så är spänningen i noden mellan R3 och R4 antingen +12 V eller +4 V relativt jord. Denna spänning styr sedan Q2 och Q3, som sitter i en Push-Pull-konfiguration som i enkelhetens namn "speglar" den spänning som kommer in, men med större strömstyrka. Spänningen på andra sidan styr sedan Gate:n på Q4 som levererar ström till själva fläkten. Efter Q4 sitter ett LC-filter som filtrerar ner den av-och-på-växlande strömmen till DC. Utgångsspänningen tas ut direkt efter filtret, på ledaren som går utanför bilden till höger.
Status
Jag har ritat upp och beställt kretskort från Kina och väntar idogt på att de ska komma fram. Hela kretsschemat finns här för den nyfikne.
5. Rendering av kretskortet.
Detta blir mitt första kretskort med ytmonterade komponenter. Spännande. Jag har valt storlek 1206 då dessa ska vara rätt enkla att handlöda. Kortet hade förresten lätt kunnat göras betydligt mindre än det är nu (94 mm x 70 mm) men det finns en riktigt god anledning till att det är så stort - Skruvhålen är gjorda för att passa en 2.5" SSD-plats!
Nästa uppdatering blir när korten kommer fram, sen kommer nog en del om programmet till mikrokontrollern, som kanske blir lika ambitiöst. Stay tuned.