เอาละครับ ตามที่ได้บอกไว้ว่าช่วงนี้เราจะมาคุยกันเรื่องมอเตอร์ชนิดต่างๆ ในบทความก่อนหน้าที่เราก็ได้คุยกันไปแล้วในเรื่องของ DC motor ทำไมต้อง DC motor ก่อนเหรอครับ ก็เพราะว่าการทำงานของมอเตอร์ชนิดอื่นๆ เช่น Stepper motor ก็จะมีพื้นฐานมาจาก DC motor (บางส่วน) ครับ แต่จะมีความซับซ้อนกว่าทั้งหลักการทำงาน และ การควบคุม
Stepper motor หรือ บางคนเรียก Stepping motor ก็แล้วแต่จะเรียกนะครับ มีข้อดีที่สำคัญคือการควบคุมต่ำแหน่งของการหมุนได้อย่างแม่นยำมากๆ โดยไม่ต้องใช้การควบคุมแบบป้อนกลับ (Feedback Control) ด้วยเหตุนี้ จึงเป็นที่นิยมใช้ในอุปกรณ์ที่ต้องการควบคุมตำแหน่งและมุมอย่างแม่นยำ ที่อยู่รอบตัวเราก็เช่น พริ้นเตอร์ สแกนเนอร์ เครื่องเล่นแผ่นดิสค์ เป็นต้น
ก่อนอื่นสำหรับคนที่อยากจะรู้โครงสร้างภายในและการหมุนของ Stepper motor เป็นไง ผมแนะนำวีดีโอ 2 clip นะครับ
อันแรก โครงสร้างภายใน
ในวีดีโอคลิ๊ปด้านบนนั้นบอกรายละเอียดไว้ค่อนข้างมากนะครับท่านที่เข้าใจแล้วก็อาจจะข้ามส่วนที่ผมจะสรุปให้ต่อไปนี้ได้
หลักการของการทำงานของ Stepper motor ก็เหมือนกับ Animation ด้านล่างนี้ครับ คือ การบังคับให้แม่เหล็กถาวรบนแกนโรงเตอร์หมุนไปตามทิศการบังคับของขดลวดที่ติดตั้งบนสเตเตอร์ครับ
ทีนี้มันจะซับซ้อนกว่า DC motor ตรงที่การบังคับให้หมุนนั้นมันไม่ได้เป็นแค่การใส่แรงดันคงที่ไปที่ขั่วบวกลบเท่านั้น เราต้องใส่แรงดันให้ถูกต้องจากจังหวะที่ควรจะเป็นดังภาพด้านล่าง มันถึงจะหมุนได้ครับ
*** ภาพจาก http://www.pcbheaven.com/wikipages/How_Stepper_Motors_Work/ *****
ถ้าสังเกตดีๆจะเห็นว่ามี ขดลวดที่ควบคุมการหมุน โดยแต่ละขดห่างกัน 90 องศา การหมุนก็จะทำโดยการจ่ายกระแสเข้าไปที่ขดลวดทีละขดเพื่อทำให้เกิดสนามแม่เหล็ก ซึ่งจะไปดูดให้แม่เหล็กถาวะที่อยู่บนโรเตอร์เคลื่อนที่ โดยทิศของการหมุนก็จะขึ้นกับลำดับการจ่ายกระแสเข้าไปที่ขดลวดครับ โดยการบังคับในลักษณะนี้เรียกว่า Single coil excitation หรือ การกระตุ้นทีละขดลวด โดยจะมีการกระตุ้นหรือการจ่ายกระแสเข้าขดลวดอยู่ 4 จังหวะต่อการหมุน 1 รอบ
อีกแบบนึงจะซับซ้อนกว่าแต่จะให้ทอร์กมากกว่านะครับ คือการป้อนแบบ Full Step Drive หรือการป้อนแบบทีละ 2 ขดลวด
*** ภาพจาก http://www.pcbheaven.com/wikipages/How_Stepper_Motors_Work/ *****
หรือถ้าต้องการควบคุมให้มีความละเอียดมากขึ้นอีกก็แบบนี้ครับ จะเห็นว่าเราสามารถคุมให้มอเตอร์หมุนได้ละเอียดขึ้นจาก 90 องศา เหลือ 45 องศา โดยที่ไม่ต้องปรับเปลี่ยนตัวฮาร์ดแวร์ใดๆ เป็นเพียงการเปลี่ยนวิธีการจ่ายกระแสเข้าขดลวดเท่านั้น
*** ภาพจาก http://www.pcbheaven.com/wikipages/How_Stepper_Motors_Work/ *****
แต่ Stepper motor ที่เราจะใช้กันจริงๆ มันก็ไม่ได้มีแค่นี้ครับ มันมีคนหัวใสพัฒนาต่อ โดยเพิ่มจำนวนขดลวด และปรับให้แม่เหล็กถาวรมีซี่ (Teeth) ซึ่งทำหน้าที่เป็นจำนวนขััวของแม่เหล็กมากขึ้น การเพิ่มจำนวนซี่โดยแต่ละซี่เป็นขั้วเหนือ และขั้วใต้สลับกันนั้นก็ไม่ได้ซับซ้อนอะไรครับ เอาเหล็กที่มีสภาพความนำแม่เหล็ก (ภาษาง่ายๆ คือแม่เหล็กถาวรมาดูดแล้วติด) มาขึ้นรูปเป็นจานที่มีซี่ๆ อยู่รอบๆ ลองดูวีดีโอคลิ๊ปด้านบนประกอบครับ จากนั้นขั้นตอนการควบคุมก็มีหลักการเดียวกับ Stepper motor แบบง่ายด้านบนที่หมุนได้ทีละ 90 องศา
แต่เนื่องจาก Stepper motor ที่ใช้กันจริงๆ แบบรูปด้านล่าง มีซี่ และขดลวดมาก จึงทำให้สามารถควบคุมการหมุนได้ละเอียดมากๆ โดยการควบคุม 1 Cycle จะทำให้มอเตอร์หมุนไป 0.9 - 5 องศา แล้วแต่เทคนิคที่ใช้ในการควบคุมการหมุนครับ
*** ภาพจาก http://www.pcbheaven.com/wikipages/How_Stepper_Motors_Work/ *****
Animation ด้านบนนี้ขั้นเทพครับ จะเห็นว่ามีอยู่ 6 ขดลวด การทำงานจะต้องควบคุมเป็นขั้น 75 ขั้นจึงจะหมุนได้ครบ 1 รอบ หรือ 5 องศาต่อขั้น ทีนี้การเรียงขดลวด 6 ขดก็ไม่ได้วางห่างกัน 60 องศาแบบตรงๆ นะครับ ถ้าทำแบบนั้น มอเตอร์จะไม่หมุนครับ แต่ต้องเรียงให้คู่แรก คือ ขดลวดบนสุดและล่างสุด วางห่างจากคู่ที่สอง และ สาม เป็นมุม 60 + 5 = 65 องศา เพื่อให้มันหมุนทีละ 5 องศา นะครับ มุมต่างนี้มีผลต่อการควบคุมและการเขียนโปรแกรม ซึ่งจะบอกต่อไปด้านล่างครับ
ต้องขอบคุณคนที่วาดรูปนี้ขึ้นมาจริงๆครับ ทำให้เราเข้าใจการทำงานของ Stepper motor ได้ง่ายขึ้นอีกเยอะ
ให้ดูอุปกรณ์จริงกัน อย่างรูปด้านบนนี้จะเห็นว่ามี 2 จาน แต่ละจานมี 50 ซี่ ทำให้รวมมีซี่ที่สร้างเป็นขั้วเหนือและใต้รวม 100 ซึ่
สำหรับ Stepper motor ที่มีใช้กันอยู่จะมี 2 แบบ ขึ้นกับการต่อขดลวดภายในมอเตอร์ ได้แก่ แบบ Unipolar และแบบ Bipolar ครับ แบบที่เรามักจะใช้ และก็ที่ร้านผมมีขายก็คือแบบ Unipolar ครับ ทำไมเหรอครับ เพราะว่าการควบคุมง่ายกว่า เนื่องจากไม่ต้องกลับทิศของกระแสที่ป้อนเข้าไปที่ขดลวดครับ แต่ถ้าเป็นแบบ Bipolar ก็ยากหน่อย แต่ว่าสามารถเล่นพลิกแพลงได้เยอะกว่าครับ ดังนั้นบทความในส่วนต่อไปจากนี้ผมจะพูดแต่ Unipolar Stepper motor นะครับ
จบเรืองของ Animation ครับ มาสู่ของจริงกัน ใน Stepper motor จริงๆนั้น ขดลวดจะทำงานเป็น 2 ฝ่ายครับ (ถึงแม้จะมีขดลวดมากกว่า 4 ก็ตาม) ถ้าตามภาพด้านล่างคือ a กับ b โดยจะมี 1 กับ 2 เป็นแหล่งจ่ายไปบวกลบ และ 1a 1b 2a 2b เป็นตัวกำหนดทิศทางการไหลของกระแสผ่านขดลวดทั้งสอง
การทำให้ Stepper motor หมุนแบบง่ายที่่สุดก็คือ การให้จ่ายไปเขไปทีละขดตามลำดับต่อไปนี้ครับ
1a 2a 1b 2b ก็เป็นอันว่าผ่านไป 1 Step เรียกวิธีการควบคุมแบบนี้ว่า "Wave Drive"
ตามรูปด้านล่างต่อจาก Wave Drive เลยครับ เรียกว่า Full Step Drive จะเห็นว่าเราจะให้กระแสไหลผ่านขดลวดทีละ 2 ขด ทำให้ได้ทอร์กออกมามากกว่าแบบแรกประมาณ 2 เท่าครับ ซึ่งวิธีนี้เป็นวิธีที่ library ของ Arduino เลือกใช้ครับ
ส่วนวิธีอื่นๆ ด้านล่างๆ จะไม่ขอพูดถึงในที่นี้นะครับ เพราะจะยาวมาก และต้องเขียน Library เอาเองครับ
ข้อมูลที่สำคัญอีกอันที่ควรรู้คือ การทำงานของ Stepper motor นั้นใช้กระแสที่สูงมากกว่าที่ Arduino ของเราจะรับได้ครับ ดังนั้นจึงต้องใช้วงจรขยายสัญญาณ เรียกว่า "วงจร Darlington" ครับ โชคดีครับ มันมีขายเป็น IC สำเร็จรูป เรียกว่า ULN2003AN หรือ รุ่นใกล้เคียงอื่นๆ นะครับ
ส่วน Stepper motor ที่ร้านเราขาย Spec ก็ตามนี้ครับ
28BYJ-48 – 5V Stepper Motor Rated voltage : 5VDC Number of Phase 4 Speed Variation Ratio 1/64 Stride Angle 5.625° /64 Frequency 100Hz DC resistance 50Ω±7%(25℃) Idle In-traction Frequency > 600Hz Idle Out-traction Frequency > 1000Hz In-traction Torque >34.3mN.m(120Hz) Self-positioning Torque >34.3mN.m Friction torque 600-1200 gf.cm Pull in torque 300 gf.cm Insulated resistance >10MΩ(500V) Insulated electricity power 600VAC/1mA/1s Insulation grade A Rise in Temperature <40K(120Hz) Noise <35dB(120Hz,N |
มาถึงตัวอย่างการใช้งานกันครับ วันนี้เราจะมาลองตัวอย่าง Supper hit ของ Stepper motor นั่นคือการใช้ Potentiometer หรือ R ปรับค่าได้มาควบคุมตำแหน่งการหมุนของ Stepper motor กันครับ
บอกก่อนนิดนึงครับ Stepper motor ที่เห็นในรูป รุ่น 28BYJ-48 ใช้ไม่ได้กับ Sketch ที่เป็นตัวอย่างใน Arduino IDE นะครับ คือมันจะหมุน แต่หมุนได้ทิศทางเดียวเท่านั้น
ลองตัวอย่างต่อไปนี้ครับ
จากนั้นก็ต่อ Potentiometer เข้าที่ช่อง A2
เสร็จแล้วลองรัน Sketch นี้ดูนะครับ เราจะเห็นว่า R ปรับค่าได้หรือ Potentometer จะเป็นตัวกำหนดความเร็วและทิศทางการหมุนของ Stepper motor ดังที่แสดงใน Clip นะครับ
วันนี้ขอจบการนำเสนอการทำงานของ Stepper motor กับบอร์ดArduino UNO R3 เพียงเท่านี้นะครับ
อ่านแล้วช่วยกันมาอุดหนุนด้วยนะครับ ทีมงานจะได้มีกำลังใจพัฒนา และ เขียนบทความกันต่อ
*** สามารถติดตามตอนที่ 1 ได้ที่นี่ครับ ตอนที่ 1) ****
*** สามารถติดตามตอนที่ 2 ได้ที่นี่ครับ ตอนที่ 2) ****
*** สามารถติดตามตอนที่ 4 ได้ที่นี่ครับ Arduino and Motor Control : Part 4 (Servo Motor)
โดย Mountain "A"
หน้านี้เป็นสารบัญของบทความที่ปรากฏในเว็บของ Arduitronics.com นะครับ จะขอแบ่งออกเป็นหัวข้อตามกลุ่มของสินค้าในร้านดังต่อไปนี้
หน้าที่เข้าชม | 15,393,408 ครั้ง |
ผู้ชมทั้งหมด | 5,896,486 ครั้ง |
เปิดร้าน | 21 พ.ค. 2556 |
ร้านค้าอัพเดท | 16 ก.ย. 2568 |