Experiment board DC Motor Speed Control with Arduino UNO

โครงงานนี้เป็นการสร้างชุดฝึกสำหรับควบคุมความเร็วมอเตอร์กระแสตรง (DC Motor Speed Control) ขนาดเล็กแบบไม่ใช้แปรงถ่านภายในและใช้แรงดันที่ 24V/0.1A โดยบอร์ดขับมอเตอร์จะออกแบบเพิ่มเติมเพื่อให้รับสัญญาณขับจากบอร์ดควบคุม Arduino UNO ขนาด 5Vp-p มาควบคุมการขับมอเตอร์ขนาด 24V ให้เหมาะสมทั้งในส่วนของแรงดันและกระแสขับมอเตอร์ โดยตัวมอเตอร์นี้สามารถหาซื้อได้จากร้านขายอะไหล่แบบถอดขายต่างๆ ในราคาไม่แพงมากนัก

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 1 ลักษณะของมอเตอร์กระแสตรงที่ใช้ในการทดลอง (1)
Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 2 ลักษณะของมอเตอร์กระแสตรงที่ใช้ในการทดลอง (2)
Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 3 ลักษณะของมอเตอร์กระแสตรงที่ใช้ในการทดลอง (3)

ในรูปที่ 1 ถึงรูปที่ 3 จะเป็นลักษณะของตัวมอเตอร์ที่ใช้ในการทดลองขนาดเล็กของ Toshiba DC Motor CFL-008-8A, DC 24V/0.1 A, RH7-1056 โดยจากการทดลองเบื้องต้นนั้น ตัวมอเตอร์หมุนแล้วเสียงเงียบมาก (ไม่มีเสียงดัง) การปรับความเร็วรอบใช้การปรับแรงดันที่จ่ายให้มอเตอร์ในช่วง 15V-25V และกระแสที่ใช้ประมาณ 0.1A ตามเนมเพลตสเปกที่ติดมากับตัวมอเตอร์

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 4 วัดขนาดของตัวมอเตอร์

รูปที่ 4 ตัวมอเตอร์ความกว้างประมาณ 14 เซนติเมตร ความยาว 4 เซนติเมตร และความสูงประมาณ 5 เซนติเมตร เป็นลักษณะของพัดลมกรงกระรอกโดยตัวโรเตอร์จะอยู่ด้านข้างเป็นแม่เหล็กถาวรหมุน

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 5 เตรียมอุปกรณ์ต่างๆ ที่ใช้ในการประกอบชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรง

รูปที่ 5 เริ่มเตรียมอุปกรณ์ต่างๆ เช่นบอร์ดควบคุม Arduino UNO, บอร์ดสำหรับขับมอเตอร์และแผ่นอะคิลิกใส ใช้สำหรับวางเลเอาต์ให้กับชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรง

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 6 วางตำแหน่งของการยึดอุปกรณ์ต่างๆ ให้เรีบยร้อยและเหมาะสม

รูปที่ 6 ลักษณะของการวางตำแหน่งของการยึดอุปกรณ์ต่างๆ เพราะเจาะรูสำหรับยึดบอร์ดและตัวมอเตอร์

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 7 เริ่มเจาะรูแผ่นอะคิลิกใสสำหรับยึดอุปกรณ์ต่างๆ
Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 8 ยึดตัวมอเตอร์และบอร์ดควบคุม Arduino UNO กับแผ่นอะคิลิกใส

รูปที่ 7 และรูปที่ 8 เมื่อเจาะรูเรียบร้อยแล้วก็ทำการยึตัวมอเตอร์และบอร์ดควบคุม Arduino UNO เข้ากับแผ่นอะคิลิกใสและติดปุ่มยางรองด้านล่างทั้ง 4 มุมเพื่อให้วางบนโต๊ได้ง่ายและลดการสั่นระหว่างการทดลอง

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 9 ออกแบบและประกอบวงจรขับมอเตอร์

รูปที่ 9 เป็นการเตรียมอุปกรณ์สำหรับขับมอเตอร์ ให้กับวงจรที่ออกแบบโดยการรับสัญญาณพัลซ์วิดธ์มอดูเลตจากบอร์ดควบคุม Arduino UNO เข้ามา แล้วปรับปริมาณการจ่ายไฟเลี้ยงให้กับมอเตอร์ด้วยวงจรบักคอนเวอร์เตอร์ (Buck converter) อีกส่วนหนึ่ง

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 10 ยึดบอร์ดขับมอเตอร์บนแผ่นอะคิลิกใส

รูปที่ 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) [ดาวน์โหลดที่นี่]

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 11 สัญญาณพัลซ์วิดมอดูเลตขนาดประมาณ 20% ที่ขา D9
Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 12 สัญญาณพัลซ์วิดมอดูเลตขนาดประมาณ 60% ที่ขา D9
Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 13 สัญญาณพัลซ์วิดมอดูเลตขนาดประมาณ 95% ที่ขา D9

ในรูปที่ 11 ถึงรูปที่ 13 เป็นลักษณะของสัญญาณพัลซ์วิดมอดูเลตที่เกิดขึ้น โดยวัดสัญญาณที่ขา D9 ซึ่งจากการทดลองความเร็วรอบของตัวมอเตอร์จะเป็นเชิงเส้นที่ช่วงพัลซ์วิดมอดูเลตประมาณ 30%-100% โดยในการทดลองนี้ใช้ความถี่สวิตชิ่งที่ 25kHz ให้กับวงจรบักคอนเวอร์เตอร์

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 14 วงจรสำหรับชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรง

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

Experiment board DC Motor Speed Control with Arduino UNO
รูปที่ 15 ลักษณะของชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรงที่ประกอบเสร็จแล้ว

สำหรับโครงงานนี้เป็นโครงงานเล็กๆ อีกแบบหนึ่งสำหรับใช้ในการควบคุมความเร็วรอบให้กับมอเตอร์กระแสตรงขนาดเล็ก โดยเราสามารถควบคุมความเร็วรอบแบบทั่วไป (Open-Loop Control) ด้วยการปรับสัญญาณพัลซ์วิดมอดูเลตขั่นจากบอร์ดควบคุม Arduino UNO ตามที่เราต้องการซึ่งจะเป็นพื้นฐานรูปแบบหนึ่ง สำหรับในตอนต่อไปเราจะมาพัฒนาชุดฝึกควบคุมความเร็วมอเตอร์กระแสตรงกันต่อ ด้วยการเพิ่มวงจรตรวจจับความเร็วรอบในการหมุนของตัวมอเตอร์ เพื่อให้เราสามารถทดลองในลักษณะการควบคุมแบบปิด (Closed-Loop Control) หรือเรียกระบบควบคุมแบบป้อนกลับ (Feedback Control) ได้อีกแบบหนึ่งครับ.

Reference

  1. https://www.youtube.com/watch?v=eWo8gdny7tQ
  2. https://easyeda.com/th
  3. https://www.mouser.de/pdfdocs/BuckConverterDesignNote.pdf
  4. https://www.ti.com/lit/an/slva477b/slva477b.pdf?ts=1629531707433&ref_url=https%253A%252F%252Fwww.google.co.th%252F
  5. https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html
  6. https://for-sale.yowcow.com/listing/130312179/
  7. https://www.es.co.th/Schemetic/PDF/TCRT5000.PDF