Inhoudsopgave:

Temperatuurregeling met Arduino- en PWM-fans - Ajarnpa
Temperatuurregeling met Arduino- en PWM-fans - Ajarnpa

Video: Temperatuurregeling met Arduino- en PWM-fans - Ajarnpa

Video: Temperatuurregeling met Arduino- en PWM-fans - Ajarnpa
Video: Arduino Fan Control using High Frequency 25kHz PWM // 4-Wire CPU Fans 2024, November
Anonim
Temperatuurregeling met Arduino- en PWM-fans
Temperatuurregeling met Arduino- en PWM-fans
Temperatuurregeling met Arduino- en PWM-fans
Temperatuurregeling met Arduino- en PWM-fans
Temperatuurregeling met Arduino- en PWM-fans
Temperatuurregeling met Arduino- en PWM-fans

Temperatuurregeling met PID op Arduino- en PWM-ventilatoren voor doe-het-zelf server-/netwerkrekkoeling

Een paar weken geleden moest ik een rack opzetten met netwerkapparaten en een paar servers.

Het rek staat in een afgesloten garage, waardoor het temperatuurbereik tussen winter en zomer behoorlijk hoog is en ook stof kan een probleem zijn.

Toen ik op internet aan het zoeken was naar koeloplossingen, kwam ik erachter dat ze behoorlijk duur zijn, in mijn plaats in ieder geval >100€ voor 4 230V-plafondventilatoren met een thermostaatregeling. Ik hield niet van de thermostaataandrijving omdat hij veel stof aanzuigt als hij aan staat, omdat de ventilatoren op vol vermogen draaien en helemaal geen ventilatie geeft als hij niet aan staat.

Dus, niet tevreden met deze producten, besloot ik de doe-het-zelf-manier te gaan en iets te bouwen dat soepel een bepaalde temperatuur kan handhaven.

Stap 1: Hoe het werkt

Hoe het werkt
Hoe het werkt

Om het allemaal een stuk makkelijker te maken ging ik voor DC-fans: ze maken veel minder lawaai dan AC-fans, terwijl ze wat minder krachtig zijn, maar ze zijn nog steeds meer dan genoeg voor mij.

Het systeem gebruikt een temperatuursensor om vier ventilatoren aan te sturen die worden aangedreven door een Arduino-controller. De Arduino smoort de ventilatoren met behulp van PID-logica en stuurt ze aan via PWM.

De temperatuur en ventilatorsnelheid worden gerapporteerd via een 8-cijferig 7-segments display, gemonteerd op een in een rack gemonteerde aluminium balk. Naast het display zijn er twee knoppen voor het afstemmen van de gewenste temperatuur.

Stap 2: Wat ik heb gebruikt

Wat ik heb gebruikt
Wat ik heb gebruikt
Wat ik heb gebruikt
Wat ik heb gebruikt

Let op: Ik heb geprobeerd dit project te realiseren met spullen die ik in huis had liggen, dus niet alles kan ideaal zijn. Het budget was een punt van zorg.

Dit zijn de componenten die ik heb gebruikt:

  • Hardware

    • Eén acrylpaneel: gebruikt als basis (€ 1,50);
    • Vier 3,6x1cm L-vormige PVC profielen (€ 4,00);
    • Eén aluminium paneel: gesneden op 19" breedte (€ 3,00);
  • Elektronica
    • Vier 120 mm PWM-fans: ik ging voor Arctic F12 PWM PST vanwege de mogelijkheid om ze parallel te stapelen (4x € 8,00);
    • One Pro Micro: elk ATMega 32u4 powered board zou prima moeten werken met mijn code (€ 4,00);
    • Eén relaisbord: om de ventilatoren uit te schakelen als ze niet nodig zijn (€ 1,50);
    • Eén 8-cijferige 7-segments MAX7219 displaymodule (€ 2,00);
    • Drie kortstondige drukknoppen, 1 is voor reset (€ 2,00);
    • Eén 3A-schakelaar (€ 1,50);
    • Eén LAN-kabelkoppeling: om de hoofdeenheid gemakkelijk los te koppelen van het displaypaneel (€ 2,50);
    • Eén 5V en 12V dual output voeding: U kunt 2 aparte PSU's gebruiken of een 12V met een step down converter naar 5V (€ 15,00);
    • Kabels, schroeven en andere kleine onderdelen (€ 5,00);

Totale kosten: € 74,00 (als ik alle componenten op Ebay/Amazon zou moeten kopen).

Stap 3: De zaak

De zaak
De zaak
De zaak
De zaak
De zaak
De zaak

De koffer is gemaakt van 4 dunne L-vormige kunststof profielen gelijmd en geklonken op een acrylplaat.

Alle componenten van de doos zijn verlijmd met epoxy.

Er zijn vier gaten van 120 mm in het acryl gesneden om op de ventilatoren te passen. Er is een extra gat gemaakt om de kabels van de thermometer door te laten.

Het frontpaneel heeft een aan/uit-schakelaar met een indicatielampje. Aan de linkerkant laten twee gaten de kabel van het voorpaneel en de USB-kabel naar buiten gaan. Er is een extra resetknop toegevoegd voor eenvoudiger programmeren (de Pro Micro heeft geen resetknop en soms is het handig om er een programma op te uploaden).

De doos wordt opgehouden door 4 schroeven die door gaten in de acrylbasis gaan.

Het voorpaneel is gemaakt van een paneel van geborsteld aluminium, gesneden op 19 in breedte en met een hoogte van ~ 4 cm. Het display-gat is gemaakt met een Dremel en de andere 4 gaten voor schroeven en knoppen zijn gemaakt met een boor.

Stap 4: Elektronica

Elektronica
Elektronica
Elektronica
Elektronica
Elektronica
Elektronica
Elektronica
Elektronica

De besturingskaart is vrij eenvoudig en compact. Tijdens het maken van het project kwam ik erachter dat wanneer ik 0% PWM aan de fans lever, ze op volle toeren draaien. Om het draaien van de ventilatoren volledig te stoppen, heb ik een relais toegevoegd dat de ventilatoren uitschakelt wanneer ze niet nodig zijn.

Het frontpaneel is verbonden met het bord via een netwerkkabel die, met behulp van een kabelkoppeling, eenvoudig kan worden losgemaakt van de hoofdbehuizing. De achterkant van het paneel is gemaakt van een 2,5x2,5 elektrische leiding en is met dubbelzijdig plakband aan het paneel bevestigd. Het display wordt ook met tape aan het paneel vastgemaakt.

Zoals je in de schema's kunt zien, heb ik een aantal externe pullup-weerstanden gebruikt. Deze zorgen voor een sterkere pullup dan de arduino's.

De Fritzing-schema's zijn te vinden op mijn GitHub-repo.

Stap 5: De code

Intel's specificatie voor 4-pins ventilatoren suggereert een PWM-doelfrequentie van 25 kHz en een acceptabel bereik van 21 kHz tot 28 kHz. Het probleem is dat Arduino's standaardfrequentie 488Hz of 976Hz is, maar de ATMega 32u4 is perfect in staat om hogere frequenties te leveren, dus we hoeven hem alleen maar correct in te stellen. Ik verwees naar dit artikel over de PWM van Leonardo om de vierde timer te klokken naar 23437Hz, wat het dichtst bij 25KHz komt.

Ik heb verschillende bibliotheken gebruikt voor het display, de temperatuursensor en de PID-logica.

De volledige bijgewerkte code is te vinden op mijn GitHub-repo.

Stap 6: Conclusie

Dus hier is het! Ik moet wachten tot deze zomer om het in actie te zien, maar ik ben er vrij zeker van dat het goed zal werken.

Ik ben van plan een programma te maken om de temperatuur te zien van de USB-poort die ik op een Raspberry Pi heb aangesloten.

Ik hoop dat alles begrijpelijk was, zo niet laat het me weten en ik zal het beter uitleggen.

Bedankt!

Aanbevolen: