- สเต็ปเปอร์มอเตอร์:
- การคำนวณขั้นตอนต่อการปฏิวัติสำหรับ Stepper Motor:
- เหตุใดเราจึงต้องการโมดูลไดรเวอร์สำหรับมอเตอร์ Stepper
- แผนภาพวงจรควบคุมตำแหน่ง Arduino Stepper Motor และคำอธิบาย:
- รหัสสำหรับบอร์ด Arduino:
- การทำงานของ Stepper Motor กับ Arduino:
สเต็ปเปอร์มอเตอร์กำลังเข้ามารับตำแหน่งในโลกของอิเล็กทรอนิกส์มากขึ้น เริ่มตั้งแต่กล้องวงจรปิดธรรมดาไปจนถึงเครื่อง CNC ที่ซับซ้อน / หุ่นยนต์สเต็ปเปอร์มอเตอร์เหล่านี้ถูกใช้เป็นตัวกระตุ้นทุกที่เนื่องจากให้การควบคุมที่แม่นยำ Stepper Motor เป็นมอเตอร์ซิงโครนัสแบบไม่ใช้แปรงถ่านซึ่งทำให้การหมุนเต็มรูปแบบเป็นขั้นตอนต่างๆ ในการนี้Arduino กวดวิชามอเตอร์ที่เราจะได้เรียนรู้เกี่ยวกับมอเตอร์พร้อมใช้งานมากที่สุด28 BYJ48และวิธีการติดต่อกับArduinoใช้ULN2003 โมดูลมอเตอร์
สเต็ปเปอร์มอเตอร์:
ให้เราดูที่มอเตอร์ Stepper 28-BYJ48นี้
โอเคแตกต่างจากมอเตอร์กระแสตรงธรรมดาตัวนี้มีสายไฟห้าสีที่มีสีแฟนซีทั้งหมดออกมาและทำไมถึงเป็นเช่นนั้น? เพื่อให้เข้าใจสิ่งนี้ก่อนอื่นเราควรรู้ว่าสเต็ปเปอร์ทำงานอย่างไรและความพิเศษของมันคืออะไร แรกของทุกsteppers มอเตอร์ไม่หมุน, พวกเขาก้าวและเพื่อให้พวกเขายังเป็นที่รู้จักมอเตอร์ขั้นตอนความหมายพวกเขาจะก้าวไปทีละก้าวเท่านั้น มอเตอร์เหล่านี้มีลำดับของขดลวดอยู่ในตัวและขดลวดเหล่านี้จะต้องได้รับการกระตุ้นในลักษณะเฉพาะเพื่อให้มอเตอร์หมุน เมื่อขดลวดแต่ละตัวกำลังขับเคลื่อนมอเตอร์จะก้าวไปอีกขั้นและลำดับของการเพิ่มพลังจะทำให้มอเตอร์ทำตามขั้นตอนต่อเนื่องจึงทำให้หมุนได้ ให้เราดูที่ขดลวดที่อยู่ภายในมอเตอร์เพื่อให้ทราบว่าสายไฟเหล่านี้มาจากไหน
อย่างที่คุณเห็นมอเตอร์มีการจัดเรียงขดลวด Unipolar 5-lead มีสี่ขดลวดที่ต้องได้รับการกระตุ้นในลำดับเฉพาะ สายไฟสีแดงจะมาพร้อมกับ + 5V และอีกสี่สายที่เหลือจะถูกดึงลงกราวด์เพื่อเรียกขดลวดตามลำดับ เราใช้ไมโครคอนโทรลเลอร์เช่น Arduino กระตุ้นขดลวดเหล่านี้ตามลำดับที่กำหนดและทำให้มอเตอร์ทำงานได้ตามจำนวนขั้นตอนที่ต้องการ
แล้วทำไมมอเตอร์นี้ถึงเรียกว่า28-BYJ48 ? อย่างจริงจัง!!! ฉันไม่รู้ ไม่มีเหตุผลทางเทคนิคสำหรับการตั้งชื่อมอเตอร์นี้ บางทีเราควรเจาะลึกลงไป ให้เราดูข้อมูลทางเทคนิคที่สำคัญบางส่วนที่ได้รับจากแผ่นข้อมูลของมอเตอร์นี้ในภาพด้านล่าง
นั่นคือส่วนหัวที่เต็มไปด้วยข้อมูล แต่เราต้องดูข้อมูลสำคัญบางอย่างเพื่อให้ทราบว่าเราใช้สเต็ปเปอร์ประเภทใดเพื่อให้เราสามารถตั้งโปรแกรมได้อย่างมีประสิทธิภาพ ก่อนอื่นเรารู้ว่ามันเป็นมอเตอร์ 5V Stepper เนื่องจากเรารวมพลังสายสีแดงด้วย 5V จากนั้นเราก็รู้ว่ามันเป็นมอเตอร์สเต็ปสี่เฟสเนื่องจากมีขดลวดสี่ขดอยู่ในนั้น ตอนนี้อัตราทดเกียร์จะเป็น 1:64 ซึ่งหมายความว่าเพลาที่คุณเห็นภายนอกจะทำให้การหมุนสมบูรณ์เพียงครั้งเดียวก็ต่อเมื่อมอเตอร์ภายในหมุนได้ 64 ครั้ง เนื่องจากเกียร์ที่เชื่อมต่อระหว่างมอเตอร์และเพลาส่งออกเกียร์เหล่านี้ช่วยในการเพิ่มแรงบิด
ข้อมูลสำคัญอีกอย่างที่ต้องสังเกตคือStride Angle: 5.625 ° / 64 ซึ่งหมายความว่ามอเตอร์เมื่อทำงานในลำดับ 8 ขั้นตอนจะเคลื่อนที่ไป 5.625 องศาสำหรับแต่ละขั้นตอนและจะใช้เวลา 64 ขั้นตอน (5.625 * 64 = 360) เพื่อทำการหมุนเต็มหนึ่งครั้ง คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของสเต็ปเปอร์มอเตอร์กับ ARM LPC2148, ATMega16 Microcontroller, MSP430
การคำนวณขั้นตอนต่อการปฏิวัติสำหรับ Stepper Motor:
สิ่งสำคัญคือต้องรู้วิธีคำนวณขั้นตอนต่อการปฏิวัติสำหรับมอเตอร์สเต็ปเปอร์ของคุณเพราะจากนั้นคุณจะสามารถตั้งโปรแกรมได้อย่างมีประสิทธิภาพ
ใน Arduino เราจะใช้งานมอเตอร์ในลำดับ 4 ขั้นตอนดังนั้นมุมก้าวจะเป็น 11.25 °เนื่องจากเป็น 5.625 ° (ระบุในแผ่นข้อมูล) สำหรับลำดับ 8 ขั้นตอนจะเป็น 11.25 ° (5.625 * 2 = 11.25)
ขั้นตอนต่อการปฏิวัติ = มุม 360 / ขั้นตอน
ที่นี่ 360 / 11.25 = 32 ขั้นตอนต่อการปฏิวัติ
เหตุใดเราจึงต้องการโมดูลไดรเวอร์สำหรับมอเตอร์ Stepper
สเต็ปเปอร์มอเตอร์ส่วนใหญ่จะทำงานด้วยความช่วยเหลือของโมดูลไดรเวอร์เท่านั้น เนื่องจากโมดูลคอนโทรลเลอร์ (ในกรณีของเราคือ Arduino) ไม่สามารถจ่ายกระแสไฟฟ้าได้เพียงพอจากพิน I / O เพื่อให้มอเตอร์ทำงาน ดังนั้นเราจะใช้โมดูลภายนอกเช่นULN2003โมดูลเป็นคนขับมอเตอร์โมดูลไดรเวอร์มีหลายประเภทและระดับของโมดูลจะเปลี่ยนไปตามประเภทของมอเตอร์ที่ใช้ หลักการหลักสำหรับโมดูลไดรเวอร์ทั้งหมดคือการจ่ายกระแสไฟฟ้าให้เพียงพอสำหรับมอเตอร์ที่จะทำงาน
แผนภาพวงจรควบคุมตำแหน่ง Arduino Stepper Motor และคำอธิบาย:
แผนภาพวงจรสำหรับโครงการควบคุมมอเตอร์ arduino stepperแสดงไว้ด้านบน เราได้ใช้มอเตอร์ Stepper 28BYJ-48 และโมดูลไดรเวอร์ ULN2003 ในการเพิ่มพลังให้กับสี่ขดลวดของสเต็ปเปอร์มอเตอร์เราใช้พินดิจิทัล 8,9,10 และ 11 โมดูลไดรเวอร์ใช้พลังงานจากขา 5V ของบอร์ด Arduino
แต่ให้จ่ายไฟไดรเวอร์ด้วยแหล่งจ่ายไฟภายนอกเมื่อคุณเชื่อมต่อโหลดบางส่วนเข้ากับมอเตอร์บริภาษ เนื่องจากฉันเพิ่งใช้มอเตอร์เพื่อการสาธิตฉันจึงใช้ราง + 5V ของบอร์ด Arduino อย่าลืมเชื่อมต่อกราวด์ของ Arduino กับกราวด์ของโมดูล Diver
รหัสสำหรับบอร์ด Arduino:
ก่อนที่เราจะเริ่มเขียนโปรแกรมด้วย Arduino ขอให้เราเข้าใจสิ่งที่ควรเกิดขึ้นจริงภายในโปรแกรม ดังที่ได้กล่าวไว้ก่อนหน้านี้เราจะใช้วิธีการลำดับ 4 ขั้นตอนดังนั้นเราจะมีสี่ขั้นตอนในการดำเนินการเพื่อทำการหมุนหนึ่งครั้ง
ขั้นตอน |
ปักหมุด |
คอยส์เพิ่มพลัง |
ขั้นตอนที่ 1 |
8 และ 9 |
A และ B |
ขั้นตอนที่ 2 |
9 และ 10 |
B และ C |
ขั้นตอนที่ 3 |
10 และ 11 |
C และ D |
ขั้นตอนที่ 4 |
11 และ 8 |
D และ A |
โมดูลไดรเวอร์จะมี LED สี่ดวงซึ่งเราสามารถตรวจสอบได้ว่าขดลวดใดกำลังจ่ายไฟอยู่ในช่วงเวลาใดเวลาหนึ่ง วิดีโอที่แสดงลำดับการเพิ่มพลังสามารถพบได้ในตอนท้ายของบทช่วยสอนนี้
ในบทช่วยสอนนี้เราจะเขียนรหัสมอเตอร์ arduino stepperและสำหรับสิ่งนั้นเราจะตั้ง โปรแกรม Arduinoในลักษณะที่เราสามารถป้อนจำนวนขั้นตอนที่จะดำเนินการโดยมอเตอร์สเต็ปเปอร์ผ่านจอภาพอนุกรมของ Arduino โปรแกรมที่สมบูรณ์สามารถพบได้ในตอนท้ายของบทแนะนำที่สำคัญสองสามบรรทัดที่อธิบายไว้ด้านล่าง
จำนวนก้าวต่อรอบสำหรับมอเตอร์สเต็ปเปอร์ของเราคำนวณได้เป็น 32 ดังนั้นให้ป้อนตามที่แสดงในบรรทัดด้านล่าง
# กำหนดขั้นตอนที่ 32
ถัดไปคุณต้องสร้างอินสแตนซ์ที่เราระบุพินที่เราเชื่อมต่อกับ Stepper motor
สเต็ปเปอร์ (STEPS, 8, 10, 9, 11);
หมายเหตุ:หมายเลขพินไม่เป็นระเบียบเป็น 8,10,9,11 ตามวัตถุประสงค์ คุณต้องทำตามรูปแบบเดียวกันแม้ว่าคุณจะเปลี่ยนหมุดที่มอเตอร์ของคุณเชื่อมต่ออยู่ก็ตาม
เนื่องจากเราใช้ Arduino stepper library เราจึงสามารถตั้งค่าความเร็วของมอเตอร์ได้โดยใช้บรรทัดด้านล่าง ความเร็วสามารถอยู่ระหว่าง 0 ถึง 200 สำหรับมอเตอร์สเต็ปเปอร์ 28-BYJ48
stepper.setSpeed (200);
ตอนนี้เพื่อให้มอเตอร์เคลื่อนที่ไปอีกขั้นหนึ่งเราสามารถใช้บรรทัดต่อไปนี้
stepper.step (วาล);
จำนวนขั้นตอนที่จะย้ายจะถูกกำหนดโดยตัวแปร“ val” เนื่องจากเรามี 32 สเต็ปและ 64 เป็นอัตราทดเกียร์เราจึงต้องเคลื่อนที่ 2048 (32 * 64 = 2048) เพื่อให้หมุนหนึ่งครั้ง
ผู้ใช้สามารถป้อนค่าของตัวแปร“ val” ได้โดยใช้มอนิเตอร์แบบอนุกรม
การทำงานของ Stepper Motor กับ Arduino:
เมื่อทำการเชื่อมต่อฮาร์ดแวร์ควรมีลักษณะดังนี้ในภาพด้านล่าง
ตอนนี้อัปโหลดโปรแกรมด้านล่างใน Arduino UNO ของคุณและเปิดจอภาพอนุกรม ตามที่กล่าวไว้ก่อนหน้านี้เราจะต้องทำ 2048 ขั้นตอนเพื่อให้การหมุนหนึ่งครั้งสมบูรณ์ดังนั้นเมื่อเราเข้าสู่ปี 2048 มอเตอร์จะทำการหมุนหนึ่งครั้งในทิศทางตามเข็มนาฬิกาโดยทำ 2048 ขั้นตอน หากต้องการหมุนทวนเข็มนาฬิกาให้ป้อนตัวเลขที่มีเครื่องหมาย "-" ลบ ดังนั้นการป้อน -1024 จะทำให้มอเตอร์หมุนไปครึ่งทางในทิศทางที่ชาญฉลาดต่อต้านนาฬิกา คุณสามารถป้อนค่าที่ต้องการเช่นการป้อน 1 จะทำให้มอเตอร์ดำเนินการเพียงขั้นตอนเดียว
หวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างมัน การทำงานที่สมบูรณ์ของโครงการแสดงอยู่ในวิดีโอด้านล่าง หากคุณมีข้อสงสัยให้โพสต์ไว้ในส่วนความคิดเห็นด้านล่างของเราในฟอรัมของเรา