Indholdsfortegnelse:

PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi: 4 trin (med billeder)
PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi: 4 trin (med billeder)

Video: PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi: 4 trin (med billeder)

Video: PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi: 4 trin (med billeder)
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, November
Anonim
PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi
PWM -reguleret ventilator baseret på CPU -temperatur til Raspberry Pi

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

Elektriske tilslutninger
Elektriske tilslutninger
Elektriske tilslutninger
Elektriske tilslutninger
Elektriske tilslutninger
Elektriske tilslutninger

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

  1. Opret en mappe/home/pi/Scripts/og placer fan_ctrl.py -filen inde i mappen.
  2. I det samme bibliotek skal du oprette en fil ved navn launcher.sh og kopiere scriptet nedenfor.
  3. 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.

  1. Download fanctrl.service -filen.
  2. Kontroller stien til din python -fil.
  3. Placer fanctrl.service i/lib/systemd/system.
  4. 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: