ULN2803 DC Motor Control

Discussion in 'The Projects Forum' started by lrr81765, Mar 10, 2010.

  1. lrr81765

    Thread Starter New Member

    Mar 10, 2010
    I have a 12vdc motor that has a forward connection and a reverse connection. The motor shuts off when it hits a limit switch ( this is for a valve forward is open, reverse is close)
    The motor is 55ma max.

    I am trying to emulate a SPDT circuit here using as few components (and cost) as possible. Saw some really nice Max chips, but a $7 price point kills it :)

    So, I have the attached circuit. When the input is LOW, it should go forward and when it is HIGH it should reverse. It only has these two states.

    Can someone review this circuit and let me know their opinion ?
  2. SgtWookie


    Jul 17, 2007
    Actually - is your motor a linear actuator?

    Some linear actuators have a +V input, and a FWD and REV inputs. Some have a GND you also need to connect. You run the actuator in FWD or REV by grounding either the FWD or REV input.

    Are your motor's connections similar to that?

    If so, you COULD use the ULN2003 to switch it. However, you need to keep in mind that the ULN2003 has open-collector outputs; this means that they can sink current (apply a ground) but cannot source current (supply current).

    Make certain that you connect the GND terminal of the ULN2003 to ground.
    Since you are driving an inductive load, you should connect the COM terminal (opposite the GND terminal) to Vcc; as the COM terminal is connected to the internal protection diodes. If you don't, you may blow the Darlington transistor output.

    I see that you are using a CMOS 4069 as an inverter. ULN2003's are really designed to be driven by TTL-level logic (0v-5v). You really should use ULN2004 or ULN2804 drivers instead, as they have 10.5k input resistors instead of 2.7k input resistors. This is much less of a strain on 4000-series CMOS components.