- สเต็ปเปอร์มอเตอร์:
- การคำนวณขั้นตอนต่อการปฏิวัติสำหรับ Stepper Motor:
- เหตุใดเราจึงต้องการโมดูลไดรเวอร์สำหรับมอเตอร์ Stepper
- แผนภาพวงจรสำหรับการหมุน Stepper Motor โดยใช้โพเทนชิออมิเตอร์:
- รหัสสำหรับบอร์ด Arduino:
- การทำงาน:
สเต็ปเปอร์มอเตอร์กำลังเข้ามารับตำแหน่งในโลกของอิเล็กทรอนิกส์มากขึ้น เริ่มตั้งแต่กล้องวงจรปิดธรรมดาไปจนถึงเครื่อง CNC ที่ซับซ้อน / Robot Stepper Motors เหล่านี้ถูกใช้เป็นตัวกระตุ้นทุกที่เนื่องจากให้การควบคุมที่แม่นยำ ในการกวดวิชานี้เราจะได้เรียนรู้เกี่ยวกับมอเตอร์กันมากที่สุด / ใช้ได้อย่างถูก28 BYJ48และวิธีการติดต่อกับArduinoใช้โมดูล ULN2003 stepper
ในโครงการที่แล้วเรามีเพียง Interfaced Stepper Motor กับ Arduino ซึ่งคุณสามารถหมุนสเต็ปเปอร์มอเตอร์ได้โดยป้อนมุมการหมุนใน Serial Monitor ของ Arduino ในโครงการนี้เราจะหมุน Stepper Motor โดยใช้โพเทนชิออมิเตอร์และ Arduinoเช่นถ้าคุณหมุนโพเทนชิออมิเตอร์ตามเข็มนาฬิกาจากนั้นสเต็ปเปอร์จะหมุนตามเข็มนาฬิกาและถ้าคุณหมุนโพเทนชิออมิเตอร์ทวนเข็มนาฬิกาก็จะหมุนทวนเข็มนาฬิกา
สเต็ปเปอร์มอเตอร์:
ให้เราดูที่มอเตอร์ 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) เพื่อทำการหมุนเต็มหนึ่งครั้ง
การคำนวณขั้นตอนต่อการปฏิวัติสำหรับ 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โมดูลเป็นคนขับมอเตอร์โมดูลไดรเวอร์มีหลายประเภทและระดับของโมดูลจะเปลี่ยนไปตามประเภทของมอเตอร์ที่ใช้ หลักการหลักสำหรับโมดูลไดรเวอร์ทั้งหมดคือการจ่ายกระแสไฟฟ้าให้เพียงพอสำหรับมอเตอร์ที่จะทำงาน
แผนภาพวงจรสำหรับการหมุน Stepper Motor โดยใช้โพเทนชิออมิเตอร์:
แผนภาพวงจรสำหรับการควบคุม Stepper Motor โดยใช้ Potentiometer และ Arduinoแสดงไว้ด้านบน เราได้ใช้มอเตอร์ Stepper 28BYJ-48 และโมดูลไดรเวอร์ ULN2003 ในการเพิ่มพลังให้กับสี่ขดลวดของสเต็ปเปอร์มอเตอร์เราใช้พินดิจิทัล 8,9,10 และ 11 โมดูลไดรเวอร์ใช้พลังงานจากขา 5V ของบอร์ด Arduino โพเทนชิออมิเตอร์เชื่อมต่อกับ A0 ตามค่าที่เราจะหมุน Stepper motor
แต่ให้จ่ายไฟไดรเวอร์ด้วยแหล่งจ่ายไฟภายนอกเมื่อคุณเชื่อมต่อโหลดบางส่วนเข้ากับมอเตอร์บริภาษ เนื่องจากฉันเพิ่งใช้มอเตอร์เพื่อการสาธิตฉันจึงใช้ราง + 5V ของบอร์ด Arduino อย่าลืมเชื่อมต่อกราวด์ของ Arduino กับกราวด์ของโมดูลไดรเวอร์
รหัสสำหรับบอร์ด 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 ในลักษณะดังกล่าวว่าเราสามารถเปิดมิเตอร์ที่เชื่อมต่อกับขา A0 และการควบคุมทิศทางของมอเตอร์ โปรแกรมที่สมบูรณ์สามารถพบได้ในตอนท้ายของบทแนะนำที่สำคัญสองสามบรรทัดที่อธิบายไว้ด้านล่าง
จำนวนก้าวต่อรอบสำหรับมอเตอร์สเต็ปเปอร์ของเราคำนวณได้เป็น 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 (1);
ในการทำให้มอเตอร์เคลื่อนที่ตามเข็มนาฬิกาหนึ่งขั้นเราสามารถใช้บรรทัดต่อไปนี้
stepper.step (-1);
ในโปรแกรมของเราเราจะอ่านค่าของขาอนาล็อก A0 และเปรียบเทียบกับค่าก่อนหน้า (Pval) ถ้ามันเพิ่มขึ้นเราจะเลื่อน 5 ขั้นตามเข็มนาฬิกาและถ้ามันลดลงเราก็จะเลื่อน 5 ขั้นในทวนเข็มนาฬิกา
potVal = แผนที่ (analogRead (A0), 0,1024,0,500); ถ้า (potVal> Pval) stepper.step (5); ถ้า (potVal
การทำงาน:
เมื่อทำการเชื่อมต่อฮาร์ดแวร์ควรมีลักษณะดังนี้ในภาพด้านล่าง
ตอนนี้อัปโหลดโปรแกรมด้านล่างใน Arduino UNO ของคุณและเปิดจอภาพอนุกรม ตามที่กล่าวไว้ก่อนหน้านี้คุณต้องหมุนมิเตอร์ในการควบคุมการหมุนของมอเตอร์การหมุนตามเข็มนาฬิกาจะทำให้สเต็ปเปอร์มอเตอร์หมุนไปในทิศทางตามเข็มนาฬิกาและในทางกลับกัน
หวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างมัน การทำงานที่สมบูรณ์ของโครงการแสดงอยู่ในวิดีโอด้านล่าง หากคุณมีข้อสงสัยให้โพสต์ไว้ในส่วนความคิดเห็นด้านล่างหรือในฟอรัมของเรา