5V Stepper Motor with ULN2003 Driver Board Set.
This ULN2003 Driver Board is designed to operate small stepper motors at voltages between 5V and 12V, at a maximum current of 500mA. It is Arduino compatible and is typically used with Arduino UNO boards, but often requires a separate power supply to avoid damaging the Arduino board.
This set is a perfect choice for building your 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 is pretty self-explanatory that buying this set would be a very wise choice.
5V Stepper Motor Specification:
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
The rise in Temperature <40K(120Hz)
Noise <35dB(120Hz,No load,10cm)
Model 28BYJ-48 – 5V
Data on Motor: PDF stepper1
ULN2003 Driver Board Set Feature:
• 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
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)); }