فهرست مطالب:

فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: 4 مرحله (همراه با تصاویر)
فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: 4 مرحله (همراه با تصاویر)

تصویری: فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: 4 مرحله (همراه با تصاویر)

تصویری: فن تنظیم شده PWM بر اساس دمای پردازنده برای رزبری پای: 4 مرحله (همراه با تصاویر)
تصویری: فاجعه بزرگ در کارت های گرافیک 😭😭 / #اسمبل #پابجی #گیمر #گیمینگ #رندر #ماین #ماینینگ #گرافیک #آونگ 2024, نوامبر
Anonim
PWM دارای فن تنظیم شده بر اساس دمای پردازنده برای رزبری پای است
PWM دارای فن تنظیم شده بر اساس دمای پردازنده برای رزبری پای است

بسیاری از موارد Raspberry Pi دارای یک فن کوچک 5 ولت هستند تا به خنک شدن پردازنده کمک کنند. با این حال ، این فن ها معمولاً پر سر و صدا هستند و بسیاری از مردم آن را به پین 3V3 وصل می کنند تا نویز را کاهش دهند. این فن ها معمولاً برای 200mA درجه بندی می شوند که برای تنظیم کننده 3V3 در RPi بسیار بالا است. این پروژه نحوه تنظیم سرعت فن بر اساس دمای CPU را به شما آموزش می دهد. بر خلاف بسیاری از آموزش هایی که این موضوع را پوشش می دهند ، ما نه تنها فن را روشن یا خاموش می کنیم ، بلکه سرعت آن را مانند رایانه های اصلی با استفاده از پایتون کنترل می کنیم.

مرحله 1: قطعات مورد نیاز

برای این پروژه ، ما فقط از چند جزء که معمولاً در کیت های لوازم الکترونیکی برای علاقه مندان موجود است استفاده می کنیم که می توانید در آمازون پیدا کنید ، مانند این مورد.

  • Raspberry Pi Raspbian را اجرا می کند (اما باید با سایر توزیع کنندگان کار کند).
  • فن 5 ولت (اما از فن 12 ولت می توان با ترانزیستور مناسب و منبع تغذیه 12 ولت استفاده کرد).
  • ترانزیستور NPN که از حداقل 300mA پشتیبانی می کند ، مانند 2N2222A.
  • مقاومت 1K
  • 1 دیود

اختیاری ، برای قرار دادن اجزای داخل کیس (اما هنوز انجام نشده است):

  • یک قطعه کوچک از تخته اولیه ، برای لحیم کردن اجزاء.
  • انقباض حرارتی بزرگ ، برای محافظت از تخته.

مرحله 2: اتصالات برق

اتصالات الکتریکی
اتصالات الکتریکی
اتصالات الکتریکی
اتصالات الکتریکی
اتصالات الکتریکی
اتصالات الکتریکی

مقاومت را می توان به هر صورت وصل کرد ، اما در مورد جهت ترانزیستور و دیود دقت کنید. کاتد دیود باید به سیم +5V (قرمز) و آند به سیم GND (سیاه) متصل شود. سند ترانزیستور خود را برای پین های Emitter ، Base و Collector بررسی کنید. زمین فن باید به Collector و زمین Rpi به Emitter متصل شود

به منظور کنترل فن ، ما باید از یک ترانزیستور استفاده کنیم که از تنظیمات جمع کننده باز نشده استفاده می شود. با انجام این کار ، ما یک سوئیچ داریم که سیم زمین را از فن به زمین تمشک pi متصل یا قطع می کند.

یک ترانزیستور NPN BJT بسته به جریانی که در دروازه آن جریان دارد هدایت می شود. جریانی که اجازه می دهد از کلکتور (C) به امیتر (E) جریان یابد:

Ic = B * Ib

Ic جریانی است که از طریق کلکتور امیتر عبور می کند ، Ib جریانی است که از قاعده به سوی امیتر می گذرد و B (بتا) مقدار بسته به هر ترانزیستور است. ما تقریباً B = 100 را تخمین می زنیم.

از آنجا که فن ما 200 میلی آمپر است ، ما حداقل 2 میلی آمپر از طریق پایه ترانزیستور نیاز داریم. تنش بین پایه و امیتر (Vbe) ثابت و Vbe = 0 ، 7V در نظر گرفته می شود. این بدان معناست که وقتی GPIO روشن است ، 3.3 - 0.7 = 2.6V در مقاومت داریم. برای داشتن 2mA از طریق آن مقاومت ، ما به یک مقاومت حداکثر ، 2.6 / 0.002 = 1300 اهم نیاز داریم. ما از مقاومت 1000 اهم برای ساده سازی و حفظ حاشیه خطا استفاده می کنیم. ما 2.6mA از طریق پین GPIO داریم که کاملاً ایمن است.

از آنجا که فن در اصل یک موتور الکتریکی است ، یک بار القایی است. این بدان معناست که وقتی ترانزیستور هدایت خود را متوقف می کند ، جریان فن همچنان به جریان خود ادامه می دهد زیرا بار القایی سعی می کند جریان را ثابت نگه دارد. این امر باعث ایجاد ولتاژ بالا در پایه زمین فن می شود و می تواند به ترانزیستور آسیب برساند. به همین دلیل ما به یک دیود موازی با فن نیاز داریم که جریان را به طور مداوم در موتور جریان دهد. به این نوع تنظیم دیودها دیود فلایویل می گویند

مرحله 3: برنامه ای برای کنترل سرعت فن

برای کنترل سرعت فن ، از سیگنال نرم افزاری PWM از کتابخانه RPi. GPIO استفاده می کنیم. یک سیگنال PWM به خوبی برای حرکت موتورهای الکتریکی سازگار است ، زیرا زمان واکنش آنها در مقایسه با فرکانس PWM بسیار زیاد است.

از برنامه calib_fan.py برای یافتن مقدار FAN_MIN با اجرای در ترمینال استفاده کنید:

python calib_fan.py

چندین مقدار را بین 0 تا 100 Check بررسی کنید (باید حدود 20 be باشد) و ببینید حداقل مقدار روشن شدن فن شما چقدر است.

می توانید مطابقت دما و سرعت فن را در ابتدای کد تغییر دهید. مقدار tempSteps باید به اندازه مقادیر speedSteps وجود داشته باشد. این روشی است که به طور کلی در مادربردهای رایانه استفاده می شود و نقاط را بر روی نمودار 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 #به فهرست اصلی ، سپس به این فهرست بروید ، سپس اسکریپت پایتون را اجرا کنید ، سپس 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 enable fanctrl.service فعال کنید.

این روش ایمن تر است ، زیرا در صورت کشته شدن توسط کاربر یا سیستم ، برنامه به طور خودکار راه اندازی مجدد می شود.

توصیه شده: