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));
}