Fan speed using Fuzzy logic controller based on Arduino UNO

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

จากรูปข้างบนจะเป็นลักษณะของบอร์ดทดลองและตัวพัดลมที่ใช้ในการทดลอง ซึ่งในการทดลองนี้จะใช้ตัวประมวลผล Arduino UNO และใช้วงจรขับกำลังให้กับพัดลม (บอร์ดทดลองอเนกประสงค์สีเหลือง) ด้วยเพาเวอร์มอสเฟตชนิด P-channel และใช้วิธีสวิตชิ่งที่ความถี่สูงเพื่อสร้างแรงดันเอาต์พุตให้สามารถความคุมความเร็วของตัวพัดลม

ตัวพัดลมที่ใช้จะเป็นแบบไม่ใช้แปรงถ่าน BLDC Motor ขนาด 12V/0.55A และมีสายไฟสำหรับให้เชื่อมต่อด้วยกัน 3 เส้น คือสีแดงจะเป็นไฟเลี้ยงขั้วบวก สายสีดำจะเป็นขั้วลบ ซึ่งทั้งสองเส้นนี้จะเป็นไฟเลี่ยงโดยตรงให้กับตัวมอเตอร์พัดลม และเส้นสุดท้ายจะเป็นสีขาวซึ่งเส้นนี้จะต้องต่อกับตัวต้านทานและไฟเลี้ยง 5V เพื่อสร้างเป็นสัญญาณพัลซ์ให้เกิดขึ้น

สำหรับบอร์ด Arduino UNO ที่ใช้ในการประมวลผลนั้น จะทำหน้าที่รับสัญญาณพัลซ์ที่เกิดขึ้นจากตัวพัดลม ซึ่งเป็นสัญญาณป้อนกลับของระบบเข้าที่ขา PIN2 และจะจ่ายสัญญาณควบคุมกำลังในลักษณะของพัลซ์วิดมอดูเลต (PWM signal) ความถี่สูงเช่นกัน เพื่อปรับความเร็วของพัดลมให้ได้ค่าที่ต้องการ และไฟเลี้ยงของพัดลมนั้นจะนำมาจากจุดต่อที่ตำแหน่ง VIN จากตัวบอร์ดด้วยเช่นกัน

ลักษณะการต่อวงจรในส่วนของการควบคุมกำลังให้กับตัวพัดลม และส่วนของการสร้างสัญญาณพัลซ์จาก Tachometer สำหรับป้อนกลับให้กับตัวประมวลผล

ในรูปวงจรจะเป็นการต่อใช้งานสำหรับปรับความเร็วให้กับตัวพัดลม ซึ่งจะสังเกตว่าที่ตัวมอสเฟต Q2, D1, L1 และ C1 จะต่อกันในลักษณะของวงจรลดทอนแรงดัน (Buck Converter) โดยค่าแรงดันที่เอาต์พุตจะถูกกำหนดด้วยสัญญาณ PWM Signal จากบอร์ด Arduino ที่ขา 3

จากในรูปจะผลการทดลองของการควบคุมความเร็วของพัดลมโดยปรับค่า SP (Setpoint) เท่ากับ 70 ค่าสัญญาณป้อนกลับ PV (Process Value) มีค่าใกล้เคียง 70 และค่าความผิดพลาด Err ที่เกิดขึ้นเมื่อระบบกำลังทำงาน

รูปถัดมาเป็นเป็นการเปลี่ยนค่า SP (Setpoint) ใหม่เป็น 100 เพื่อทดสอบการในลักษณะเดิมและสังเกตการตอบสนองของระบบ ซึ่งจะเห็นค่า Err มีค่าผิดพลาดไม่เกิน 2% ซึ่งเป็นที่น่าพอใจ

ในลักษณะเดียวกันด้วยการเปลี่ยนค่า SP (Setpoint) ใหม่เป็น 125 ซึ่งค่านี้จะทำให้ความเร็วรอบของพัดลมจะเพิ่มสูงขึ้น โดยสังเกตจากค่า PWM ที่อยู่ใกล้กับค่า Err ส่วนข้างล่างนี้จะเป็นวิดีโอแสดงการทดสอบการทำงานต่างๆ ที่เกิดขึ้น

Referance

  1. https://www.youtube.com/watch?v=eWo8gdny7tQ
  2. https://easyeda.com/th
  3. https://www.mouser.de/pdfdocs/BuckConverterDesignNote.pdf
  4. https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html