สารบัญ:

พัดลมควบคุม PWM ตามอุณหภูมิ CPU สำหรับ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
พัดลมควบคุม PWM ตามอุณหภูมิ CPU สำหรับ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: พัดลมควบคุม PWM ตามอุณหภูมิ CPU สำหรับ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: พัดลมควบคุม PWM ตามอุณหภูมิ CPU สำหรับ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แนะนำ วิธีลดความร้อน Raspberry Pi 5 แบบพกพา ด้วย Heatsink Active Cooler ใส่กล่อง Original Case ก็ได้ 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 (แต่ควรทำงานร่วมกับ distribs อื่น ๆ)
  • พัดลม 5V (แต่พัดลม 12V สามารถใช้กับทรานซิสเตอร์ที่ดัดแปลงและแหล่งจ่ายไฟ 12V ได้)
  • ทรานซิสเตอร์ NPN ที่รองรับอย่างน้อย 300mA เช่น 2N2222A
  • ตัวต้านทาน 1K
  • 1 ไดโอด

เป็นทางเลือก ในการใส่ส่วนประกอบในเคส (แต่ยังไม่ได้ทำ):

  • โปรโตบอร์ดชิ้นเล็ก ๆ เพื่อประสานส่วนประกอบ
  • ความร้อนหดตัวขนาดใหญ่ เพื่อป้องกันบอร์ด.

ขั้นตอนที่ 2: การเชื่อมต่อไฟฟ้า

การเชื่อมต่อไฟฟ้า
การเชื่อมต่อไฟฟ้า
การเชื่อมต่อไฟฟ้า
การเชื่อมต่อไฟฟ้า
การเชื่อมต่อไฟฟ้า
การเชื่อมต่อไฟฟ้า

ตัวต้านทานสามารถเสียบได้ทั้งสองทาง แต่ระวังทิศทางของทรานซิสเตอร์และไดโอด แคโทดของไดโอดต้องเชื่อมต่อกับสาย +5V (สีแดง) และขั้วบวกต้องเชื่อมต่อกับสาย GND (สีดำ) ตรวจสอบเอกสารทรานซิสเตอร์ของคุณสำหรับพิน Emitter, Base และ Collector กราวด์ของพัดลมจะต้องเชื่อมต่อกับ Collector และกราวด์ของ Rpi จะต้องเชื่อมต่อกับ Emitter

เพื่อควบคุมพัดลม เราจำเป็นต้องใช้ทรานซิสเตอร์ที่จะใช้ในการกำหนดค่าตัวรวบรวมเปิด โดยการทำเช่นนี้ เรามีสวิตช์ที่จะเชื่อมต่อหรือถอดสายกราวด์จากพัดลมไปยังกราวด์ของราสเบอร์รี่ pi

ทรานซิสเตอร์ NPN BJT ดำเนินการขึ้นอยู่กับกระแสที่ไหลเข้าเกต กระแสที่จะอนุญาตให้ไหลจากตัวสะสม (C) ไปยังตัวปล่อย (E) คือ:

Ic = B * อิบ

Ic คือกระแสที่ไหลผ่านตัวสะสมอีซีแอล Ib คือกระแสที่ไหลผ่านฐานไปยังอีซีแอล และ B (เบต้า) เป็นค่าที่ขึ้นอยู่กับทรานซิสเตอร์แต่ละตัว เราประมาณ B = 100

เนื่องจากพัดลมของเราได้รับการจัดอันดับเป็น 200mA เราจึงต้องการอย่างน้อย 2mA ผ่านฐานของทรานซิสเตอร์ แรงตึงระหว่างฐานและตัวปล่อย (Vbe) ถือเป็นค่าคงที่ และ Vbe = 0, 7V ซึ่งหมายความว่าเมื่อเปิด GPIO เรามีตัวต้านทาน 3.3 - 0.7 = 2.6V เพื่อให้มี 2mA ผ่านตัวต้านทานนั้น เราจำเป็นต้องมีตัวต้านทาน สูงสุด 2.6 / 0.002 = 1300 โอห์ม เราใช้ตัวต้านทาน 1,000 โอห์มเพื่อลดความซับซ้อนและรักษาระยะขอบของข้อผิดพลาด เราจะมี 2.6mA ผ่านพิน GPIO ซึ่งปลอดภัยโดยสิ้นเชิง

เนื่องจากพัดลมนั้นเป็นมอเตอร์ไฟฟ้า จึงเป็นประจุไฟฟ้าเหนี่ยวนำ ซึ่งหมายความว่าเมื่อทรานซิสเตอร์หยุดนำกระแส กระแสในพัดลมจะยังคงไหลต่อไปในขณะที่ประจุอุปนัยพยายามรักษากระแสให้คงที่ ซึ่งจะส่งผลให้เกิดไฟฟ้าแรงสูงบนขากราวด์ของพัดลมและอาจทำให้ทรานซิสเตอร์เสียหายได้ นั่นเป็นเหตุผลที่เราต้องการไดโอดขนานกับพัดลมซึ่งจะทำให้กระแสไหลผ่านมอเตอร์อย่างต่อเนื่อง การตั้งค่าไดโอดประเภทนี้เรียกว่ามู่เล่ไดโอด

ขั้นตอนที่ 3: โปรแกรมควบคุมความเร็วพัดลม

ในการควบคุมความเร็วพัดลม เราใช้สัญญาณ PWM ของซอฟต์แวร์จากไลบรารี RPi. GPIO สัญญาณ PWM ได้รับการดัดแปลงมาอย่างดีเพื่อขับเคลื่อนมอเตอร์ไฟฟ้า เนื่องจากเวลาตอบสนองของสัญญาณนั้นสูงมากเมื่อเทียบกับความถี่ PWM

ใช้โปรแกรม calib_fan.py เพื่อค้นหาค่า FAN_MIN โดยเรียกใช้ในเทอร์มินัล:

หลาม calib_fan.py

ตรวจสอบค่าต่างๆ ระหว่าง 0 ถึง 100% (ควรอยู่ที่ประมาณ 20%) และดูว่าค่าต่ำสุดสำหรับพัดลมของคุณคือเท่าใด

คุณสามารถเปลี่ยนการติดต่อระหว่างอุณหภูมิและความเร็วพัดลมได้ที่จุดเริ่มต้นของรหัส ต้องมี tempSteps มากเท่ากับค่า speedSteps เป็นวิธีที่ใช้กันทั่วไปในเมนบอร์ด PC จุดเคลื่อนที่บนกราฟ 2 แกน Temp / Speed

ขั้นตอนที่ 4: เรียกใช้โปรแกรมเมื่อเริ่มต้น

ในการเรียกใช้โปรแกรมโดยอัตโนมัติเมื่อเริ่มต้น ฉันสร้างสคริปต์ทุบตีโดยใส่โปรแกรมทั้งหมดที่ฉันต้องการเปิดใช้ จากนั้นจึงเปิดสคริปต์ทุบตีนี้เมื่อเริ่มต้นด้วย rc.locale

  1. สร้างไดเร็กทอรี /home/pi/Scripts/ และวางไฟล์ fan_ctrl.py ไว้ในไดเร็กทอรีนั้น
  2. ในไดเร็กทอรีเดียวกัน ให้สร้างไฟล์ชื่อ launcher.sh และคัดลอกสคริปต์ด้านล่าง
  3. แก้ไขไฟล์ /etc/rc.locale และเพิ่มบรรทัดใหม่ก่อน "exit 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

วิธีนี้ปลอดภัยกว่า เนื่องจากโปรแกรมจะรีสตาร์ทโดยอัตโนมัติหากผู้ใช้หรือระบบฆ่า

แนะนำ: