สารบัญ:
- ขั้นตอนที่ 1: อะไหล่ที่จำเป็น
- ขั้นตอนที่ 2: การเชื่อมต่อไฟฟ้า
- ขั้นตอนที่ 3: โปรแกรมควบคุมความเร็วพัดลม
- ขั้นตอนที่ 4: เรียกใช้โปรแกรมเมื่อเริ่มต้น
วีดีโอ: พัดลมควบคุม PWM ตามอุณหภูมิ CPU สำหรับ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
หลายกรณีสำหรับ 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
- สร้างไดเร็กทอรี /home/pi/Scripts/ และวางไฟล์ fan_ctrl.py ไว้ในไดเร็กทอรีนั้น
- ในไดเร็กทอรีเดียวกัน ให้สร้างไฟล์ชื่อ launcher.sh และคัดลอกสคริปต์ด้านล่าง
- แก้ไขไฟล์ /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
- ดาวน์โหลดไฟล์ fanctrl.service
- ตรวจสอบเส้นทางไปยังไฟล์ python ของคุณ
- วาง fanctrl.service ใน /lib/systemd/system.
- สุดท้าย เปิดใช้บริการด้วย sudo systemctl enable fanctrl.service
วิธีนี้ปลอดภัยกว่า เนื่องจากโปรแกรมจะรีสตาร์ทโดยอัตโนมัติหากผู้ใช้หรือระบบฆ่า
แนะนำ:
อะแดปเตอร์ ZX Spectrum USB สำหรับ Raspberry Pi RetroPie Builds: 5 ขั้นตอน (พร้อมรูปภาพ)
อะแดปเตอร์ ZX Spectrum USB สำหรับ Raspberry Pi RetroPie Builds: RetroPie เป็นลินุกซ์ distro พิเศษที่ออกแบบมาโดยเฉพาะสำหรับการจำลองระบบวิดีโอเกมย้อนยุคบน Raspberry Pis และคอมพิวเตอร์บอร์ดเดี่ยวอื่นๆ ฉันต้องการใช้ RetroPie build อย่างเต็มที่มาระยะหนึ่งแล้ว และเมื่อฉันเห็น repro
กันน้ำ Raspberry Pi Powered Wifi DSLR Webcam สำหรับ Time Lapses: 3 ขั้นตอน (พร้อมรูปภาพ)
กันน้ำ Raspberry Pi Powered Wifi DSLR Webcam สำหรับ Time Lapses: ฉันเป็นคนดูดเพื่อดูพระอาทิตย์ตกจากที่บ้าน มากเสียจนฉันได้รับ FOMO เล็กน้อยเมื่อพระอาทิตย์ตกดินและฉันไม่ได้อยู่บ้านเพื่อดู เว็บแคม IP ให้คุณภาพของภาพที่น่าผิดหวัง ฉันเริ่มมองหาวิธีนำกล้อง DSLR ตัวแรกกลับมาใช้ใหม่: Cano
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: ใช้งานได้กับ USB พื้นฐาน เกมสำหรับ PC-Flipperkästen Die Spannungsversorgung erfolgt über das USB Kabel. Implementiert sind die beiden Flipper Buttons และ ein Startbutton Zusätzlich ist ein stossen von unten, von links และ von rechts implem
Google AIY VoiceHAT สำหรับ Raspberry Pi Kit (MagPi 57 เวอร์ชัน 2017): 6 ขั้นตอน (พร้อมรูปภาพ)
Google AIY VoiceHAT สำหรับ Raspberry Pi Kit (MagPi 57 เวอร์ชัน 2017): ไม่พบคำแนะนำในการประกอบสำหรับชุดเสียง MagPi ในบทช่วยสอน
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon ฯลฯ): 4 ขั้นตอน
3.3V Mod สำหรับ Ultrasonic Sensors (เตรียม HC-SR04 สำหรับ 3.3V Logic บน ESP32/ESP8266, Particle Photon, ฯลฯ.): TL;DR: บนเซนเซอร์ ตัดร่องรอยไปที่ Echo pin จากนั้นเชื่อมต่อใหม่โดยใช้ a ตัวแบ่งแรงดันไฟฟ้า (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND) แก้ไข: มีการถกเถียงกันว่า ESP8266 นั้นทนทานต่อ GPIO 5V จริงหรือไม่ใน