Innholdsfortegnelse:
- Trinn 1: Nødvendige deler
- Trinn 2: Elektriske tilkoblinger
- Trinn 3: Program for å kontrollere viftehastigheten
- Trinn 4: Kjør programmet ved oppstart
Video: PWM -regulert vifte basert på CPU -temperatur for Raspberry Pi: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Mange tilfeller for Raspberry Pi kommer med en liten 5V vifte for å hjelpe kjøle CPU'en. Imidlertid er disse viftene vanligvis ganske bråkete, og mange kobler den til 3V3 -pinnen for å redusere støyen. Disse viftene er vanligvis vurdert til 200mA, noe som er ganske høyt for 3V3 -regulatoren på RPi. Dette prosjektet vil lære deg hvordan du regulerer viftehastigheten basert på CPU -temperaturen. I motsetning til de fleste opplæringsprogrammer som dekker dette emnet, vil vi ikke bare slå på eller av viften, men vi vil kontrollere hastigheten som den er gjort på vanlig PC ved hjelp av Python.
Trinn 1: Nødvendige deler
For dette prosjektet vil vi bare bruke noen få komponenter som vanligvis er inkludert i elektronikksett for hobbyister som du kan finne på Amazon, som denne.
- Raspberry Pi som kjører Raspbian (men burde fungere med andre distribusjoner).
- 5V vifte (men en 12V vifte kan brukes med en tilpasset transistor og en 12V strømforsyning).
- NPN -transistor som støtter minst 300mA, som en 2N2222A.
- 1K motstand.
- 1 diode.
Valgfritt, for å sette komponentene inne i saken (men ikke gjort ennå):
- Et lite stykke protoboard, for å lodde komponentene.
- Stor varmekrymping, for å beskytte brettet.
Trinn 2: Elektriske tilkoblinger
Motstand kan plugges på begge måter, men vær forsiktig med transistorens og diodenes retning. Diodes katode må kobles til +5V (rød) ledning, og anode må være koblet til GND (svart) ledning. Sjekk transistordokumentet ditt for sender, base og samlerpinner. Viftens bakke må være koblet til samleren, og Rpi -bakken må være koblet til emitteren
For å kontrollere viften må vi bruke en transistor som skal brukes i åpen kollektorkonfigurasjon. Ved å gjøre dette har vi en bryter som kobler eller kobler jordledningen fra viften til bakken av bringebærpi.
En NPN BJT -transistor leder avhengig av strømmen som strømmer i porten. Strømmen som får strømme fra kollektoren (C) til emitteren (E) er:
Ic = B * Ib
Ic er strømmen som strømmer gjennom kollektoren emitteren, Ib er strømmen som strømmer gjennom basen til emitteren, og B (beta) er en verdi avhengig av hver transistor. Vi tilnærmer B = 100.
Siden viften vår er vurdert til 200mA, trenger vi minst 2mA gjennom transistorens base. Spenningen mellom basen og emitteren (Vbe) regnes som konstant og Vbe = 0, 7V. Dette betyr at når GPIO er på, har vi 3,3 - 0,7 = 2,6V ved motstanden. For å ha 2mA gjennom den motstanden, trenger vi en motstand på maksimum 2,6 / 0,002 = 1300 ohm. Vi bruker en motstand på 1000 ohm for å forenkle og beholde en feilmargin. Vi vil ha 2,6mA gjennom GPIO -pinnen, som er helt trygg.
Siden en vifte i utgangspunktet er en elektrisk motor, er det en induktiv ladning. Dette betyr at når transistoren slutter å lede, vil strømmen i viften fortsette å strømme når en induktiv ladning prøver å holde strømmen konstant. Dette vil resultere i en høy spenning på viftens jordnål og kan skade transistoren. Derfor trenger vi en diode parallelt med viften som får strømmen til å flyte konstant gjennom motoren. Denne typen diodeoppsett kalles en svinghjulsdiode
Trinn 3: Program for å kontrollere viftehastigheten
For å kontrollere viftehastigheten bruker vi et programvare -PWM -signal fra RPi. GPIO -biblioteket. Et PWM -signal er godt tilpasset for å drive elektriske motorer, ettersom reaksjonstiden deres er veldig høy i forhold til PWM -frekvensen.
Bruk programmet calib_fan.py for å finne FAN_MIN -verdien ved å kjøre i terminalen:
python calib_fan.py
Kontroller flere verdier mellom 0 og 100% (bør være rundt 20%) og se hva som er minimumsverdien for viften din å slå på.
Du kan endre samsvar mellom temperatur og viftehastighet i begynnelsen av koden. Det må være like mange tempSteps som speedSteps -verdier. Dette er metoden som vanligvis brukes i PC-hovedkort, bevegelige punkter på en Temp / Speed 2-akset graf.
Trinn 4: Kjør programmet ved oppstart
For å kjøre programmet automatisk ved oppstart, laget jeg et bash -skript der jeg la alle programmene jeg vil starte, og deretter starter jeg dette bash -skriptet ved oppstart med rc.locale
- Opprett en katalog/home/pi/Scripts/og plasser fan_ctrl.py -filen i den katalogen.
- I den samme katalogen lager du en fil som heter launcher.sh og kopierer skriptet nedenfor.
- Rediger /etc/rc.locale -filen og legg til en ny linje før "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'
launcher.sh -skript:
#!/bin/sh #launcher.sh #naviger til hjemmekatalogen, deretter til denne katalogen, kjør deretter python -skript, deretter tilbake homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/
Hvis du for eksempel vil bruke den med OSMC, må du starte den som en tjeneste med systemd.
- Last ned fanctrl.service -filen.
- Sjekk banen til python -filen.
- Plasser fanctrl.service i/lib/systemd/system.
- Til slutt, aktiver tjenesten med sudo systemctl enable fanctrl.service.
Denne metoden er tryggere, ettersom programmet automatisk startes på nytt hvis det blir drept av brukeren eller systemet.
Anbefalt:
Slik rengjør du en CPU -vifte: 8 trinn
Slik rengjør du en CPU -vifte: Hvis du ikke rengjør CPU -viften, kan det føre til at viften enten bremses eller mislykkes helt. Hvis viften svikter, vil temperaturen inne i Systemenheten øke betydelig, noe som skaper potensial for overoppheting. Denne videoen hjelper deg
$ 3 Datamaskin CPU inntak vifte kanal: 7 trinn (med bilder)
$ 3 Datamaskin CPU -inntaksviftekanal: Å ha en inntakskanal rett fra siden av datamaskinhuset til CPU -viften kan gi deg mye bedre kjøling enn noe annet (luft) kjølingalternativ. I stedet for å bruke luft hentet fra en port foran, som har tid til å varme opp fra en annen komponent
ESP8266 POV -vifte med klokke- og websideoppdatering: 8 trinn (med bilder)
ESP8266 POV -vifte med klokke- og websideoppdatering av tekst: Dette er en variabel hastighet, POV (Persistence Of Vision), vifte som periodisk viser tiden og to tekstmeldinger som kan oppdateres "i farten". er også en enkeltsides webserver som lar deg endre de to tekstene jeg
Arduino -basert ikke -kontakt infrarødt termometer - IR -basert termometer ved bruk av Arduino: 4 trinn
Arduino -basert ikke -kontakt infrarødt termometer | IR -basert termometer ved bruk av Arduino: Hei folkens i denne instruksjonsboken vil vi lage et kontaktfritt termometer ved hjelp av arduino. Siden noen ganger temperaturen på væsken/faststoffet er for høy eller for lav, og da er det vanskelig å få kontakt med det og lese dets temperaturen da i den situasjonen
Lysstyrkekontroll PWM -basert LED -kontroll ved hjelp av trykknapper, Raspberry Pi og Scratch: 8 trinn (med bilder)
Lysstyrkekontroll PWM -basert LED -kontroll ved hjelp av trykknapper, Raspberry Pi og Scratch: Jeg prøvde å finne en måte å forklare hvordan PWM fungerte for elevene mine, så jeg satte meg i oppgave å prøve å kontrollere lysstyrken til en LED ved hjelp av 2 trykknapper - den ene knappen øker lysstyrken på en LED, og den andre demper den. For å utvikle