ประสบการณ์ เรื่อง การขับ Stepping Motor

จากประสบการณ์ จากการทำงาน  หลายคน สามารถสร้าง เครื่องแกะสลัก มินิซีเอ็นซี (MiniCNC) 
ซีเอ็นซี เร้าเตอร์  จะใช้ บอลสกูร (Ball screw) หรือ ฟีดสกูร (Feed screw) สายพาน (Belt) หรือ ระบบเฟือง  จะขับด้วย Step motor (สเตปมอเตอร์) งบสูงหน่อยจัด Servo motor (เซอร์โว มอเตอร์) ไป.
แต่พอ จะปรับแต่ง ,แก้ปัญหาการขับมอเตอร์ ทำไงดีล่ะ . เรามาย้อนเรื่องพื้นฐาน เรื่องการขับ stepping motor ซักนิดนะครับ. ถ้างบพอ จะจัด มอเตอร์ใหม่ ไม่ว่ากัน ถามเซลล์ (คนขาย) ก็พอได้. แต่ถามบ่อยๆ ก็เห็นใจ คุณเซลล์.

การออกแบบการขับ Motor เช่น Step motor, Servo Motor หรือ แม้แต่กับ spindle motor หรือ หัวกัด สปินเดิล นั่นแหละ 
จะมีลักษณะการใช้งานที่แตกต่างกัน ดังนั้นเรามีความจำเป็นต้องศึกษา ให้เข้าใจ เพื่อใช้งานได้อย่างเหมาะสม 
ยกตัวอย่างคำถาม น้องนักศึกษา ที่ทำโปรเจค นะครับ


Q .พี่ครับขอคำปรึกษาเรื่องวิธีปรับแต่งการควบคุมสเต็ปมอเตอร์หน่อยครับ
โดยมีปัญหา คือ
1.สเต็ปมอเตอร์เหมือนไม่มีกำลังขับ
2.เกิดความร้อนที่ module L298N
จากครั้งแรกที่ได้นำเครื่องไปให้พี่ดูแล้วเลยอยากขอคำแนะนำสำหรับการปรับแต่งหรือเปลี่ยนอะไร
ได้บ้างเพื่อแก้ไขปัญหาดังกล่าวครับ
รบกวนด้วยครับ
มีปัญหา คือ

1.สเต็ปมอเตอร์เหมือนไม่มีกำลังขับ (โดยมีการทดสอบคือเมื่อระบบหมุน พร้อมลูกกลิ้งสามารถรันได้อยู่ที่40รอบต่อนาทีเท่านั้นเอง พอมีการหมุนลูกกลิ้งพร้อมสารเคมีเกิดการติดขัดไม่หมุนครับ)

2.เกิดความร้อนที่ module L298n (ในระหว่างการทำงานมีอุณภูมิสูง ถึง80-90องศาเซลเซียสครับ)

A. การขับ แบบ ลำดับ BIT A,B,C,D มอเตอร์หมุนได้ แน่นอน แต่จะไม่มีกำลัง หากต้องการใช้ L298 โมดูลตัวนี้มีทางแก้ ดังนี้


1.1 สั่งขับ bit แบบเดิม แต่ให้มี PWM ทุก BIT      
1.2 สร้าง PWM ภายนอก แล้วต่อกับขา Enable ของ Module l298
1.3 เขียนคำสั่ง ควบคุมใหม่ โดยสั่งเป็น Pulse Direction มาขับวงจรใหม่เช่น L297 + L298 , A4988
link A4988

L297 + L298


A. สังเกตให้ดีนะ ที่ขา sens a,b ของ l298 จะมีการวัด feedback มาที่ ขา 13,14 ของ l297 อันนี้แหละตัว สร้าง แรงบิดครับ หาอ่านจาก l297 datasheet ตาม link นี้ได้ 
แหล่งข้อมูล
การควบคุมแบบ PWM จะมาแนะนำให้เพิ่มเติมครับ พอดีติดงานอยู่ หากมี ข้อสอบถามก็ถามมาได้เลย

Q. พี่ครับที่ผมเข้าใจในการตอบของพี่ คือ พี่ตอบมาเป็น 3 วิธีการแก้ไขถูกต้องไหมครับ
1. ผมจะสร้าง PWM ในทุก bit ได้อย่างไรครับ
2. Module l298 ที่ใช้ ผมต่อจัมเปอร์ช็อตอยู่(ตามที่โรงงานตั้งไว้) มันมีทั้ง EnA และ EnB ต้องสร้าง PWM สองอันใช่ไหมครับ
3. คู่ l297+l298 เคยลองดูแล้ว ได้ผลไม่ต่างกับ ใช้ 4 bit บน l298ตัวเดียว แต่ก็ไม่แน่ใจว่าทำได้ถูกต้องรึเปล่า
ถ้าสองข้อแรกทำงานได้ดีก็น่าสนใจเพราะใช้ชิพแค่ตัวเดียว
รูปหนึ่ง และสอง PWM ต้องมีการ shift เฟส รึเปล่า ถ้ามีต้องทำยังไงครับ
รูปที่สาม A4988 น่าสน ควรเปลี่ยนมาใช้ตัวนี้เลยไหมครับ
รูปที่สี่ l297+l298 module ที่ใช้ไม่พอร์ทขา sen มาให้ เท่าที่ดู sens a ลง GND และ sens b ต่อลอยอยู่ (ไม่รู้ว่า PCB มีมากกว่าสองเลเยอร์รึเปล่า)

A. รูป ที่1 หากใช้ l297 และ l298 Module ที่มีอยู่แล้ว ต้องทำการตัดใต้ PCB แล้วต่อ R sens ครับ
การสร้าง pwm ในทุก bit ต้องดู Spec cpu หากพอมีเหลือ สัก bit ให้ใช้ AND gate ช่วย เช่น เบอร์ 74HC08
ถ้ากระแสไม่เกิน 2 amp A4988 ดีกว่าครับ ใช้ง่าย ความละเอียดปรับ ได้ เป็น microstep ต้องมี heatsink ด้วยครับ
ความรู้เรื่อง PWM ดูได้ตามนี้ครับ
การ Modify Module l298 ใช้กับ L297 ทำการทดสอบแล้วก็ให้ กำลังเป็นที่น่าพอใจ


Q. 1.รูปการ modify module l298 กับ l297 ในรูป ที่มี R ผมอยากทราบว่าเอาไว้ทำอะไร
 ต่อตรงไหนครับ
    2.A4988 ผมสามารถต่อวงจร ตามรูปข้างบนได้ เลยหรอครับ เพราะขาของมอเตอร์ที่ใช้มันเกิน 
อยู่อะครับ

A.ต้องเขียนโปรแกรมใหม่  เป็นการ ส่ง Pulse และ Direction ให้กับ Drivers Board
 หากใช้ แบบเดิม แนะนำให้สร้าง PWM จากวงจรใหม่ครับใช้ SG3524 ก็น่าจะได้เพราะเคยใช้มาแล้ว





รูป การ Modify Board L298N





Q. กำลังคิดจะใช้อยู่เหมือนกันนะ ตัว SG3524 เนื่องจากจะต้อง ใช้ในบาง Application

ขอบคุณครับสำหรับข้อมูล จากที่พี่ได้ส่ง ลิ้งค์ข้อมูลมา ผมว่า A4988 น่าจะสะดวกและเหมาะ สม เดี๋ยวผมจะหา A4988 มาลองต่อกับมอเตอร์ตัวปัจจุบันดู (เป็น unipolar) 

อ่านดูใน FAQ ของเวปที่พี่ส่ง มา สามารถต่อกับ unipolar ได้ โดยไม่ต่อขากลาง (ใช้เป็น bipolar) 
พี่มีคำแนะนำเพิ่มเติมในการต่อใช้งานไหมครับ

A.พยายามค้นหาแล้วระหว่างการค้นคว้าเราจะได้ประสบการณ์อย่างอื่นเเพิ่มเติม



Q.ขอบคุณมากครับพี่สุภัคสำหรับคำแนะนำต่าง ๆ ระหว่างที่รอ A4988 สายรุ้งกำลังลอง ต่อ R sens ระหว่าง L297 กับ L298 อยู่ เดี๋ยวพรุ่งนี้คงได้เห็นครับ

A.อย่าลืมดูตรงนี้นะครับ




แล้วก็การปรับ V ref ให้ดูจาก Data sheet ขณะปรับไม่ควรต่อ load (motor)
หากเป็นไปได้แนะนำให้ ปรับปรุง คาบเวลา การ on off motor on time ไม่ควรเกิน 10 % จะได้ แรงบิดที่สูง ทดลองดูนะครับหลาย ๆค่า อันนี้เป็นประสบการณ์นะครับ ต้องทดลอง อ้างอิง
Q. ขอบคุณครับ เดี๋ยวสายรุ้งทดลองแล้วจะอัพเดท ครับ

Q. พี่ครับผมขอคำแนะนำในการเขียนโปรแกรมที่เป็น pulse direction หน่อยครับ

A. ตาม Link นี้ครับ
ตัวอย่างการขับ Easy Drivers www.schmalzhaus.com/EasyDriver/
ดูเพิ่มเติม จาก ที่นี่ forum.arduino.cc/index.php?topic=52142.0
ตัวอย่างการเขียนโปรแกรม แบบ Pulse Direction สำหรับ Arduino
ตาม link นี้ครับ


ความคิดเห็น