Innehållsförteckning:

Styr en kylfläkt på en Raspberry Pi 3: 9 -steg
Styr en kylfläkt på en Raspberry Pi 3: 9 -steg

Video: Styr en kylfläkt på en Raspberry Pi 3: 9 -steg

Video: Styr en kylfläkt på en Raspberry Pi 3: 9 -steg
Video: Kjell-TV - Vad är spänning, ström och resistans? (Hur funkar det?) 2024, Juli
Anonim
Styr en kylfläkt på en Raspberry Pi 3
Styr en kylfläkt på en Raspberry Pi 3

Lägg till en fläkt till en hallon pi 3, med kontroll för att slå på och av den efter behov.

Ett enkelt sätt att lägga till en fläkt är att helt enkelt ansluta fläktledningarna till en 3,3V eller 5V stift och till jord. Med denna metod kommer fläkten att gå hela tiden.

Jag tycker att det är mycket mer intressant att slå på fläkten när den nådde eller överskred ett högt tröskelvärde för att sedan stänga av den när processorn svalnade under ett lågt tröskelvärde.

Den instruerbara förutsätter att du har en Raspberry Pi 3 -installation och kör och du vill lägga till en fläkt. I mitt fall använder jag Kodi på OSMC.

Steg 1: CPU -prestanda och temperatur

Det finns inga åtgärder här. Detta är bara bakgrundsinformation och du kan hoppa till nästa steg:

Ett kylfläns är tillräckligt för de flesta Raspberry Pi 3 -applikationer och en fläkt krävs inte.

En överklockad hallon pi bör använda en fläkt.

Om kodi, om du inte har en MPEG-2-licensnyckel, kan du få en termometerikon, vilket indikerar behovet av antingen en licens eller en fläkt.

Raspberry Pi 3: s CPU ska köras mellan -40 ° C och 85 ° C. Om CPU -temperaturen överstiger 82 ° C, saktas CPU: ns klockhastighet tills temperaturen sjunker under 82 ° C.

En ökning av CPU -temperaturen gör att halvledarna går långsammare eftersom temperaturen ökar motståndet. En temperaturökning från 50 ° C till 82 ° C har emellertid försumbar inverkan på Raspberry Pi 3: s CPU -prestanda.

Om temperaturen på Raspberry Pi 3 'CPU är över 82 ° C stryps CPU: n (klockhastigheten sänks). Om samma belastning appliceras kan processorn ha svårt att strypa tillbaka den tillräckligt snabbt, särskilt om den är överklockad. Eftersom halvledare har negativ temp -koefficient, när temperaturen överskrider specifikationerna kan temperaturen springa iväg och CPU: n kan misslyckas och du måste kasta Raspberry Pi.

Att köra CPU: n vid hög temperatur förkortar CPU: s livslängd.

Steg 2: GPIO -stift och motstånd

Det finns inga åtgärder här. Detta är bara bakgrundsinformation och du kan hoppa till nästa steg:

Eftersom jag inte är elingenjör och följde instruktionerna från projekt på nätet, skadade jag genom det en hel del GPIO -stift och slutligen var tvungen att kasta mer än en Raspberry Pi. Jag försökte också överklocka och slutade med att jag slängde några hallonpisar som inte längre skulle fungera.

En vanlig applikation är att lägga till en tryckknapp till en Raspberry Pi. Genom att sätta in en tryckknapp mellan en 5V eller 3.3V stift och en jordstift, skapas effektivt en kort när knappen trycks in. Eftersom det inte finns någon belastning mellan spänningskällan och jord. Detsamma händer när en GPIO -pin används för 3.3V -utgång (eller ingång).

Ett annat problem är att när en ingångsstift inte är ansluten, kommer den att "flyta", vilket betyder att värdet som läses är odefinierat och om din kod vidtar åtgärder baserat på värdet som läses, kommer det att vara felaktigt.

Ett motstånd krävs mellan en GPIO -stift och allt det ansluter till.

GPIO -stiften har invändiga upp- och neddragningsmotstånd. Dessa kan aktiveras med inställningsfunktionen för GPIO -biblioteket:

GPIO.setup (kanal, GPIO. IN, pull_up_down = GPIO. PUD_UP)

GPIO.setup (kanal, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)

Eller ett fysiskt motstånd kan sättas in. I denna instruerbara, jag använde ett fysiskt motstånd, men du kan prova det interna motståndet och aktivera med GPIO -biblioteket.

Från Arduino Playground -webbplatsen i tilläggshänvisningen:

"Ett uppdragningsmotstånd" svagt "drar" spänningen på ledningen den är ansluten till mot dess spänningskällnivå när de andra komponenterna på ledningen är inaktiva. När strömbrytaren på linjen är öppen är den högimpedans och verkar som att den är frånkopplad. Eftersom de andra komponenterna fungerar som om de är frånkopplade, fungerar kretsen som om den är frånkopplad och uppdragningsmotståndet leder tråden upp till den höga logiska nivån. När en annan komponent på linjen blir aktiv, det kommer att åsidosätta den höga logiska nivån som ställts in av uppdragsmotståndet. Uppdragningsmotståndet säkerställer att tråden är på en definierad logisk nivå även om inga aktiva enheter är anslutna till den."

Steg 3: Delar

Du kan använda det mesta, men det här är delarna jag använde.

Delar:

  • NPN S8050 transistor

    250 stycken olika $ 8,99, eller cirka $ 0,04

  • 110 Ohm motstånd

    400 motstånd för $ 5,70, eller cirka $ 0,01

  • Mikrofläkt, krav i beskrivningen eller specifikationerna:

    • cirka $ 6,00
    • borstlös
    • tyst
    • lägsta amp eller watt jämfört med en liknande fläkt
    • I beskrivningen, leta efter något som "arbetsspänning på 2V-5V"
  • hona-hona och man-hona-bygel
  • bakbord
  • Raspberry Pi 3
  • 5.1V 2.4A strömförsörjning

Anmärkningar:

Text i spader är tänkt att ersättas av dina data, ♣ din-data ♣

Steg 4: Schematisk

Schematisk
Schematisk

run-fan kräver en S8050 NPN-transistor och ett motstånd för att anslutas enligt följande:

Den platta sidan av S8050 vetter så här>

  • S8050 stift c: ansluts till svart (-) kabel på fläkten
  • S8050 stift b: ansluts till 110 Ohm motstånd och till GPIO stift 25
  • S8050 pin e: ansluts till jordad GPIO -pin
  • fläkt röd (+): ansluts till 3.3v GPIO -stift på hallon pi 3

GPIO pin 25 används, men den kan ändras till valfri GPIO input pin

Steg 5: Skaffa skriptet

Logga in på din hallon pi med något av följande:

$ ssh osmc@♣ ip-adress ♣

$ shh osmc@♣osmc-hostname♣.local

Och sedan kan du ladda ner skriptet med:

$ sudo wget "https://raw.githubusercontent.com/dumbo25/rpi-fan/master/run-fan.py"

Jag använder kodi på osmc, och användaren är osmc. Om du har user pi, ändrar du bara alla förekomster av osmc med pi i skriptet och i tjänsten.

Gör skriptet körbart.

$ sudo chmod +x run-fan.py

Jag slår på fläkten vid 60 C. Om starttemperaturen är för låg, kommer fläkten att slå på och kyla ner CPU: n, och när fläkten stängs av är temperaturen nästan uppe i starttemperatur. Prova 45 C för att se denna effekt. Jag är inte säker på vad den optimala temperaturen är.

Steg 6: Starta skriptet automatiskt

Starta upp skriptet automatiskt
Starta upp skriptet automatiskt

För att få run-fan att starta automatiskt, använd systemd

Logga in på din hallon pi med något av följande:

$ ssh osmc@♣ ip-adress ♣

$ shh osmc@♣osmc-hostname♣.local

Och sedan kan du ladda ner systemd -servicefilen med:

$ sudo wget https://raw.githubusercontent.com/dumbo25/rpi-fan/…

Eller så kan du skapa en systemd servicefil genom att kopiera innehållet i run-fan-tjänsten från github och sedan köra:

$ sudo nano /lib/systemd/system/run-fan.service

Klistra in innehållet från github i filen

ctrl-o, ENTER, ctrl-x för att spara och avsluta nanoredigeraren

Filen måste ägas av root och den måste vara i/lib/systemd/system. Kommandona är:

$ sudo chown root: root run-fan.service

$ sudo mv run-fan.service/lib/systemd/system/.

Efter eventuella ändringar av /lib/systemd/system/run-fan.service:

$ sudo systemctl daemon-reload

$ sudo systemctl aktivera run-fan.service $ sudo starta om

Efter att ha startat om din Raspberry Pi borde fläkten fungera!

Om du har problem med att skriptet börjar vid omstart, kolla systemd-ämnet i felsökningsbilagan.

Steg 7: Bilaga: Referenser

Vanliga frågor om temperatur Raspberry Pi Org

Hackernoon: Hur man styr en fläkt

Förklarande datorer: Kylvideor

Tom's Hardware: Temperatureffekt på prestanda

Puget -system: Temperaturens inverkan på CPU -prestanda

Dra upp och dra ner motstånd

Steg 8: Bilaga: Uppdateringar

Att göra: slå ihop RF -mottagarens kretskort med fläktstyrenhet

Steg 9: Bilaga: Felsökning

Kontrollerar systemtjänsten

För att säkerställa att run-fan.service i systemd är aktiverat och körs, kör ett eller flera av kommandona:

$ systemctl list-unit-files | grep aktiverat

$ systemctl | grep kör | grep fan $ systemctl status run -fan.service -l

Om det finns några problem med att starta skriptet med systemd, undersök sedan journalen med:

$ sudo journalctl -u run -fan.service

För att kontrollera om run-fan.py körs:

$ cat /home/osmc/run-fan.log

Rekommenderad: