

The ULN2003A, manufactured by Texas Instruments, is a high-voltage, high-current Darlington transistor array. It consists of seven NPN Darlington pairs, each capable of driving high-power loads such as relays, lamps, stepper motors, and other inductive or resistive devices. The component is designed to interface low-power digital circuits (e.g., microcontrollers) with high-power devices, making it a versatile and widely used component in electronics.








The ULN2003A is typically available in a 16-pin DIP or SOIC package. The pinout is as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1-7 | Input 1-7 | Logic inputs for channels 1 to 7. Connect to the control signals (e.g., MCU). |
| 8 | GND | Ground pin. Connect to the ground of the power supply. |
| 9-15 | Output 1-7 | Outputs for channels 1 to 7. Connect to the load (e.g., relay, motor). |
| 16 | COM (Clamp Diode) | Common cathode of the internal freewheeling diodes. Connect to the load's positive supply. |
Power Connections:
Input Connections:
Output Connections:
Driving a Stepper Motor:
Below is an example of how to use the ULN2003A to control a 5V relay with an Arduino UNO:
// Example: Controlling a relay with ULN2003A and Arduino UNO
const int relayPin = 2; // Arduino pin connected to ULN2003A Input 1
void setup() {
pinMode(relayPin, OUTPUT); // Set relayPin as an output
}
void loop() {
digitalWrite(relayPin, HIGH); // Turn on the relay
delay(1000); // Wait for 1 second
digitalWrite(relayPin, LOW); // Turn off the relay
delay(1000); // Wait for 1 second
}
Note: Ensure the relay's positive terminal is connected to the power supply, and its negative terminal is connected to the ULN2003A's Output 1.
Problem: The load is not turning on.
Problem: The ULN2003A overheats during operation.
Problem: Voltage spikes damage the circuit.
Q: Can the ULN2003A drive a bipolar stepper motor?
Q: Can I use the ULN2003A with a 3.3V microcontroller?
Q: What happens if I exceed the maximum current rating?
This concludes the documentation for the ULN2003A.