Πίνακας περιεχομένων:

Ρυθμιζόμενος ανεμιστήρας PWM βάσει θερμοκρασίας CPU για Raspberry Pi: 4 βήματα (με εικόνες)
Ρυθμιζόμενος ανεμιστήρας PWM βάσει θερμοκρασίας CPU για Raspberry Pi: 4 βήματα (με εικόνες)

Βίντεο: Ρυθμιζόμενος ανεμιστήρας PWM βάσει θερμοκρασίας CPU για Raspberry Pi: 4 βήματα (με εικόνες)

Βίντεο: Ρυθμιζόμενος ανεμιστήρας PWM βάσει θερμοκρασίας CPU για Raspberry Pi: 4 βήματα (με εικόνες)
Βίντεο: Το καινούργιο μας ΕΡΓΑΛΕΊΟ - MIG 😎 2024, Ιούλιος
Anonim
Ρυθμιζόμενος ανεμιστήρας PWM με βάση τη θερμοκρασία της CPU για το Raspberry Pi
Ρυθμιζόμενος ανεμιστήρας PWM με βάση τη θερμοκρασία της CPU για το Raspberry Pi

Πολλές θήκες για το Raspberry Pi συνοδεύονται από μικρό ανεμιστήρα 5V για να βοηθήσουν στην ψύξη της CPU. Ωστόσο, αυτοί οι ανεμιστήρες είναι συνήθως αρκετά θορυβώδεις και πολλοί άνθρωποι το συνδέουν στην ακίδα 3V3 για να μειώσουν τον θόρυβο. Αυτοί οι ανεμιστήρες βαθμολογούνται συνήθως για 200mA, το οποίο είναι αρκετά υψηλό για τον ρυθμιστή 3V3 στο RPi. Αυτό το έργο θα σας διδάξει πώς να ρυθμίζετε την ταχύτητα του ανεμιστήρα με βάση τη θερμοκρασία της CPU. Σε αντίθεση με τα περισσότερα σεμινάρια που καλύπτουν αυτό το θέμα, δεν θα ενεργοποιήσουμε ή θα απενεργοποιήσουμε μόνο τον ανεμιστήρα, αλλά θα ελέγξουμε την ταχύτητά του όπως συμβαίνει με τον κύριο υπολογιστή, χρησιμοποιώντας Python.

Βήμα 1: Απαιτούνται εξαρτήματα

Για αυτό το έργο, θα χρησιμοποιήσουμε μόνο μερικά εξαρτήματα που συνήθως περιλαμβάνονται στα κιτ ηλεκτρονικών ειδών για χομπίστες που μπορείτε να βρείτε στο Amazon, όπως αυτό.

  • Το Raspberry Pi τρέχει το Raspbian (αλλά πρέπει να λειτουργεί με άλλες διανομές).
  • Ανεμιστήρας 5V (αλλά ένας ανεμιστήρας 12V θα μπορούσε να χρησιμοποιηθεί με προσαρμοσμένο τρανζίστορ και τροφοδοτικό 12V).
  • NPN τρανζίστορ που υποστηρίζει τουλάχιστον 300mA, όπως ένα 2N2222A.
  • Αντίσταση 1Κ.
  • 1 δίοδος.

Προαιρετικά, για να τοποθετήσετε τα εξαρτήματα μέσα στη θήκη (αλλά δεν έχει γίνει ακόμα):

  • Ένα μικρό κομμάτι protoboard, για συγκόλληση των εξαρτημάτων.
  • Μεγάλη συρρίκνωση θερμότητας, για την προστασία της σανίδας.

Βήμα 2: Ηλεκτρικές συνδέσεις

Ηλεκτρικές συνδέσεις
Ηλεκτρικές συνδέσεις
Ηλεκτρικές συνδέσεις
Ηλεκτρικές συνδέσεις
Ηλεκτρικές συνδέσεις
Ηλεκτρικές συνδέσεις

Η αντίσταση μπορεί να συνδεθεί με οποιονδήποτε τρόπο, αλλά προσέξτε την κατεύθυνση του τρανζίστορ και της διόδου. Η κάθοδος της διόδου πρέπει να είναι συνδεδεμένη με το καλώδιο +5V (κόκκινο) και η άνοδος πρέπει να είναι συνδεδεμένη με το καλώδιο GND (μαύρο). Ελέγξτε το έγγραφο τρανζίστορ για ακίδες Emitter, Base και Collector. Η γείωση του ανεμιστήρα πρέπει να είναι συνδεδεμένη με τον Συλλέκτη και η γείωση του Rpi πρέπει να είναι συνδεδεμένη με τον πομπό

Για να ελέγξουμε τον ανεμιστήρα, πρέπει να χρησιμοποιήσουμε ένα τρανζίστορ που θα χρησιμοποιηθεί όταν ανοίξει η διαμόρφωση του συλλέκτη. Με αυτόν τον τρόπο, έχουμε έναν διακόπτη που θα συνδέει ή θα αποσυνδέει το καλώδιο γείωσης από τον ανεμιστήρα στη γείωση του raspberry pi.

Ένα τρανζίστορ NPN BJT διεξάγεται ανάλογα με το ρεύμα που ρέει στην πύλη του. Το ρεύμα που θα επιτραπεί να ρέει από τον συλλέκτη (Γ) στον εκπομπό (Ε) είναι:

Ic = B * Ib

Το Ic είναι το ρεύμα που ρέει μέσω του συλλέκτη του πομπού, το Ib είναι το ρεύμα που ρέει μέσω της βάσης στον εκπομπό και το Β (βήτα) είναι μια τιμή ανάλογα με το κάθε τρανζίστορ. Υπολογίζουμε περίπου B = 100.

Καθώς ο ανεμιστήρας μας έχει βαθμολογία 200mA, χρειαζόμαστε τουλάχιστον 2mA μέσω της βάσης του τρανζίστορ. Η τάση μεταξύ της βάσης και του εκπομπού (Vbe) θεωρείται σταθερή και Vbe = 0, 7V. Αυτό σημαίνει ότι όταν είναι ενεργοποιημένο το GPIO, έχουμε 3,3 - 0,7 = 2,6V στην αντίσταση. Για να έχουμε 2mA μέσω αυτής της αντίστασης, χρειαζόμαστε μια αντίσταση, μέγιστη, 2,6 / 0,002 = 1300 ohm. Χρησιμοποιούμε αντίσταση 1000 ohm για να απλοποιήσουμε και να διατηρήσουμε ένα περιθώριο σφάλματος. Θα έχουμε 2,6mA μέσω του pin GPIO που είναι απολύτως ασφαλές.

Καθώς ο ανεμιστήρας είναι βασικά ένας ηλεκτροκινητήρας, είναι ένα επαγωγικό φορτίο. Αυτό σημαίνει ότι όταν το τρανζίστορ σταματήσει να αγωγεί, το ρεύμα στον ανεμιστήρα θα συνεχίσει να ρέει καθώς ένα επαγωγικό φορτίο προσπαθεί να διατηρήσει το ρεύμα σταθερό. Αυτό θα είχε ως αποτέλεσμα υψηλή τάση στον πείρο γείωσης του ανεμιστήρα και θα μπορούσε να προκαλέσει ζημιά στο τρανζίστορ. Γι 'αυτό χρειαζόμαστε μια δίοδο παράλληλα με τον ανεμιστήρα που θα κάνει το ρεύμα να ρέει συνεχώς μέσω του κινητήρα. Αυτός ο τύπος ρύθμισης διόδου ονομάζεται δίοδος Flywheel

Βήμα 3: Πρόγραμμα ελέγχου της ταχύτητας ανεμιστήρα

Για τον έλεγχο της ταχύτητας του ανεμιστήρα, χρησιμοποιούμε ένα σήμα PWM λογισμικού από τη βιβλιοθήκη RPi. GPIO. Ένα σήμα PWM είναι καλά προσαρμοσμένο για να κινεί ηλεκτρικούς κινητήρες, καθώς ο χρόνος αντίδρασής τους είναι πολύ υψηλός σε σύγκριση με τη συχνότητα PWM.

Χρησιμοποιήστε το πρόγραμμα calib_fan.py για να βρείτε την τιμή FAN_MIN τρέχοντας στο τερματικό:

python calib_fan.py

Ελέγξτε διάφορες τιμές μεταξύ 0 και 100% (θα πρέπει να είναι περίπου 20%) και δείτε ποια είναι η ελάχιστη τιμή για να ενεργοποιηθεί ο ανεμιστήρας σας.

Μπορείτε να αλλάξετε την αντιστοιχία μεταξύ θερμοκρασίας και ταχύτητας ανεμιστήρα στην αρχή του κώδικα. Πρέπει να υπάρχουν τόσες τιμές tempSteps όσες και οι τιμές speedSteps. Αυτή είναι η μέθοδος που χρησιμοποιείται γενικά σε μητρικές πλακέτες PC, μετακινώντας σημεία σε γράφημα 2 αξόνων Temp / Speed.

Βήμα 4: Εκτελέστε το πρόγραμμα κατά την εκκίνηση

Για να εκτελέσω αυτόματα το πρόγραμμα κατά την εκκίνηση, έκανα ένα σενάριο bash όπου έβαλα όλα τα προγράμματα που θέλω να ξεκινήσουν και, στη συνέχεια, ξεκινάω αυτό το σενάριο bash κατά την εκκίνηση με rc.locale

  1. Δημιουργήστε έναν κατάλογο/home/pi/Scripts/και τοποθετήστε το αρχείο fan_ctrl.py μέσα σε αυτόν τον κατάλογο.
  2. Στον ίδιο κατάλογο, δημιουργήστε ένα αρχείο με το όνομα launcher.sh και αντιγράψτε το παρακάτω σενάριο.
  3. Επεξεργαστείτε το αρχείο /etc/rc.locale και προσθέστε μια νέα γραμμή πριν από την "έξοδο 0": sudo sh '/home/pi/Scripts/launcher.sh'

σενάριο launcher.sh:

#!/bin/sh #launcher.sh #πλοήγηση στον αρχικό κατάλογο, στη συνέχεια σε αυτόν τον κατάλογο, στη συνέχεια εκτέλεση σεναρίου python, μετά επιστροφή homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

Εάν θέλετε να το χρησιμοποιήσετε με OSMC για παράδειγμα, πρέπει να το ξεκινήσετε ως υπηρεσία με το systemd.

  1. Κατεβάστε το αρχείο fanctrl.service.
  2. Ελέγξτε τη διαδρομή προς το αρχείο python.
  3. Τοποθετήστε την υπηρεσία fanctrl.service στο/lib/systemd/system.
  4. Τέλος, ενεργοποιήστε την υπηρεσία με sudo systemctl enable fanctrl.service.

Αυτή η μέθοδος είναι ασφαλέστερη, καθώς το πρόγραμμα θα επανεκκινηθεί αυτόματα εάν σκοτωθεί από τον χρήστη ή το σύστημα.

Συνιστάται: