Description
This set is a perfect choice for building you own 3D printer or CNC machine. The Driver board could function as a driver for other devices as well, as listed below in the ” ULN2003 Chip Features”. It’s is pretty self-explanatory that buying this set would be a very wise choice.
Stepper Motor Features
Rated voltage : 5VDC Number of Phase 4 Speed Variation Ratio 1/64 Stride Angle 5.625° /64 Frequency 100Hz DC resistance 50Ω±7%(25℃) Idle In-traction Frequency > 600Hz Idle Out-traction Frequency > 1000Hz In-traction Torque >34.3mN.m(120Hz) Self-positioning Torque >34.3mN.m Friction torque 600-1200 gf.cm Pull in torque 300 gf.cm Insulated resistance >10MΩ(500V) Insulated electricity power 600VAC/1mA/1s Insulation grade A Rise in Temperature <40K(120Hz) Noise <35dB(120Hz,No load,10cm) Model 28BYJ-48 – 5V
ULN2003 Chip Features
1 Features • 500-mA-Rated Collector Current (Single Output) • High-Voltage Outputs: 50 V • Output Clamp Diodes • Inputs Compatible With Various Types of Logic • Relay-Driver Applications 2 Applications • Relay Drivers • Stepper and DC Brushed Motor Drivers • Lamp Drivers • Display Drivers (LED and Gas Discharge) • Line Drivers • Logic Buffers
Diagram and Sketch
Code
//declare variables for the motor pins int motorPin1 = 8; //pin 1N1 int motorPin2 = 9; //pin 1N2 int motorPin3 = 10; //pin 1N3 int motorPin4 = 11 //pin 1N4 int motorSpeed = 1200; //variable to set stepper speed int count = 0; // count of steps made int countsperrev = 512; // number of steps per full revolution int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001}; ////////////////////////////////////////////////////////////////////////////// void setup() { //declare the motor pins as outputs pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); Serial.begin(9600); } ////////////////////////////////////////////////////////////////////////////// void loop(){ if(count < countsperrev ) clockwise(); else if (count == countsperrev * 2) count = 0; else anticlockwise(); count++; } ////////////////////////////////////////////////////////////////////////////// //set pins to ULN2003 high in sequence from 1 to 4 //delay "motorSpeed" between each pin setting (to determine speed) void anticlockwise() { for(int i = 0; i < 8; i++) { setOutput(i); delayMicroseconds(motorSpeed); } } void clockwise() { for(int i = 7; i >= 0; i--) { setOutput(i); delayMicroseconds(motorSpeed); } } void setOutput(int out) { digitalWrite(motorPin1, bitRead(lookup[out], 0)); digitalWrite(motorPin2, bitRead(lookup[out], 1)); digitalWrite(motorPin3, bitRead(lookup[out], 2)); digitalWrite(motorPin4, bitRead(lookup[out], 3)); }
Tiaan Herbst (verified owner) –
Very good value for money. Working well as a direct drive also with good precision without the need of an extra gear configuration. Extremely happy with this product and its performance.