How to generate bipolar square pulses (not for stepper motor control)


How can I generate bipolar square pulses as seen in the image using an Arduino for control? As you can see charge imbalanced biphasic requires lower amplitude pulses in one direction.
I have searched the forums for bipolar references but all the entries refer to stepper motor control which I don’t think is related to my project.

Thanks a lot!



Just using digitalWrite on one of the output pins would likely do the job. You don't mention what time frame you're talking about.

You can generate bipolar pulses by using two outputs. The outputs alternate high or low in opposition to each other, so current flow is bidirectional. The duty cycle can of course be asymmetric.

The outputs should be isolated from ground and draw no more than about 20-30 mA. The method is often used to drive two-lead bicolor LEDs, e.g.

The operating principle is exactly the same as an H-bridge D.C. motor or stepper driver, so I don't understand why you think they are not related.

Hi note that the positive output pulse in trace (c) the charge imbalanced biphasic, is not full voltage so timing would not be a problem using H-Bridge but the lower pulse voltage would still have to be addressed. Is the pulse voltage going to be variable?

Tom.... :)

Good point about trace (c) – I don’t think the lowered output voltage can be reproduced using purely digital signals. You would need a DAC to do that.

I was thinking along the lines of a voltage divider with the digital output joining in the middle. With the output high, you'd have 5v, with it low you'd have 0v, and switch the pin to input mode to let the voltage divider determine the neutral value.

Hi. I want to thank everybody that contributed an answer in this thread. I wasn't sure whether the same principles for driving a stepper motor applied. The frequencies will not exceed 4Khz so it seems an Arduino can handle it. Trace (c) is specially important but the lower pulse voltage is going to be a fixed voltage. So my main motivation for asking was to determine if a DAC is going to be a requirement (considering trace c) Best regards and thanks again for your help. German