Indholdsfortegnelse:
- Trin 1: Nødvendige dele
- Trin 2: Elektriske forbindelser
- Trin 3: Program til at styre blæserhastigheden
- Trin 4: Kør programmet ved opstart
Video: PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Mange tilfælde til Raspberry Pi kommer med en lille 5V blæser for at hjælpe med at køle CPU'en. Disse fans er dog normalt temmelig støjende, og mange mennesker tilslutter det til 3V3 -stiften for at reducere støj. Disse fans er normalt vurderet til 200mA, hvilket er temmelig højt for 3V3 -regulatoren på RPi. Dette projekt lærer dig, hvordan du regulerer blæserhastigheden baseret på CPU -temperaturen. I modsætning til de fleste øvelser, der dækker dette emne, tænder eller slukker vi ikke kun ventilatoren, men styrer dens hastighed, som den er udført på almindelig pc ved hjælp af Python.
Trin 1: Nødvendige dele
Til dette projekt vil vi kun bruge nogle få komponenter, der normalt er inkluderet i elektroniksæt til hobbyfolk, som du kan finde på Amazon, som denne.
- Raspberry Pi kører Raspbian (men burde fungere med andre distribuerer).
- 5V blæser (men en 12V blæser kan bruges med en tilpasset transistor og en 12V strømforsyning).
- NPN -transistor, der understøtter mindst 300mA, som en 2N2222A.
- 1K modstand.
- 1 diode.
Valgfrit, for at sætte komponenterne inde i kabinettet (men ikke gjort endnu):
- Et lille stykke protoboard, til lodning af komponenterne.
- Stor varmekrympning, for at beskytte brættet.
Trin 2: Elektriske forbindelser
Modstand kan være stikket på begge måder, men vær forsigtig med transistors og diodes retning. Diodes katode skal forbindes til +5V (rød) ledning, og anode skal tilsluttes GND (sort) ledning. Tjek din transistordokumentation for emitter-, bund- og samlestifter. Ventilatorens jord skal tilsluttes opsamleren, og Rpis jord skal forbindes til emitteren
For at styre blæseren skal vi bruge en transistor, der vil blive brugt i åben kollektorkonfiguration. Ved at gøre dette har vi en switch, der forbinder eller afbryder jordledningen fra blæseren til jorden af hindbærpi.
En NPN BJT transistor leder afhængigt af den strøm, der strømmer i dens port. Den strøm, der får lov til at strømme fra kollektoren (C) til emitteren (E) er:
Ic = B * Ib
Ic er den strøm, der strømmer gennem kollektoren emitteren, Ib er den strøm, der strømmer gennem basen til emitteren, og B (beta) er en værdi, der afhænger af hver transistor. Vi tilnærmer os B = 100.
Da vores blæser er klassificeret som 200mA, har vi brug for mindst 2mA gennem bunden af transistoren. Spændingen mellem basen og emitteren (Vbe) betragtes som konstant og Vbe = 0, 7V. Det betyder, at når GPIO er tændt, har vi 3,3 - 0,7 = 2,6V ved modstanden. For at have 2mA gennem denne modstand har vi brug for en modstand på maksimum 2,6 / 0,002 = 1300 ohm. Vi bruger en modstand på 1000 ohm til at forenkle og beholde en fejlmargin. Vi vil have 2,6mA gennem GPIO -stiften, hvilket er helt sikkert.
Da en ventilator dybest set er en elektrisk motor, er det en induktiv ladning. Dette betyder, at når transistoren holder op med at lede, vil strømmen i blæseren fortsætte med at strømme, da en induktiv ladning forsøger at holde strømmen konstant. Dette ville resultere i en høj spænding på ventilatorens jordstift og kunne beskadige transistoren. Derfor har vi brug for en diode parallelt med blæseren, som får strømmen til at flyde konstant gennem motoren. Denne type diodeopsætning kaldes en svinghjulsdiode
Trin 3: Program til at styre blæserhastigheden
For at kontrollere ventilatorhastighed bruger vi et PWM -signal fra RPi. GPIO -biblioteket. Et PWM -signal er godt tilpasset til at drive elektriske motorer, da deres reaktionstid er meget høj i forhold til PWM -frekvensen.
Brug programmet calib_fan.py til at finde FAN_MIN -værdien ved at køre i terminalen:
python calib_fan.py
Kontroller flere værdier mellem 0 og 100% (burde være omkring 20%) og se, hvad der er minimumsværdien for din ventilator for at tænde.
Du kan ændre korrespondancen mellem temperatur og blæserhastighed i begyndelsen af koden. Der skal være lige så mange tempSteps som speedSteps -værdier. Dette er den metode, der generelt bruges i pc-bundkort, bevægelige punkter på en Temp / Speed 2-akset graf.
Trin 4: Kør programmet ved opstart
For at køre programmet automatisk ved opstart lavede jeg et bash -script, hvor jeg lagde alle de programmer, jeg vil starte, og derefter starter jeg dette bash -script ved opstart med rc.locale
- Opret en mappe/home/pi/Scripts/og placer fan_ctrl.py -filen inde i mappen.
- I det samme bibliotek skal du oprette en fil ved navn launcher.sh og kopiere scriptet nedenfor.
- Rediger filen /etc/rc.locale, og tilføj en ny linje før "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'
launcher.sh script:
#!/bin/sh #launcher.sh #naviger til hjemmemappen, derefter til denne mappe, derefter udfør python -script, derefter tilbage homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/
Hvis du f.eks. Vil bruge det med OSMC, skal du starte det som en service med systemd.
- Download fanctrl.service -filen.
- Kontroller stien til din python -fil.
- Placer fanctrl.service i/lib/systemd/system.
- Sluttelig aktiver tjenesten med sudo systemctl enable fanctrl.service.
Denne metode er sikrere, da programmet automatisk genstartes, hvis det bliver dræbt af brugeren eller systemet.
Anbefalede:
Arduino -baseret ikke -kontakt infrarødt termometer - IR -baseret termometer ved hjælp af Arduino: 4 trin
Arduino -baseret ikke -kontakt infrarødt termometer | IR -baseret termometer ved hjælp af Arduino: Hej fyre i denne instruktion vil vi lave et kontaktfrit termometer ved hjælp af arduino. Da nogle gange temperaturen på væsken/faststoffet er alt for høj eller for lav, og så er det svært at komme i kontakt med det og læse dets temperaturen derefter i den scene
Lysstyrkekontrol PWM -baseret LED -kontrol ved hjælp af trykknapper, Raspberry Pi og Scratch: 8 trin (med billeder)
Lysstyrkekontrol PWM -baseret LED -kontrol ved hjælp af trykknapper, Raspberry Pi og Scratch: Jeg forsøgte at finde en måde at forklare, hvordan PWM fungerede for mine elever, så jeg satte mig til opgave at forsøge at kontrollere lysstyrken på en LED ved hjælp af 2 trykknapper - den ene knap øger lysstyrken på en LED, og den anden dæmper den. Til progra
SilverLight: Arduino -baseret miljømonitor til serverrum: 3 trin (med billeder)
SilverLight: Arduino -baseret miljømonitor til serverrum: Engang fik jeg til opgave at lede efter en miljøsonde til overvågning af temperaturen i serverrummet i min virksomhed. Min første idé var: hvorfor ikke bare bruge en Raspberry PI og en DHT -sensor, den kan konfigureres på mindre end en time inklusive OS
Vindstation til windsurfing baseret på MQTT & AWS: 3 trin (med billeder)
Vindstation til windsurfing baseret på MQTT & AWS: I Shenzhen er der mange smukke strand. I sommerdagene er den mest yndlingssport at sejle. Til sejlsporten er jeg stadig en starter, jeg kan godt lide følelsen af havvandet, der rører ved mit ansigt, og mere, jeg fik mange nye venner med denne sport. Men for
Brug Homie -firmware til at drive Sonoff -switchmodul (ESP8266 -baseret): 5 trin (med billeder)
Brug Homie -firmware til at drive Sonoff -switchmodul (ESP8266 -baseret): Dette er en opfølgning, der kan instrueres, jeg har skrevet denne lidt efter " Bygning af Homie -enheder til IoT eller hjemmeautomatisering ". Den senere fokuserede på grundlæggende overvågning (DHT22, DS18B20, lys) omkring D1 Mini -kort. Denne gang vil jeg gerne vise ho