Spisu treści:

Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi: 4 kroki (ze zdjęciami)
Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi: 4 kroki (ze zdjęciami)

Wideo: Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi: 4 kroki (ze zdjęciami)

Wideo: Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi: 4 kroki (ze zdjęciami)
Wideo: WIELKI test obudów dla Raspberry Pi 4B 2024, Lipiec
Anonim
Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi
Wentylator regulowany PWM na podstawie temperatury procesora dla Raspberry Pi

Wiele obudów Raspberry Pi jest wyposażonych w mały wentylator 5 V, który pomaga w chłodzeniu procesora. Jednak te wentylatory są zwykle dość głośne i wiele osób podłącza je do pinu 3V3, aby zmniejszyć hałas. Wentylatory te są zwykle oceniane na 200 mA, co jest dość wysokie dla regulatora 3V3 na RPi. Ten projekt nauczy Cię, jak regulować prędkość wentylatora w oparciu o temperaturę procesora. W przeciwieństwie do większości samouczków dotyczących tego tematu, nie tylko włączamy i wyłączamy wentylator, ale także kontrolujemy jego prędkość, tak jak to się robi na komputerach PC, używając Pythona.

Krok 1: Potrzebne części

W tym projekcie użyjemy tylko kilku komponentów, które zwykle znajdują się w zestawach elektroniki dla hobbystów, które można znaleźć na Amazon, takich jak ten.

  • Raspberry Pi z systemem Raspbian (ale powinien działać z innymi dystrybucjami).
  • Wentylator 5V (ale wentylator 12V może być używany z dostosowanym tranzystorem i zasilaczem 12V).
  • Tranzystor NPN, który obsługuje co najmniej 300mA, jak 2N2222A.
  • Rezystor 1K.
  • 1 dioda.

Opcjonalnie, aby umieścić elementy wewnątrz obudowy (ale jeszcze nie zrobione):

  • Kawałek płytki prototypowej do lutowania elementów.
  • Duża koszulka termokurczliwa chroniąca deskę.

Krok 2: Połączenia elektryczne

Połączenia elektryczne
Połączenia elektryczne
Połączenia elektryczne
Połączenia elektryczne
Połączenia elektryczne
Połączenia elektryczne

Rezystor można podłączyć w dowolny sposób, ale należy uważać na kierunek tranzystora i diody. Katoda diody musi być podłączona do przewodu +5V (czerwonego), a anoda do przewodu GND (czarnego). Sprawdź dokumentację tranzystora pod kątem pinów emitera, podstawy i kolektora. Masa wentylatora musi być podłączona do kolektora, a masa Rpi musi być podłączona do emitera

Aby sterować wentylatorem, musimy użyć tranzystora, który będzie używany w konfiguracji z otwartym kolektorem. Dzięki temu mamy przełącznik, który połączy lub odłączy przewód uziemiający od wentylatora do masy raspberry pi.

Tranzystor NPN BJT przewodzi w zależności od prądu płynącego w jego bramce. Prąd, który będzie mógł płynąć z kolektora (C) do emitera (E) to:

Ic = B * Ib

Ic to prąd płynący przez kolektor-emiter, Ib to prąd płynący przez bazę do emitera, a B (beta) to wartość zależna od każdego tranzystora. Przybliżamy B = 100.

Ponieważ nasz wentylator ma natężenie 200mA, potrzebujemy co najmniej 2mA przez bazę tranzystora. Napięcie między podstawą a emiterem (Vbe) jest uważane za stałe i Vbe = 0,7V. Oznacza to, że gdy GPIO jest włączone, na rezystorze mamy 3,3 - 0,7 = 2,6V. Aby uzyskać 2mA przez ten rezystor, potrzebujemy rezystora maksymalnie 2,6 / 0,002 = 1300 omów. Aby uprościć i zachować margines błędu, używamy rezystora 1000 omów. Będziemy mieli 2,6 mA przez pin GPIO, co jest całkowicie bezpieczne.

Ponieważ wentylator jest w zasadzie silnikiem elektrycznym, jest to ładunek indukcyjny. Oznacza to, że gdy tranzystor przestanie przewodzić, prąd w wentylatorze będzie nadal płynął, ponieważ ładunek indukcyjny próbuje utrzymać stały prąd. Spowodowałoby to wysokie napięcie na styku uziemienia wentylatora i mogłoby spowodować uszkodzenie tranzystora. Dlatego potrzebujemy diody równolegle z wentylatorem, która sprawi, że prąd będzie płynął przez silnik w sposób ciągły. Ten rodzaj konfiguracji diody nazywa się diodą Flywheel

Krok 3: Program do sterowania prędkością wentylatora

Do sterowania prędkością wentylatora wykorzystujemy programowy sygnał PWM z biblioteki RPi. GPIO. Sygnał PWM jest dobrze przystosowany do napędzania silników elektrycznych, ponieważ ich czas reakcji jest bardzo wysoki w porównaniu z częstotliwością PWM.

Użyj programu calib_fan.py, aby znaleźć wartość FAN_MIN, uruchamiając w terminalu:

python calib_fan.py

Sprawdź kilka wartości z zakresu od 0 do 100% (powinna wynosić około 20%) i zobacz, jaka jest minimalna wartość włączenia wentylatora.

Możesz zmienić zależność między temperaturą a prędkością wentylatora na początku kodu. Musi być tyle tempSteps, ile jest wartości speedSteps. Jest to metoda powszechnie stosowana w płytach głównych do komputerów PC, polegająca na przesuwaniu punktów na 2-osiowym wykresie Temp/Prędkość.

Krok 4: Uruchom program przy starcie

Aby uruchomić program automatycznie przy starcie, zrobiłem skrypt basha, w którym umieszczam wszystkie programy, które chcę uruchomić, a następnie uruchamiam ten skrypt basha przy starcie za pomocą rc.locale

  1. Utwórz katalog /home/pi/Scripts/ i umieść plik fan_ctrl.py w tym katalogu.
  2. W tym samym katalogu utwórz plik o nazwie launcher.sh i skopiuj poniższy skrypt.
  3. Edytuj plik /etc/rc.locale i dodaj nową linię przed "exit 0": sudo sh '/home/pi/Scripts/launcher.sh'

skrypt launcher.sh:

#!/bin/sh#launcher.sh # przejdź do katalogu domowego, następnie do tego katalogu, a następnie wykonaj skrypt Pythona, a następnie z powrotem homelocalecd /cd /home/pi/Scripts/sudo python3./fan_ctrl.py &cd /

Jeśli chcesz go używać na przykład z OSMC, musisz uruchomić go jako usługę z systemd.

  1. Pobierz plik fanctrl.service.
  2. Sprawdź ścieżkę do swojego pliku Pythona.
  3. Umieść fanctrl.service w /lib/systemd/system.
  4. Na koniec włącz usługę za pomocą sudo systemctl enable fanctrl.service.

Ta metoda jest bezpieczniejsza, ponieważ program zostanie automatycznie uruchomiony ponownie, jeśli zostanie zabity przez użytkownika lub system.

Zalecana: