** บทความและโครงงานนี้เป็นความคิดเห็นของผู้เขียนเอง ซึ่งผู้อ่านไม่จำเป็นต้องเห็นด้วยเสมอไปครับ
หาก มีข้อเสนอแนะ หรือพบข้อความใดๆ ผิก กรุณาแจ้งมายังผู้เขียนด้วยครับ จะได้ทำการแก้ไขข้อมุลให้
ถูกต้อง ครับ
กลับหน้าหลัก บทความ
 

Arduino กับ การขับสเต็ปเปอร์มอเอตร์ เบื้องต้น

สเต็ปเปอร์มอเตอร์ (Stepper Motor) เป็นมอเตอร์อีกแบบหนึ่งที่นิยมนำมาใช้งานกันอย่างแพร่หลาย ความสามารถของสเต็ปเปอร์มอเตอร์คือ การทำงานนั้นจะทำงานเป็นสเต็ป มีแรงบิดสูง ดังนั้นจะเห็นการใช้งานสเต็ปเปอร์มอเตอร์ในงานที่ต้องการความเม่นยำในตำแหน่งและมุมในการหมุน เช่น ในเครื่องพิมพ์ (เครื่องปริ้นเตอร์แบบอินเจ็คทั่วไป) จะมีสเต็ปเปอร์มอเตอร์ใช้ในการเลื่อนตำแหน่งของหัวพิมพ์ หรือ ในหุ่นยนต์อุตสาหกรรมที่ต้องการความแม่นยำในการหยิบจับ ไม่เว้นแม้แต่หุ่นยนต์เคลื่อนที่ขนาดเล็กบางแบบก็ใช้มอเตอร์แบบนี้เป็นตัวขับเคลื่อนก็ยังคงมีให้เห็นเสมอ


สเต็ปเปอร์มอเตอร์


การขับ สเต็ปเปอร์มอเตอร์

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


การขับ สเต็ปเปอร์มอเตอร์


หลักการทำงานของสเต็ปเปอร์มอเตอร์
สเต็ปเปอร์มอเตอร์ที่นิยมใช้กันมากจะเป็นแบบยูนิโพล่าร์ ซึ่งภายในตัวสเต็ปเปอร์มอเตอร์จะประกอบด้วยชุดขดลวดจำนวน 4 ขด ซึ่งแต่ละขดอาจจะเรียกเป็นเฟสก็ได้ ดังรูป โดยปกติแล้ว สเต็ปเปอร์มอเตอร์จะมีสาย 5 เส้น หรือ มากกว่านั้น โดย 4 เส้นจะเป็นสายของแต่ละขดลวด และสายที่ 5 จะเป็นสายคอมมอน หรือสายรวม


การต่อขดลวดภายในของสเต็ปเปอร์มอเตอร์


เมื่อดูจากภาพภายในการต่อขดลวด ซึ่งจะมีอยู่ด้วยกันทั้งหมด 4 ขด เรียงลำดับกันไป เมื่อต้องการให้สเต็ปเปอร์ทำงานนั้นจะต้องป้อนไฟเข้าที่ขดใดขดหนึ่งก่อน(โดยการป้อนเป็นลักษณะสัญญาณพลันเข้าไป) จากนั้นก็ป้อนขดทัดไป โดยจะต้องเรียงลำดับให้ถูกต้องด้วย

องศาการทำงาน
ในตัวมอเตอร์จะบอกองศาที่หมุนได้ในแต่ละสเต็ป และแรงดันใช้งานของมอเตอร์นั้นๆ ดังนั้นในการใช้งานจะต้องดูด้วยว่า มอเตอร์นั้นทำงานกี่องศา และเราก็จะสามารถคำนวณมุมที่จะให้มอเจอร์หมุนไปได้


รายละเอียดบนตัวสเต็ปเปอร์มอเตอร์


การควบคุมการหมุน
ในการควบคุมการหมุนของสเต็ปมอเตอร์นั้นที่นิยมใช้คือ การควบคุมการหมุนแบบ 1 เฟส
การควบคุมการหมุนแบบ 2 เฟส
การควบคุมการหมุนแบบ ฮาล์ฟสเต็ป

การควบคุมการหมุนแบบ 1 เฟส
การควบคุมแบบนี้จะเป็นการควบคุมการหมุนแบบง่ายที่สุดหลักการทำงานไม่ซับซ้อน โดยจะมีการจ่ายสัญญาณพัลส์ให้กับสเต็ปเปอร์มอเตอร์ทีละขด หรือ ทีละเฟส เรียงกันแบบต่อเนื่อง โดยจะส่งตามลำดับดังนี้


ตาราง แสดงการทำงานของขดลวดในแต่ละขด


จากตารางดังกล่าว จะเห็นว่ามีการเรียงลำดับการทำงานแบบต่อเนื่องไปเรื่อยๆ ซึ่งการควบคุมแบบนี้จะง่ายแต่แรงบิดจะได้น้อยกว่า ซึ่งในการทดสอบจะให้วิธีการควบคุมแบบนี้


การทำงานของพัลส์การทำงานแบบ 1 เฟส


หากต้องการให้มอเตอร์หมุนกลับทางก็สามารรถทำได้โดยเรียงลำดับแบบนี้


ตาราง แสดงการทำงานของขดลวดในแต่ละขด แบบหมุนกลับทิศทาง


วงจรและดารทดสอบ


วงจรขับสเต็ปเปอร์มอเตอร์



รูปการทดสอบการทำงาน


จะให้ สเต็ปมอเตอร์หมุนไปเรื่อยๆโดยใช้วิธี การควบคุมการหมุนแบบ 1 เฟส

int P1 = 10;
int P2 = 11;
int P3 = 12;
int P4 = 13;

void setup()
{
pinMode(P1,OUTPUT);
pinMode(P2,OUTPUT);
pinMode(P3,OUTPUT);
pinMode(P4,OUTPUT);

}
void loop()
{
{
digitalWrite(P1,HIGH);
digitalWrite(P2,LOW);
digitalWrite(P3,LOW);
digitalWrite(P4,LOW);
delay(50);
digitalWrite(P1,LOW);
digitalWrite(P2,HIGH);
digitalWrite(P3,LOW);
digitalWrite(P4,LOW);
delay(50);
digitalWrite(P1,LOW);
digitalWrite(P2,LOW);
digitalWrite(P3,HIGH);
digitalWrite(P4,LOW);
delay(50);
digitalWrite(P1,LOW);
digitalWrite(P2,LOW);
digitalWrite(P3,LOW);
digitalWrite(P4,HIGH);
delay(50);
}
}


จะสามารรถเปลี่ยนความเร็วของมอเตอร์ได้โดยการกำหนดความถี่ต่างๆกันไปครับ มอเตอร์ก็จะหมุนเร็ว ช้าต่างกันไป



การควบคุมแบบอื่นคือ การควบคุมการหมุนแบบ 2 เฟส และ การควบคุมการหมุนแบบ ฮาล์ฟสเต็ป จะมีการกำหนดสัญญาณที่ป้อนเข้ามอเตอร์ดังต่อปนี้


การควบคุมการหมุนแบบ 2 เฟส





การควบคุมการหมุนแบบ ฮาล์ฟสเต็ป


ลองเขียนดูนะครับว่าผลที่ได้จะแตกต่างกันอย่างไรบ้าง


เขียนเมื่อ 29 พ.ค. 2556