สามารถควบคุมได้ด้วยบอร์ด arduino และ mosfet drive เนื่องจาก
arduino ไม่สามารถขับมอเตอร์ได้โดยตรงจึงให้ mosfet ทำหน้าที่เป็นสวิตซ์
เปิด-ปิด
โดยสามารถใช้คำสั่ง สั้นๆได้ดังนี้
analogWrite(pinout, 255);
pinout คือ ขาออกของสัญญาณ บนตัวบอร์ด arduino
255 คือ สามารถระบุค่าได้ตั้งแต่ 1 - 255 ซึ่งหมายถึงความเร็วของมอเตอร์จาก 0 - 100%
ค่า (0-255) |
ความเร็วเปอร์เซ็นต์ (%) |
---|---|
0 | 0% |
25 | 10% |
51 | 20% |
76 | 30% |
102 | 40% |
127 | 50% |
153 | 60% |
178 | 70% |
204 | 80% |
229 | 90% |
255 | 100% |
อุปกรณ์
- บอร์ด arduino uno r3
- เฟต irfz44
- มอเตอร์ขนาด 12V หรือ พัดลมคอมก็ได้ (ไม่ควรเกิน 500W หรือ 40A เนื่องจาก mosfet เบอร์นี้ทนกระแสได้ 49A)
- ตัวต้านทานลดการกระเพื่อมของสัญญาณ ให้กับขา(G) ของเฟต ค่า 220Ω
วงจร
การต่อวงจร จะต่อขา(D) เข้ากับมอเตอร์(-) ข้างนึง และ ต่อขา(S)
เข้ากับลบหรือกราวด์เชื่อมผ่าน R10k ไปยังขา(D3 ของบอร์ด arduino) ของแหล่งจ่าย ส่วนขาอีกข้างของมอเตอร์
ต่อเข้ากับไฟบวก
#define MOSFET_PIN 3 // กำหนดขา D3 ให้ควบคุม MOSFET
void setup() {
pinMode(MOSFET_PIN, OUTPUT);
}
void loop() {
analogWrite(MOSFET_PIN, 128); // ส่งสัญญาณ PWM 50% (0-255)
delay(1000);
analogWrite(MOSFET_PIN, 255); // เปิดเต็มที่ (100%)
delay(1000);
analogWrite(MOSFET_PIN, 0); // ปิด
delay(1000);
}
อธิบายการทำงาน:
analogWrite(pin, value); ส่งสัญญาณ PWM (0-255) ไปที่ขา D3
- ค่า 0 = ปิด MOSFET
- ค่า 255 = เปิดเต็มที่ (5V PWM)
- ค่า 128 = เปิดครึ่งหนึ่ง (50% Duty Cycle)
ถ้าคุณใช้ MOSFET N-Channel ควบคุมโหลดที่ต่อกับ GND ให้ขา Drain ของ MOSFET ต่อกับลบของโหลด และ Source ต่อกับ GND ของ Arduino
ถ้าต้องการควบคุมอุปกรณ์ที่ต้องการกระแสสูง เช่น มอเตอร์ หรือ หลอดไฟ 12V+ ให้ใช้ MOSFET ที่รองรับกระแสสูง และอาจต้องมี ตัวต้านทาน Pull-down (10kΩ) ที่ขา Gate ไป GND เพื่อป้องกันการเปิดค้าง
0 ความคิดเห็น