ULN2003 and Arduino UNO Wiring and Simple Example Code

D

Daniel Zhang

Last updated on Jul 14, 2026

Below is the wiring diagram for the ULN2003 and Arduino UNO.

Simple example code:

#include <Arduino.h>
#define IN1 5 // Pin assignment
#define IN2 4
#define IN3 3
#define IN4 2
void setup()
{
 pinMode(IN1,OUTPUT); // Set pin as output
 pinMode(IN2,OUTPUT);
 pinMode(IN3,OUTPUT);
 pinMode(IN4,OUTPUT);
}
void loop()
{
 Phase_A(); // Energize phase A
 delay(2); // Step delay in ms. Reduce with caution—too short may cause missed steps.
 Phase_B(); // Energize phase B
 delay(2);
 Phase_C(); // Energize phase C
 delay(2);
 Phase_D(); // Energize phase D
 delay(2);
}
void Phase_A()
{
 digitalWrite(IN1,HIGH); // IN1 pin high level
 digitalWrite(IN2,LOW);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,LOW);
}
void Phase_B()
{
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,HIGH); // IN2 pin high level
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,LOW);
}
void Phase_C()
{
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3,HIGH); // IN3 pin high level
 digitalWrite(IN4,LOW);
}
void Phase_D()
{
 digitalWrite(IN1,LOW);
 digitalWrite(IN2,LOW);
 digitalWrite(IN3,LOW);
 digitalWrite(IN4,HIGH); // IN4 pin high level
}