L293D control via ISP847 opto isolator problem

hi, I'm new to opto isolators and i'm trying to use an ISP847 ISP847 pdf, ISP847 Description, ISP847 Datasheet, ISP847 view ::: ALLDATASHEET ::: opto isolator to control the inputs for an L293D for bipolar stepper motor control, i have an arduino UNO driving each of opto isolator inputs with a 330 ohm resistor on the common ground of the signal led's. on the other side of the isolator is a regulated 6v supply which provides power for the transistors with a 330 ohm resistor on common ground also, and a +24v supply for powering the motor, now when i hook up a load to the L293D and enable the digital pin on the corresponding input of the isolator nothing happens, i have tested the ISP847 and the L293D separately and they work flawlessly, I'm at a loss as to what i could be doing wrong...

Can you sketch up a schematic of how you have things hooked up? It sounds basically right from your description but a schematic speaks 1000 words.

--
The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

thanks for the fast reply, here is the schematic.. albeit the best i could do in ms paint.

There are a couple of problems. Pin 16 of the L293D should be connected to 6V, not to the 330 ohm resistor. Your optoisolators can drive the digital inputs to the L293D high but they can't make them low. When the transistors are off, there is nothing to bring the L293D inputs to 0V. I would get rid of the 330 ohm resistor (on the output side) and add 4 10k resistors, one on each transistor output, connected to GND.

Similarly, each optoisolator input should have its own 330 ohm resistor rather than sharing 1 among 4 inputs.

--
The MegaRAM shield: add 128 kilobytes of external RAM to your Arduino Mega/Mega2560

thanks for the help, what do you mean by the optoisolator not being able to drive the L293D inputs to low?

When an optoisolator turns on, its output allows the +6V source to connect to the L293D input and the L293D input voltage will measure approximately 6V.

When an optoisolator turns off, the L293D input is not connected to any source voltage. We call this condition a "floating input". Due to some capacitance at the L293D input, the 6V condition may persist for quite a while, until internal current leakage slowly drains away the 6V charge and the voltage slowly decays towards 0. Or, it may be that internal current leakage actually wants to flow out of the chip and 6V persists forever.

You need a way to positively force the L293D input voltage to 0V when the optoisolator is off. Putting a 10k resistor at each input, connected to GND, will provide a current discharge path that should bring the L293D input voltage to 0V soon after the optoisolator turns off. The lower the resistor, the quicker this will happen, but then there is current wasted when the optoisolator is on (6V/10k = 0.6mA for 10k, or 6V/1k=6mA for 1k, etc.) I wouldn't go below 1k to limit optoisolator current.

--
The Basic Motor Driver: simple, inexpensive motor driver for 1 stepper motor or 2 DC motors

thanks again for the help, much appreciated :slight_smile: