Permalänk
Medlem

Fläktkontroller av en Arduino

Tjena, Sweclockers!

Jag påbörjade ett projekt att bygga en egen fläktkontroller utav en Arduino Nano, när det slog mig att ni kanske varit intresserade av en bygglog.

Min anledning till att göra detta projekt är främst att det är en rolig grej. Men även att jag är ganska kräsen på ljudnivåerna från datorn, och min lite äldre dator stödjer ej att låta fläktarna stanna helt vid låg belastning. Jag räknar inte med att detta projekt blir mycket billigare än att köpa en färdig, men det är ju inte lika kul Dessutom får jag mycket bättre kontroll över hastigheten på fläktarna.

Tanken är att använda Arduinos PWM-portar för att styra PWM-fläktar, samt låta arduinon styra en enkel LCD-skärm som monteras i en 5.25" slot. Har även tänkt skriva ett litet python-program som interagerar med arduinon och låter den hämta temperaturer på CPU, GPU etc.

PWM-fläktar vill ha 25kHz PWM-signal. Dessvärre kan inte en Arduino ge en signal på precis 25kHz utan där finns ett flertal diskreta frekvenser som går att uppnå genom att ändra ett par registervärden. Inget av dessa är innom det definierade omfånget i specificationerna, men jag har redan testat styra en av mina Noctua fläktar med standardfrekvensen (dvs ca 500Hz eller 1kHz minns inte vilken) vilket verkade fungera problemfritt. En potentiell nackdel med att ändra registervärdena för timer 0 är att det även påverkar delay funktionerna och millis() på arduinon. Det återstår att se om det skapar problem i detta projektet.

Låt mig veta om ni är intressarade av att följa detta projekt!
Här kommer ett par bilder från starten av projektet.

Billig arduino kopia från CDON, display från elektrokit, och massor av 4-pin fläktkontakter från ebay

Testar displayn med LiquidCrystal biblioteket.

Permalänk
Medlem

Två rader 4-pin fläktkontakter fastlödda, fästen för arduinon och en molexkontakt för ström.

Fäste för displayen på andra sidan. Inte direkt de snyggaste lödningen jag åstadkommit... Skyller på min usla lödkolv som alltid är antingen för varm eller för kall.

Det fick ett abrupt slut för kvällen när min lilla stump lödtenn tog slut, och jag inte kunde hitta rullen... Får nog ta och införskaffa ny innan jag kan förtsätta. =/

Permalänk
Medlem

Nytt lödtenn infförskaffat! Potentiometer fastlödd för att reglera kontrasten.

Kretskortet är färdigt! Inte så snyggt som jag hoppats på, men förhoppningsvis fungerar det!

Test av kretskortet.

Det fungerar!

Tillverkade en kabel för att ansluta arduinon till moderkortets interna usb-kontakt. Använde en vanlig 2x5 hylslist, rekomenderar att INTE göra detta! Den var väldigt svår att få ut igen när man satt i den.

Permalänk
Medlem

Coolt.

Edit: NVM, läste snett.

Visa signatur

Ryzen 5600x (Noctua NH-D15) || Kingston Fury 32GB 3600MHz
ASUS Prime X470 PRO || ASUS GeForce RTX 3080 Tuf OC
Fractal Design Define S (6x chassifläktar) || Corsair RM750X v2
FURY Renegade 2TB || WD Blue 1TB M.2 || LG C2 42" + XB271HUA

Permalänk
Medlem

Kul projekt, jag vill absolut se en bygglogg av detta! Jag är själv sugen på att göra en egen fläktkontroller och koppla den mot ett gui gjort i c#. Jag har en hel del erfarenhet av reglerteknik så jag tyckte att det här kunde vara ett kul hobbyprojekt.
Var kommer specen från? Lite märkligt att det inte står något om det i dokumentet tycker jag.

Skickades från m.sweclockers.com

Permalänk
Medlem

Ska bli kul att följa, gillar dessa simplare projekten/loggarna.

Visa signatur

Har jag uppgivit felaktig information? Rätta mig gärna, jag vet inte allt och kan ha fel.

Permalänk
Medlem

Tjena! Kul bygge, en fundering. Är det bara en styrsignal du skickar till fläkten, eller försöker du driva den från Arduinon?

Skickades från m.sweclockers.com

Permalänk
Medlem

Går att få 25 KHz med arduino

Går utmärkt att få 25 Khz med arduino, vilket jag använder i ett eget projekt framför mig just nu. För att göra en lång historia kort och instruktiv - gör såhär:

Installera biblioteket pwm.h

https://github.com/atmelino/Arduino/blob/master/libraries/PWM...

I setup -funktionen

InitTimersSafe();
SetPinFrequencySafe(9, 25000);
pwmWrite(9, 80);

Nu har du 25 KHz med 80/254 duty cycle på pinne 9.