Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use ULN2003A: Examples, Pinouts, and Specs

Image of ULN2003A
Cirkit Designer LogoDesign with ULN2003A in Cirkit Designer

Introduction

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.

Explore Projects Built with ULN2003A

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Arduino UNO and ESP-8266 Smart Controller with LCD and RTC
Image of Ogie Diagram: A project utilizing ULN2003A in a practical application
This circuit is a power management and control system that uses a 12V power supply and a 18650 Li-ion battery pack to provide a stable 5V output through a step-down buck converter. It includes an Arduino UNO, an ESP-8266 controller, a DS1307 RTC module, and a 20x4 I2C LCD display for monitoring and control purposes. The ULN2003A breakout board is used for driving higher current loads.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano-Based IR-Controlled Stepper Motor System with Pushbutton Interface
Image of Nano Film Duplicator: A project utilizing ULN2003A in a practical application
This circuit is designed to control a stepper motor using an Arduino Nano, with inputs from multiple pushbuttons and a DIP switch for user interaction. It also includes an IR transmitter for remote communication and several LEDs for visual feedback. The ULN2003 driver is used to interface the Arduino with the stepper motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Controlled Stepper Motor with ULN2003A Driver
Image of stepper motor: A project utilizing ULN2003A in a practical application
This circuit is designed to control a 28BYJ-48 stepper motor using an Arduino UNO microcontroller and a ULN2003A breakout board. The Arduino's digital pins D8 to D11 are connected to the input pins of the ULN2003A, which in turn is connected to the stepper motor's wires, allowing the Arduino to drive the motor. The code provided for the Arduino is currently a template with empty setup and loop functions, indicating that the control logic for the stepper motor has yet to be implemented.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled Dual Stepper Motor and Servo System
Image of nano plus servo: A project utilizing ULN2003A in a practical application
This circuit controls two 28BYJ-48 stepper motors and a micro servo using an Arduino Nano. The ULN2003A breakout boards interface the stepper motors with the Arduino, while the micro servo is directly controlled via a PWM signal from the Arduino. Power is supplied through a 2.1mm DC barrel jack.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ULN2003A

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Ogie Diagram: A project utilizing ULN2003A in a practical application
Battery-Powered Arduino UNO and ESP-8266 Smart Controller with LCD and RTC
This circuit is a power management and control system that uses a 12V power supply and a 18650 Li-ion battery pack to provide a stable 5V output through a step-down buck converter. It includes an Arduino UNO, an ESP-8266 controller, a DS1307 RTC module, and a 20x4 I2C LCD display for monitoring and control purposes. The ULN2003A breakout board is used for driving higher current loads.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Nano Film Duplicator: A project utilizing ULN2003A in a practical application
Arduino Nano-Based IR-Controlled Stepper Motor System with Pushbutton Interface
This circuit is designed to control a stepper motor using an Arduino Nano, with inputs from multiple pushbuttons and a DIP switch for user interaction. It also includes an IR transmitter for remote communication and several LEDs for visual feedback. The ULN2003 driver is used to interface the Arduino with the stepper motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of stepper motor: A project utilizing ULN2003A in a practical application
Arduino-Controlled Stepper Motor with ULN2003A Driver
This circuit is designed to control a 28BYJ-48 stepper motor using an Arduino UNO microcontroller and a ULN2003A breakout board. The Arduino's digital pins D8 to D11 are connected to the input pins of the ULN2003A, which in turn is connected to the stepper motor's wires, allowing the Arduino to drive the motor. The code provided for the Arduino is currently a template with empty setup and loop functions, indicating that the control logic for the stepper motor has yet to be implemented.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of nano plus servo: A project utilizing ULN2003A in a practical application
Arduino Nano Controlled Dual Stepper Motor and Servo System
This circuit controls two 28BYJ-48 stepper motors and a micro servo using an Arduino Nano. The ULN2003A breakout boards interface the stepper motors with the Arduino, while the micro servo is directly controlled via a PWM signal from the Arduino. Power is supplied through a 2.1mm DC barrel jack.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Driving stepper motors in robotics and automation systems
  • Controlling relays in industrial and home automation
  • Powering LED arrays and incandescent lamps
  • Interfacing microcontrollers with high-current devices
  • Driving solenoids in electromechanical systems

Technical Specifications

Key Technical Details

  • Manufacturer Part ID: ULN2003A
  • Manufacturer: Texas Instruments
  • Number of Channels: 7 (NPN Darlington pairs)
  • Maximum Output Voltage: 50 V
  • Maximum Output Current (per channel): 500 mA
  • Input Voltage (Logic High): 2.4 V (minimum)
  • Input Voltage (Logic Low): 0.8 V (maximum)
  • Base Resistors: 2.7 kΩ (integrated for each Darlington pair)
  • Clamp Diodes: Built-in freewheeling diodes for inductive load protection
  • Package Types: DIP-16, SOIC-16, and others
  • Operating Temperature Range: -20°C to 85°C

Pin Configuration and Descriptions

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.

Usage Instructions

How to Use the ULN2003A in a Circuit

  1. Power Connections:

    • Connect the GND (Pin 8) to the ground of your circuit.
    • If driving inductive loads (e.g., relays, motors), connect the COM (Pin 16) to the positive supply voltage of the load. This ensures proper operation of the internal clamp diodes.
  2. Input Connections:

    • Connect the logic control signals (e.g., from a microcontroller or logic circuit) to the Input pins (Pins 1-7).
    • Ensure the input voltage levels are compatible with the ULN2003A's logic thresholds (e.g., 3.3V or 5V logic).
  3. Output Connections:

    • Connect the load (e.g., relay, motor, or LED) to the Output pins (Pins 9-15).
    • Ensure the load's current and voltage requirements do not exceed the ULN2003A's maximum ratings (500 mA per channel, 50 V).
  4. Driving a Stepper Motor:

    • The ULN2003A is commonly used to drive unipolar stepper motors. Connect the motor's coil wires to the output pins and control the inputs using a microcontroller.

Important Considerations and Best Practices

  • Inductive Load Protection: The ULN2003A includes built-in clamp diodes to protect against voltage spikes from inductive loads. Always connect the COM pin to the load's positive supply voltage.
  • Thermal Management: Avoid exceeding the maximum current rating per channel (500 mA) or the total package power dissipation. Use heat sinks or proper ventilation if necessary.
  • Unused Channels: If any channels are unused, leave their input pins unconnected or tied to ground to avoid floating inputs.

Example: Using ULN2003A with Arduino UNO

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.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Problem: The load is not turning on.

    • Solution: Verify the input signal voltage is high enough (≥ 2.4 V) to activate the Darlington pair.
    • Solution: Check the connections to the load and ensure the load's power supply is properly connected.
  2. Problem: The ULN2003A overheats during operation.

    • Solution: Ensure the load current does not exceed 500 mA per channel or the total package power dissipation.
    • Solution: Use fewer active channels simultaneously or add heat dissipation measures.
  3. Problem: Voltage spikes damage the circuit.

    • Solution: Ensure the COM pin is connected to the load's positive supply to enable the internal clamp diodes.

FAQs

  • Q: Can the ULN2003A drive a bipolar stepper motor?

    • A: No, the ULN2003A is designed for unipolar stepper motors. For bipolar stepper motors, consider using an H-bridge driver like the L298N.
  • Q: Can I use the ULN2003A with a 3.3V microcontroller?

    • A: Yes, as long as the input voltage exceeds the logic high threshold (2.4 V). However, ensure the load's power supply matches its requirements.
  • Q: What happens if I exceed the maximum current rating?

    • A: Exceeding the current rating can cause overheating, damage to the component, or failure of the internal transistors. Always stay within the specified limits.

This concludes the documentation for the ULN2003A.