5V Stepper Motor with ULN2003 Driver Board Set
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)); }