HomeSpan/docs/StepperDrivers/Stepper_ULN2003A.md

2.7 KiB

Stepper_ULN2003A

This is a derived class of StepperControl designed to operate stepper motors driven by a Texas Instruments ULN2003A (or equivalent) chip.

The Texas Instruments ULN2003A chip containins an array of seven Darlington transistor pairs each capable of converting low-voltage/low-current digital signals into higher-voltage/higher-current outputs suitable for driving a stepper motor.1

Various manufacturers have incorporated this chip into a dedicated stepper motor board designed to drive unipolar motors such as these 28BYJ-48 5-Volt and 28BYJ-48 12-Volt Stepper Motors. Wiring for the Opencircuit ULN2003 Stepper Motor Driver Board that uses this chip is as follows:

Power Connections

  • VCC - connect to +3.3V on ESP32
  • VM+ - connect to external DC power supply that will drive stepper motor (5-13V)
  • GND - connect to GND on the ESP32, and to ground of external DC power supply

Motor Connections

  • MOTORA - connect to the "A" coil of the stepper motor
  • MOTORB - connect to the "B" coil of the stepper motor

Control Connections

  • AIN1, AIN2 - connect to two digital pins on the ESP32 - used to control direction and state of coil A
  • BIN1, BIN2 - connect to two digital pins on the ESP32 - used to control direction and state of coil B
  • PWMA, PWMB - if using PWM, connect to two digital pins on the ESP32; if not, connect to +3.3V on ESP32 to pull high
  • STBY - connect to +3.3V on ESP32 to pull high

The Stepper_TB6612 class includes two constructors:

  • Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2)

    • controls the driver board using only 4 digital pins from the ESP32, where the parameters specify the pin numbers. Supports the following step type modes:

      • FULL_STEP_ONE_PHASE
      • FULL_STEP_TWO_PHASE
      • HALF_STEP
  • Stepper_TB6612(int AIN1, int AIN2, int BIN1, int BIN2, int PWMA, int PWMB)

    • controls the driver board using 4 digital pins and 2 PWM pins from the ESP32, where the parameters specify the pin numbers. Supports the following step type modes:

      • FULL_STEP_ONE_PHASE
      • FULL_STEP_TWO_PHASE
      • HALF_STEP
      • QUARTER_STEP
      • EIGHTH_STEP

↩️ Back to the Stepper Motor Control page


  1. Only four of the seven Darlington transistor pairs in the ULN2003A are needed to drive a typical unipolar stepper motor. ↩︎