Სარჩევი:

PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi: 4 ნაბიჯი (სურათებით)
PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi: 4 ნაბიჯი (სურათებით)

ვიდეო: PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi: 4 ნაბიჯი (სურათებით)

ვიდეო: PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi: 4 ნაბიჯი (სურათებით)
ვიდეო: Power Supply Regulator Adjustable 1.25V-35V 9A 300W xl4016 Lab bench 2024, ივლისი
Anonim
PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi
PWM რეგულირებადი გულშემატკივართა საფუძველზე CPU ტემპერატურა ჟოლო Pi

Raspberry Pi– ს ბევრი შემთხვევა მოყვება პატარა 5V ვენტილატორს, რათა დაეხმაროს პროცესორის გაგრილებას. თუმცა, ეს გულშემატკივრები, როგორც წესი, საკმაოდ ხმაურიანია და ბევრი ადამიანი აერთებს მას 3V3 პინზე ხმაურის შესამცირებლად. ეს გულშემატკივრები ჩვეულებრივ შეფასებულია 200mA– ით, რაც საკმაოდ მაღალია RPi– ზე 3V3 მარეგულირებლისთვის. ეს პროექტი გასწავლით თუ როგორ უნდა დაარეგულიროთ ვენტილატორის სიჩქარე პროცესორის ტემპერატურის მიხედვით. ამ საგნის შესახებ გაკვეთილების უმეტესობისგან განსხვავებით, ჩვენ არა მხოლოდ ჩავრთავთ ან გამოვრთავთ გულშემატკივარს, არამედ გავაკონტროლებთ მის სიჩქარეს, როგორც ეს კეთდება ჩვეულებრივ კომპიუტერზე, პითონის გამოყენებით.

ნაბიჯი 1: საჭირო ნაწილები

ამ პროექტისთვის ჩვენ გამოვიყენებთ მხოლოდ რამდენიმე კომპონენტს, რომლებიც ჩვეულებრივ შედის ელექტრონიკის კომპლექტში მოყვარულთათვის, რომელთა ნახვა შეგიძლიათ ამაზონზე, როგორც ეს.

  • Raspberry Pi მუშაობს Raspbian– ით (მაგრამ უნდა მუშაობდეს სხვა დისტრიბუტორებთან).
  • 5V ვენტილატორი (მაგრამ 12V გულშემატკივართა გამოყენება შესაძლებელია ადაპტირებული ტრანზისტორით და 12V კვების ბლოკით).
  • NPN ტრანზისტორი, რომელიც მხარს უჭერს მინიმუმ 300mA- ს, ისევე როგორც 2N2222A.
  • 1K რეზისტორი.
  • 1 დიოდი.

სურვილისამებრ, კომპონენტების ჩასადებად შიგნით (მაგრამ ჯერ არ გაკეთებულა):

  • პატარა ნაჭერი პროტობორდი, კომპონენტების შესაკრავად.
  • დიდი სითბოს შემცირება, დაფის დასაცავად.

ნაბიჯი 2: ელექტრო კავშირი

ელექტრული კავშირები
ელექტრული კავშირები
ელექტრული კავშირები
ელექტრული კავშირები
ელექტრული კავშირები
ელექტრული კავშირები

რეზისტორი შეიძლება იყოს ჩართული ნებისმიერი გზით, მაგრამ ფრთხილად იყავით ტრანზისტორისა და დიოდის მიმართულებით. დიოდის კათოდი უნდა იყოს დაკავშირებული +5V (წითელი) მავთულხლართთან, ხოლო ანოდი GND (შავი) მავთულს. შეამოწმეთ თქვენი ტრანზისტორი დოკუმენტი Emitter, Base და Collector ქინძისთავებისთვის. გულშემატკივართა მიწა უნდა იყოს დაკავშირებული კოლექტორთან, ხოლო Rpi- ის მიწა უნდა იყოს დაკავშირებული ემიტერთან

ვენტილატორის გასაკონტროლებლად, ჩვენ უნდა გამოვიყენოთ ტრანზისტორი, რომელიც გამოყენებული იქნება კოლექტორის გახსნილი კონფიგურაციით. ამით ჩვენ გვაქვს გადამრთველი, რომელიც დააკავშირებს ან გათიშავს მიწის მავთულს გულშემატკივართაგან ჟოლოს პი.

NPN BJT ტრანზისტორი ატარებს იმის მიხედვით, თუ რა დენი გადის მის კარიბჭეში. დენი, რომლის დაშვებაც შესაძლებელი იქნება კოლექტორიდან (C) ემისტერში (E) იყოს:

Ic = B * Ib

Ic არის დენი, რომელიც მიედინება გამომცემელ კოლექტორში, Ib არის დენი, რომელიც მიედინება ბაზაზე ემისტერში, ხოლო B (ბეტა) არის მნიშვნელობა თითოეული ტრანზისტორიდან გამომდინარე. ჩვენ ვიღებთ B = 100 -ს.

რადგან ჩვენი გულშემატკივარი შეფასებულია როგორც 200mA, ჩვენ გვჭირდება მინიმუმ 2mA ტრანზისტორის ბაზის გავლით. დაძაბულობა ბაზასა და ემიტერს შორის (Vbe) ითვლება მუდმივად და Vbe = 0, 7V. ეს ნიშნავს, რომ როდესაც GPIO ჩართულია, რეზისტორთან გვაქვს 3.3 - 0.7 = 2.6V. ამ რეზისტორის საშუალებით 2 mA რომ გვქონდეს, ჩვენ გვჭირდება რეზისტორი, მაქსიმალური, 2.6 / 0.002 = 1300 ოჰმი. ჩვენ ვიყენებთ 1000 ომის რეზისტორს შეცდომის ზღვრის გასამარტივებლად და შესანარჩუნებლად. ჩვენ გვექნება 2.6mA GPIO პინის საშუალებით, რაც სრულიად უსაფრთხოა.

როგორც გულშემატკივარი ძირითადად ელექტროძრავაა, ეს არის ინდუქციური მუხტი. ეს ნიშნავს, რომ როდესაც ტრანზისტორი შეწყვეტს გამტარობას, ვენტილატორში დენი გააგრძელებს დინებას, რადგან ინდუქციური მუხტი ცდილობს შეინარჩუნოს დენი მუდმივი. ეს გამოიწვევს მაღალი ძაბვის ვენტილატორს და შეიძლება დაზიანდეს ტრანზისტორი. ამიტომ ჩვენ გვჭირდება დიოდი გულშემატკივართა პარალელურად, რომელიც გახდის მიმდინარე ნაკადს მუდმივად ძრავაში. ამ ტიპის დიოდის დაყენებას ეწოდება Flywheel დიოდი

ნაბიჯი 3: გულშემატკივართა სიჩქარის კონტროლის პროგრამა

გულშემატკივართა სიჩქარის გასაკონტროლებლად ჩვენ ვიყენებთ პროგრამულ PWM სიგნალს RPi. GPIO ბიბლიოთეკიდან. PWM სიგნალი კარგად არის ადაპტირებული ელექტროძრავების მართვისთვის, რადგან მათი რეაქციის დრო ძალიან მაღალია PWM სიხშირესთან შედარებით.

გამოიყენეთ calib_fan.py პროგრამა, რათა იპოვოთ FAN_MIN მნიშვნელობა ტერმინალში გაშვებით:

პითონი calib_fan.py

შეამოწმეთ რამდენიმე მნიშვნელობა 0 -დან 100% -მდე (უნდა იყოს დაახლოებით 20%) და ნახეთ რა არის მინიმალური მნიშვნელობა თქვენი გულშემატკივრის ჩართვისთვის.

თქვენ შეგიძლიათ შეცვალოთ კორესპონდენცია ტემპერატურასა და ვენტილატორის სიჩქარეს შორის კოდის დასაწყისში. უნდა არსებობდეს იმდენი tempSteps, რამდენადაც speedSteps მნიშვნელობა. ეს არის მეთოდი, რომელიც ჩვეულებრივ გამოიყენება კომპიუტერის დედაპლატებში, მოძრაობს წერტილებს Temp / Speed 2 ღერძიანი გრაფიკით.

ნაბიჯი 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 #ნავიგაცია სახლის დირექტორიაში, შემდეგ ამ დირექტორიაში, შემდეგ პითონის სკრიპტის შესრულება, შემდეგ homelocalecd/cd/home/pi/Scripts/sudo python3./fan_ctrl.py & cd/

თუ გსურთ გამოიყენოთ იგი OSMC– სთან ერთად, თქვენ უნდა დაიწყოთ ის როგორც სერვისი systemd– ით.

  1. ჩამოტვირთეთ fanctrl.service ფაილი.
  2. შეამოწმეთ თქვენი პითონის ფაილის გზა.
  3. მოათავსეთ fanctrl.service/lib/systemd/system.
  4. დაბოლოს, ჩართეთ სერვისი sudo systemctl ჩართეთ fanctrl.service.

ეს მეთოდი უფრო უსაფრთხოა, რადგან პროგრამა ავტომატურად გადატვირთულია მომხმარებლის ან სისტემის მიერ მოკვლის შემთხვევაში.

გირჩევთ: