เมื่อไม่กี่สัปดาห์ก่อน ผมได้นำเสนอบทความและวิดีโอสาธิตวิธีการควบคุมอุปกรณ์ที่มีแรงดันไฟฟ้าสูง (High Voltage) ด้วย Arduino ซึ่งได้รับความสนใจเป็นอย่างมาก สำหรับใครที่ยังไม่ได้อ่านหรือต้องการทบทวนพื้นฐาน สามารถย้อนกลับไปดูได้ที่ลิงก์นี้ครับ:
อย่างไรก็ตาม ในขณะที่ผมกำลังจัดระเบียบอุปกรณ์ในเวิร์กชอป ผมก็ได้พบกับ MOSFET Module ซึ่งเป็นอุปกรณ์ชิ้นสำคัญที่ผมมองข้ามไปในบทความที่แล้ว บทความนี้จึงเปรียบเสมือน "ภาคผนวก" หรือส่วนขยายที่จะมาเจาะลึกการใช้โมดูล MOSFET ในการควบคุมไฟ LED 12V อย่างมีประสิทธิภาพและเป็นมืออาชีพมากขึ้น
ทำไมต้อง MOSFET? เจาะลึกในเชิงวิศวกรรม
ในโปรเจคก่อนหน้านี้ เราอาจจะใช้ Relay หรือ Transistor ทั่วไป แต่ MOSFET (Metal-Oxide-Semiconductor Field-Effect Transistor) มีข้อได้เปรียบที่โดดเด่นในงานด้านอิเล็กทรอนิกส์กำลัง (Power Electronics):
- ความเร็วในการสวิตช์ (Switching Speed): MOSFET สามารถเปิด-ปิดได้เร็วมากในระดับไมโครวินาที ทำให้เราสามารถใช้เทคนิค PWM (Pulse Width Modulation) เพื่อหรี่ไฟ (Dimming) หรือควบคุมความเร็วรอบมอเตอร์ได้ ซึ่ง Relay แบบกลไกทำไม่ได้
- ความทนทาน: เนื่องจากไม่มีหน้าสัมผัสทางกล (Mechanical parts) จึงไม่มีการสึกหรอหรือเกิดประกายไฟ (Arcing) ทำให้มีอายุการใช้งานที่ยาวนานกว่า
- ประสิทธิภาพความร้อน: หากเลือกใช้ Logic Level MOSFET ที่เหมาะสม จะมีการสูญเสียพลังงานในรูปความร้อนต่ำมาก (Low RDS(on))
ในบทความนี้เราจะใช้โมดูลที่ใช้ชิปตระกูล IRF520 ซึ่งเป็นที่นิยมอย่างมากในกลุ่มผู้เล่น Arduino
การสาธิตการใช้งานในรูปแบบวิดีโอ
สำหรับใครที่ต้องการดูขั้นตอนการต่อวงจรและการทำงานจริง สามารถรับชมได้จากวิดีโอด้านล่างนี้ครับ:
การเชื่อมต่อวงจร (Hardware Wiring)
การใช้งานโมดูล MOSFET นั้นง่ายกว่าการต่อตัวทรานซิสเตอร์แยกเอง เนื่องจากมีการรวมวงจร Isolation และ Terminal Block มาให้แล้ว:
- ฝั่ง Arduino (Control):
- SIG: ต่อเข้ากับ Digital Pin ของ Arduino (เช่น Pin 9 หากต้องการใช้ PWM)
- VCC: ต่อเข้ากับ 5V ของ Arduino
- GND: ต่อเข้ากับ GND ของ Arduino
- ฝั่ง Load (Power):
- VIN / GND: ต่อเข้ากับแหล่งจ่ายไฟภายนอก 12V
- V+ / V-: ต่อเข้ากับอุปกรณ์ที่ต้องการควบคุม (ในที่นี้คือ LED 12V)
การวิเคราะห์โค้ดโปรแกรม (Source Code Analysis)
เพื่อให้เห็นภาพการทำงาน ผมขอนำเสนอโค้ดตัวอย่างที่ใช้ในการควบคุมความสว่างของ LED 12V โดยใช้หลักการ PWM ครับ
const int mosfetPin = 9; // กำหนดขา SIG ของ MOSFET ต่อที่ Pin 9 (รองรับ PWM)
void setup() {
pinMode(mosfetPin, OUTPUT); // ตั้งค่าให้ขา 9 เป็น Output
}
void loop() {
// 1. ตัวอย่างการเปิด-ปิด (Digital Control)
digitalWrite(mosfetPin, HIGH); // เปิดไฟ LED 100%
delay(2000);
digitalWrite(mosfetPin, LOW); // ปิดไฟ LED
delay(1000);
// 2. ตัวอย่างการหรี่ไฟ (Analog Control ด้วย PWM)
// ค่อยๆ เพิ่มความสว่าง
for(int brightness = 0; brightness <= 255; brightness++) {
analogWrite(mosfetPin, brightness);
delay(10);
}
delay(1000);
// ค่อยๆ ลดความสว่าง
for(int brightness = 255; brightness >= 0; brightness--) {
analogWrite(mosfetPin, brightness);
delay(10);
}
delay(1000);
}
อธิบายลอจิกการทำงาน:
- digitalWrite(mosfetPin, HIGH): เมื่อส่งสัญญาณ Logic HIGH (5V) ไปยังขา Gate ของ MOSFET จะทำให้ช่องว่างระหว่าง Drain และ Source เชื่อมถึงกัน ส่งผลให้กระแสไฟ 12V ไหลผ่าน LED ได้เต็มที่
- analogWrite(mosfetPin, value): เป็นการส่งสัญญาณ Pulse ออกไปสลับกันระหว่าง HIGH และ LOW ด้วยความถี่สูง ค่า 0-255 คือค่า Duty Cycle ซึ่งจะกำหนด "ค่าเฉลี่ย" ของพลังงานที่ส่งไปยัง LED ทำให้เรามองเห็นเป็นการหรี่ไฟได้อย่างนุ่มนวล
บทสรุป
การใช้ MOSFET Module เป็นทางเลือกที่ยอดเยี่ยมสำหรับการควบคุมอุปกรณ์ DC แรงดันสูงที่ต้องการความละเอียดแม่นยำและความเร็วในการสวิตช์ ไม่ว่าจะเป็นการหรี่ไฟ LED Strip หรือการควบคุมความเร็วพัดลม DC 12V-24V ด้วยประสิทธิภาพที่เหนือกว่า Relay ในแง่ของขนาดและความยืดหยุ่นทางซอฟต์แวร์ ทำให้มันเป็นอุปกรณ์ที่วิศวกรฝังตัวควรมีติดกล่องเครื่องมือไว้เสมอ
หากคุณชอบเนื้อหาเชิงเทคนิคแบบนี้ และต้องการสนับสนุนการสร้างสรรค์วิดีโอและบทความต่อๆ ไป สามารถสนับสนุนผมได้ที่:
Patreon: https://www.patreon.com/MariosIdeas
หรือร่วมสนับสนุนผ่าน PayPal: คลิกที่นี่เพื่อสนับสนุนผ่าน PayPal
ขอบคุณที่ติดตามครับ! หากมีคำถามเกี่ยวกับโปรเจคนี้ สามารถทิ้งข้อความไว้ได้เลยครับ