Experiment board DC Motor Speed Control with Arduino UNO
โครงงานนี้เป็นการสร้างชุดฝึกสำหรับควบคุมความเร็วมอเตอร์กระแสตรง (DC Motor Speed Control) ขนาดเล็กแบบไม่ใช้แปรงถ่านภายในและใช้แรงดันที่ 24V/0.1A โดยบอร์ดขับมอเตอร์จะออกแบบเพิ่มเติมเพื่อให้รับสัญญาณขับจากบอร์ดควบคุม Arduino UNO ขนาด 5Vp-p มาควบคุมการขับมอเตอร์ขนาด 24V ให้เหมาะสมทั้งในส่วนของแรงดันและกระแสขับมอเตอร์ โดยตัวมอเตอร์นี้สามารถหาซื้อได้จากร้านขายอะไหล่แบบถอดขายต่างๆ ในราคาไม่แพงมากนัก
ในรูปที่ 1 ถึงรูปที่ 3 จะเป็นลักษณะของตัวมอเตอร์ที่ใช้ในการทดลองขนาดเล็กของ Toshiba DC Motor CFL-008-8A, DC 24V/0.1 A, RH7-1056 โดยจากการทดลองเบื้องต้นนั้น ตัวมอเตอร์หมุนแล้วเสียงเงียบมาก (ไม่มีเสียงดัง) การปรับความเร็วรอบใช้การปรับแรงดันที่จ่ายให้มอเตอร์ในช่วง 15V-25V และกระแสที่ใช้ประมาณ 0.1A ตามเนมเพลตสเปกที่ติดมากับตัวมอเตอร์
รูปที่ 4 ตัวมอเตอร์ความกว้างประมาณ 14 เซนติเมตร ความยาว 4 เซนติเมตร และความสูงประมาณ 5 เซนติเมตร เป็นลักษณะของพัดลมกรงกระรอกโดยตัวโรเตอร์จะอยู่ด้านข้างเป็นแม่เหล็กถาวรหมุน
รูปที่ 5 เริ่มเตรียมอุปกรณ์ต่างๆ เช่นบอร์ดควบคุม Arduino UNO, บอร์ดสำหรับขับมอเตอร์และแผ่นอะคิลิกใส ใช้สำหรับวางเลเอาต์ให้กับชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรง
รูปที่ 6 ลักษณะของการวางตำแหน่งของการยึดอุปกรณ์ต่างๆ เพราะเจาะรูสำหรับยึดบอร์ดและตัวมอเตอร์
รูปที่ 7 และรูปที่ 8 เมื่อเจาะรูเรียบร้อยแล้วก็ทำการยึตัวมอเตอร์และบอร์ดควบคุม Arduino UNO เข้ากับแผ่นอะคิลิกใสและติดปุ่มยางรองด้านล่างทั้ง 4 มุมเพื่อให้วางบนโต๊ได้ง่ายและลดการสั่นระหว่างการทดลอง
รูปที่ 9 เป็นการเตรียมอุปกรณ์สำหรับขับมอเตอร์ ให้กับวงจรที่ออกแบบโดยการรับสัญญาณพัลซ์วิดธ์มอดูเลตจากบอร์ดควบคุม Arduino UNO เข้ามา แล้วปรับปริมาณการจ่ายไฟเลี้ยงให้กับมอเตอร์ด้วยวงจรบักคอนเวอร์เตอร์ (Buck converter) อีกส่วนหนึ่ง
รูปที่ 10 แสดงลักษณะของการยึดบอร์ดขับมอเตอร์บนแผ่นอะคิลิกใส และต่อไปจะทำการเชื่อมต่อสายสัญญาณต่างๆ สำหรับควบคุมมอเตอร์ เช่น ไฟเลี้ยงให้กับตัวมอเตอร์ขนาดประมาณ 24V สายสัญญาณพัลซ์วิดธ์มอดูเลตชั่นและสายกราวด์
/* Program Test Board DC Motor Speed Control with Arduino UNO DC Motor : 24VDC / 0.1A MCU : Arduino UNO Dev by : www.electronicsDNA.com Date : 21-8-64, (V.0) */ #include <PWM.h> int led = 9; int input = 2; int time_H; int time_L; float t_period; float Frequency; // int Setpoint = 120; // Set point Rang 400-700 double Output_PWM = 0; // int error = 0; int32_t frequency = 25000; // frequency (in Hz) void setup() { InitTimersSafe(); // initialize the digital pin as an output. pinMode(led, OUTPUT); pinMode(input, INPUT); Serial.begin(9600); bool success = SetPinFrequencySafe(led, frequency); //if the pin frequency was set successfully, turn pin 13 on if(success) { pinMode(13, OUTPUT); digitalWrite(13, HIGH); } } void loop() {Output_PWM = 20;
pwmWrite(led,Output_PWM);
delay(5000);
Output_PWM = 150;
pwmWrite(led,Output_PWM);
delay(5000);
Output_PWM = 250;
pwmWrite(led,Output_PWM);
delay(5000);
}
สำหรับโปรแกรมทดสอบการทำงานตัวขุดทดลองนี้จะเป็นการทดลองเบื้องต้น ซึ่งจะให้ตัวมอเตอร์หมุนด้วยควบเร็วคงที่ โดยการปรับพัลซ์วิดธ์มอดูเลตชั่นที่ประมาณ 20%, 60% และ 95% ตามลำดับ ทั้งนี้เพื่อเป็นการสังเกตความเรัวในการหมุนของตัวมอเตอร์ที่สัมพันธ์กับสัญญาณพัลซ์วิดธ์มอดูเลตชั่นในลักษณะเชิงเส้น (Linear range) ว่าเป็นอย่างไร ในส่วนของไลบารี่ (PWM.h) [ดาวน์โหลดที่นี่]
ในรูปที่ 11 ถึงรูปที่ 13 เป็นลักษณะของสัญญาณพัลซ์วิดมอดูเลตที่เกิดขึ้น โดยวัดสัญญาณที่ขา D9 ซึ่งจากการทดลองความเร็วรอบของตัวมอเตอร์จะเป็นเชิงเส้นที่ช่วงพัลซ์วิดมอดูเลตประมาณ 30%-100% โดยในการทดลองนี้ใช้ความถี่สวิตชิ่งที่ 25kHz ให้กับวงจรบักคอนเวอร์เตอร์
รูปที่ 14 แสดงลักษณะของวงจรสำหรับชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรง ซึ่งจะมีในส่วนของบอร์ดควบคุม Arduino UNO (ด้านซ้าย) และส่วนของวงจรบักคอนเวอร์เตอร์ (ด้านขวา) เพื่อทำหน้าที่ขับตัวมอเตอร์และรับสัญญาณควบคุมพัลซ์วิดมอดูเลตขั่น
สำหรับโครงงานนี้เป็นโครงงานเล็กๆ อีกแบบหนึ่งสำหรับใช้ในการควบคุมความเร็วรอบให้กับมอเตอร์กระแสตรงขนาดเล็ก โดยเราสามารถควบคุมความเร็วรอบแบบทั่วไป (Open-Loop Control) ด้วยการปรับสัญญาณพัลซ์วิดมอดูเลตขั่นจากบอร์ดควบคุม Arduino UNO ตามที่เราต้องการซึ่งจะเป็นพื้นฐานรูปแบบหนึ่ง สำหรับในตอนต่อไปเราจะมาพัฒนาชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรงกันต่อ ด้วยการเพิ่มวงจรตรวจจับความเร็วรอบในการหมุนของตัวมอเตอร์ เพื่อให้เราสามารถทดลองในลักษณะการควบคุมแบบปิด (Closed-Loop Control) หรือเรียกระบบควบคุมแบบป้อนกลับ (Feedback Control) ได้อีกแบบหนึ่งครับ.
Reference
- https://www.youtube.com/watch?v=eWo8gdny7tQ
- https://easyeda.com/th
- https://www.mouser.de/pdfdocs/BuckConverterDesignNote.pdf
- https://www.ti.com/lit/an/slva477b/slva477b.pdf?ts=1629531707433&ref_url=https%253A%252F%252Fwww.google.co.th%252F
- https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html
- https://for-sale.yowcow.com/listing/130312179/
- https://www.es.co.th/Schemetic/PDF/TCRT5000.PDF