Innehållsförteckning:
- Steg 1: Delar som behövs
- Steg 2: Elektriska anslutningar
- Steg 3: Program för att kontrollera fläkthastigheten
- Steg 4: Kör programmet vid start
Video: PWM -reglerad fläkt baserad på CPU -temperatur för Raspberry Pi: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Många fodral för Raspberry Pi har en liten 5V fläkt för att hjälpa till att kyla CPU: n. Men dessa fläktar är vanligtvis ganska bullriga och många människor ansluter den till 3V3 -stiftet för att minska bullret. Dessa fläktar är vanligtvis klassade för 200mA vilket är ganska högt för 3V3 -regulatorn på RPi. Detta projekt kommer att lära dig hur du reglerar fläkthastigheten baserat på CPU -temperaturen. Till skillnad från de flesta självstudier som täcker detta ämne, kommer vi inte bara att slå på eller stänga av fläkten, utan vi kommer att styra dess hastighet som den gjordes på vanlig dator med Python.
Steg 1: Delar som behövs
För detta projekt kommer vi bara att använda några få komponenter som vanligtvis ingår i elektronikpaket för amatörer som du kan hitta på Amazon, som den här.
- Raspberry Pi som kör Raspbian (men borde fungera med andra distribuerar).
- 5V fläkt (men en 12V fläkt kan användas med en anpassad transistor och en 12V strömförsörjning).
- NPN -transistor som stöder minst 300mA, som en 2N2222A.
- 1K motstånd.
- 1 diod.
Valfritt, för att sätta in komponenterna i höljet (men inte gjort ännu):
- En liten bit protoboard, för att lödda komponenterna.
- Stor värmekrympning, för att skydda brädet.
Steg 2: Elektriska anslutningar
Motstånd kan anslutas på båda sätten, men var försiktig med transistorns och diodens riktning. Diodens katod måste anslutas till +5V (röd) ledning och anoden måste anslutas till GND (svart) kabel. Kontrollera transistordokumentet för sändar-, bas- och samlarstift. Fläktens mark måste vara ansluten till samlaren, och Rpis mark måste vara ansluten till sändaren
För att styra fläkten måste vi använda en transistor som kommer att användas i öppen kollektorkonfiguration. Genom att göra detta har vi en strömbrytare som kommer att ansluta eller koppla bort jordkabeln från fläkten till marken på hallon Pi.
En NPN BJT -transistor leder beroende på den ström som flödar i dess grind. Strömmen som får flöda från kollektorn (C) till sändaren (E) är:
Ic = B * Ib
Ic är strömmen som strömmar genom kollektorn emitteren, Ib är den ström som strömmar genom basen till sändaren och B (beta) är ett värde beroende på varje transistor. Vi uppskattar B = 100.
Eftersom vår fläkt är klassad som 200mA behöver vi minst 2mA genom basen på transistorn. Spänningen mellan basen och sändaren (Vbe) anses vara konstant och Vbe = 0, 7V. Det betyder att när GPIO är på har vi 3,3 - 0,7 = 2,6V vid motståndet. För att ha 2mA genom det motståndet behöver vi ett motstånd på maximalt 2,6 / 0,002 = 1300 ohm. Vi använder ett motstånd på 1000 ohm för att förenkla och behålla en felmarginal. Vi kommer att ha 2,6mA genom GPIO -stiftet som är helt säkert.
Eftersom en fläkt i grunden är en elektrisk motor är det en induktiv laddning. Detta betyder att när transistorn slutar leda kommer strömmen i fläkten att fortsätta flöda när en induktiv laddning försöker hålla strömmen konstant. Detta skulle resultera i en hög spänning på fläktens jordstift och kan skada transistorn. Det är därför vi behöver en diod parallellt med fläkten som kommer att få strömmen att flöda konstant genom motorn. Denna typ av diodinställning kallas en svänghjulsdiod
Steg 3: Program för att kontrollera fläkthastigheten
För att styra fläkthastigheten använder vi en PWM -signal från RPi. GPIO -biblioteket. En PWM -signal är väl anpassad för att driva elmotorer, eftersom deras reaktionstid är mycket hög jämfört med PWM -frekvensen.
Använd programmet calib_fan.py för att hitta FAN_MIN -värdet genom att köra i terminalen:
python calib_fan.py
Kontrollera flera värden mellan 0 och 100% (bör vara runt 20%) och se vad som är minsta värde för din fläkt att slå på.
Du kan ändra korrespondensen mellan temperatur och fläkthastighet i början av koden. Det måste finnas lika många tempSteps som speedSteps -värden. Detta är den metod som vanligtvis används i PC-moderkort, rörliga punkter på en Temp / Speed 2-axlig graf.
Steg 4: Kör programmet vid start
För att köra programmet automatiskt vid start gjorde jag ett bash -skript där jag lade alla program jag vill starta och sedan startar jag detta bash -skript vid start med rc.locale
- Skapa en katalog/home/pi/Scripts/och placera fan_ctrl.py -filen i den katalogen.
- I samma katalog skapar du en fil som heter launcher.sh och kopierar manuset nedan.
- Redigera filen /etc/rc.locale och lägg till en ny rad före "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'
launcher.sh -skript:
#!/bin/sh #launcher.sh #navigera till hemkatalogen, sedan till den här katalogen, kör sedan python -skript, sedan tillbaka homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/
Om du vill använda den med OSMC till exempel måste du starta den som en tjänst med systemd.
- Ladda ner fanctrl.service -filen.
- Kontrollera sökvägen till din python -fil.
- Placera fanctrl.service i/lib/systemd/system.
- Slutligen, aktivera tjänsten med sudo systemctl enable fanctrl.service.
Denna metod är säkrare, eftersom programmet automatiskt startas om om det dödas av användaren eller systemet.
Rekommenderad:
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Arduino -baserad icke -kontakt infraröd termometer - IR -baserad termometer med Arduino: 4 steg
Arduino -baserad icke -kontakt infraröd termometer | IR -baserad termometer med Arduino: Hej killar i dessa instruktioner kommer vi att göra en kontaktfri termometer med hjälp av arduino. Eftersom temperaturen på vätskan/fastämnet ibland är för hög eller för låg och då är det svårt att komma i kontakt med den och läsa dess temperaturen då i den scen
Ljusstyrkekontroll PWM -baserad LED -kontroll med tryckknappar, Raspberry Pi och Scratch: 8 steg (med bilder)
Ljusstyrkekontroll PWM -baserad LED -kontroll med tryckknappar, Raspberry Pi och Scratch: Jag försökte hitta ett sätt att förklara hur PWM fungerade för mina elever, så jag satte mig i uppgift att försöka styra ljusstyrkan på en LED med två tryckknappar - en knapp ökar ljusstyrkan på en LED och den andra dimrar den. Till progra
Internetansluten fläkt för Zwift: 7 steg (med bilder)
Internetansluten fläkt för Zwift: Jag skapade en fläkt som är ansluten till internet för användning med Zwift, ett virtuellt cykelracingspel / träningssystem. När du går snabbare i Zwift, fläkten svänger snabbare för att simulera utanför ridförhållanden .;) Jag hade roligt att bygga detta, hoppas att du gillar
Laptop kylplatta DIY - Fantastiska livshackar med CPU -fläkt - Kreativa idéer - Datorfläkt: 12 steg (med bilder)
Laptop kylplatta DIY | Fantastiska livshackar med CPU -fläkt | Kreativa idéer | Datorfläkt: Du måste titta på den här videon tills den är slut. för att förstå videon