মূলত এটি একটি Unipolar-Stepper-Motor-Driver । মডিউলটি Unipolar-Stepper-Motor ছাড়াও Solenoids, Relays, DC-Motors, LEDs, Filament lamps ইত্যাদি নিয়ন্ত্রনের কাজে ব্যবহার করা যায়। এছাড়াও এটিকে একটি high power buffers হিসাবেও ব্যবহার করা যেতে পারে ।
Power Pins (VCC-GND) মডিউলটিকে Power-Up করার জন্য লাল রঙের 4-Pin-Male Connector ব্যবহার করা হয়েছে । এই কানেক্টর এর VCC এবং GND পিনে 3V থেকে 20V ব্যবহার করে বোর্ডটিকে চালু করা যাবে । বোর্ড চালু হলে RED LED এর মাধ্যমে বোঝা যাবে । আমি এই Power Pins-কে Arduino-এর 5V পিনের সাথে কানেক্ট করছি । Motor Power (Vin ) যে ডিভাইসটি driver টির মাধ্যমে অপারেট করা হবে, তার ভোল্টের রেটিং অনুযায়ী এই Vin পিনে power দিতে হবে । আমি এখানে 24BYJ-48 মডেলের Stepper-Motor ব্যবহার করেছি । এই মোটরের অপারেটিং ভোল্টেজ 5V । তাই VCC এবং VIN পিনকে আমি Jumper দিয়ে short-circuit করে দিয়েছি। Input Signal (IN1, IN2, IN3, IN4) ইনপুট সিগন্যাল High হলে, Corresponding Output Pin (যেমন: C1, C2, C3, C4 ইত্যাদি) এবং COM পিন এর মধ্যে বিভব-পার্থক্য তৈরী হবে । অথাৎ current এর flow হবে । ফলে এই পিনদ্বয়ের মধ্যে থাকা Load একটিভেট হবে । যেমন Stepper Motor এর ক্ষেত্রে Corresponding coil-টি energized হবে । Output (COM, C1, C2, C3, C4) মডিউলটি থেকে আউটপুট এর জন্য এখানে যথাক্রমে 5-Pin-White-JST এবং 8-Pin-Yellow-Male-Connector এই ২ ধরণের connector ব্যবহার করা হয়েছে । যেখানে 5-Pin-White-JST-Connector-টিতে সরাসরি 24BYJ-48 মডেল এর Stepper Motor প্লাগ-এন্ড-প্লে করা যাবে । অন্য সকল মোটর এর জন্য একজন ব্যবহারকারী সরাসরি 8-Pin-Yellow-Male-Connector-টি ব্যবহার করতে পারবেন ।Connection-Diagram
+5V |
⇐======⇒ |
VCC |
GND |
⇐======⇒ |
GND |
+5V |
⇐======⇒ |
VIN |
8 |
⇐======⇒ |
IN1 |
9 |
⇐======⇒ |
IN2 |
10 |
⇐======⇒ |
IN3 |
11 |
|
IN4 |
#include <AccelStepper.h> // Motor pin definitions: #define motorPin1 2 //IN1 on the Stepper Motor Driver #define motorPin2 3 //IN2 on the Stepper Motor Driver #define motorPin3 4 //IN3 on the Stepper Motor Driver #define motorPin4 5 //IN4 on the Stepper Motor Driver /* * 28BYJ-48 Stepper Motor Technical Specifications: * >> Rated Voltage: 5V DC * >> Number of Phases: 4 * >> Stride Angle: 5.625°/64 * >> Gear ratio is 64:1 (Exactly = 63.68395:1) * >> Approximately 4076 steps per full revolution (in half step mode). * >> Pull in torque: 300 gf.cm * >> Insulated Power: 600VAC/1mA/1s * >> Coil: Unipolar 5 lead coil */ // Define the AccelStepper interface type; 4 wire motor in half step mode: #define MotorInterfaceType 8 // FUNCTION = 0, DRIVER = 1, FULL2WIRE = 2, FULL3WIRE = 3, FULL4WIRE = 4, HALF3WIRE = 6, HALF4WIRE = 8 // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper library with 28BYJ-48 stepper motor: AccelStepper stepper = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4); void setup() { stepper.setMaxSpeed(1000); //Set the maximum steps per second. } void loop() { StepperCW(1000); //StepperCW(motorSpeed); delay(2000); StepperCCW(1000); //StepperCCW(motorSpeed); delay(2000); StepperRevolutionCW(1000, 1); //StepperRevolutionCW(motorSpeed, motorRevolution); delay(2000); StepperRevolutionCCW(1000, 1); //StepperRevolutionCCW(motorSpeed, motorRevolution); delay(2000); } void StepperCW(uint16_t motorSpeed) { stepper.setSpeed(motorSpeed); stepper.runSpeed(); } void StepperCCW(uint16_t motorSpeed) { int16_t _motorSpeed = (motorSpeed * (-1)); stepper.setSpeed(_motorSpeed); stepper.runSpeed(); } void StepperRevolutionCW(uint16_t motorSpeed, uint16_t motorRevolution) { stepper.setCurrentPosition(0); //Set the current position to 0. while (stepper.currentPosition() != (motorRevolution * 4096)) { stepper.setSpeed(motorSpeed); stepper.runSpeed(); } } void StepperRevolutionCCW(uint16_t motorSpeed, uint16_t motorRevolution) { int16_t _motorSpeed = (motorSpeed * (-1)); int16_t _motorRevolution = ((motorRevolution * 4096) * (-1)); stepper.setCurrentPosition(0); //Set the current position to 0. while (stepper.currentPosition() != _motorRevolution) { stepper.setSpeed(_motorSpeed); stepper.runSpeed(); } }ডাউনলোডকৃত AccelStepper-এর ZIP ফাইলটির লোকেশন (directory) দেখিয়ে দিন । এবার প্রোগ্রামটি Arduino UNO-তে আপলোড করুন । ব্যাস! কাজ শেষ । Let’s Enjoy !