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

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