การวางตำแหน่งแบบไม่จำกัด: พื้นฐาน Stepper Motor กับ Arduino
Servo จะเล็งไปยังมุมที่กำหนดได้อย่างแม่นยำและหยุด ส่วน DC motor จะหมุนอย่างรวดเร็วแต่ไม่มีความแม่นยำเลย Stepper Motor คือหัวใจสำคัญของ 3D printer และเครื่อง CNC ทั้งหมด เพราะมันให้การหมุนแบบต่อเนื่องไม่มีที่สิ้นสุด พร้อมการเคลื่อนที่ทีละขั้นที่เล็กมากและแม่นยำตามหลักคณิตศาสตร์ โปรเจกต์พื้นฐานนี้จะสำรวจวิธีการใช้งาน 28BYJ-48 ที่พบเห็นได้ทั่วไป

การจัดเฟสของแม่เหล็กไฟฟ้า (ULN2003 Driver)
28BYJ-48 Stepper Motor มีสายไฟห้าเส้น คุณไม่สามารถต่อมันเข้ากับแบตเตอรี่ได้โดยตรง
- ภายในของ motor มีขดลวดแม่เหล็กไฟฟ้าหลายขดแยกกัน จัดเรียงเป็นวงกลม
- Rotor เป็นแม่เหล็กถาวร ในการทำให้ motor หมุนไปทีละขั้นเล็ก ๆ คุณต้องจ่ายพลังงานให้ Coil A จากนั้นปิด แล้วจ่ายพลังงานให้ Coil B ปิด แล้วจ่ายพลังงานให้ Coil C...
- การสลับลำดับที่ซับซ้อนนี้ต้องใช้ ULN2003 Driver Board คุณเชื่อมต่อ Arduino Pins 8, 9, 10 และ 11 เข้ากับ
IN1 - IN4ของ driver
ตรรกะของโค้ด Stepper.h
การเขียนลำดับการสลับ High/Low ด้วยตนเองเป็นเรื่องที่ยุ่งยาก
- คุณรวมไลบรารี
<Stepper.h>ที่มาพร้อมกับระบบ - คุณเริ่มต้น object:
Stepper myStepper(2048, 8, 10, 9, 11);(โปรดทราบว่า Pins 9 และ 10 มักจะสลับกันในการทำงานของซอฟต์แวร์ เนื่องจากวิธีการเดินสายของขดลวดภายใน!) - คำสั่งการทำงาน: คุณไม่ได้บอกมันเป็นมุม คุณบอกมันเป็นจำนวน step ที่แน่นอน
myStepper.setSpeed(10);(10 RPM)myStepper.step(1024);- Arduino จะเริ่มส่ง pulse ผ่านสายไฟทั้งสี่เส้นทันที ขดลวดแม่เหล็กไฟฟ้าจะดึง rotor ผ่านการคลิกแม่เหล็กเล็ก ๆ 1,024 ครั้งอย่างแม่นยำ เนื่องจาก motor มี 2,048 steps ต่อหนึ่งรอบ... คุณเพิ่งสั่งให้มันหมุน 180 องศาได้อย่างไร้ที่ติและแม่นยำ!
ฮาร์ดแวร์ Stepper พื้นฐาน
- Arduino Uno/Nano
- 28BYJ-48 5V Stepper Motor + ULN2003 Driver Board (ชุด Stepper มาตรฐานทองคำสำหรับผู้เริ่มต้น)
- A 5V Breadboard Power Supply Module (ห้ามจ่ายไฟให้ stepper โดยตรงจาก 5V pin ของ Arduino เด็ดขาด! มันจะดึงกระแสไฟที่พุ่งขึ้นสูงอย่างรวดเร็วเกิน 500mA ซึ่งจะทำให้ Uno รีเซ็ตหรือหยุดทำงานแบบสุ่ม!)