Let's Make Robots!

compact direction-switching for pager motors.

I have a quesiton for the wiser people with more time than I do.

I am  driving a small pager motor with a PWM signal from a RC+inverter system (similar to a "neurone" in a beam bot with the output forming its own input, or even a "solar theremin" curcuit).The signal is modulated via a resistor+LDR to change the frequency of the signal pulses and piped off to drive a tiny motor. If necessary, with a bit of amplification.

The situation is this - As the neuron controls the power to the motor according to ambient light levels. The motor pushes, or pulls a nut via a thread that is mounted directly on the motor spindle. When the nut gets to one end, I want the motor to change direction. the initial direction on startup doesn't matter.

What I don't want to have is a massive motor driver for the motor. I want to make an array of these - an intermediate objective is something like a 5x5 array, but probably just a 1x2 array will be fine to start with. Ideally each of the units can be up to 10mm square, but the smaller the better.

My question boils down to;  given a pwm supply, what is the most compact way to reverse the direction of a motor, assuming that the signal to reverse is either a 0->1 or 1->0 pulse (either, or both, doesn't matter).

It would be most perfect to use an inverter or three (with perhaps other descrete components, but no other ICs) to accomplish this, because I'm already planning to use an inverter+cap+resistor+LDR to form the pwm supply. 

Note that simply inverting the pwm output won't work, because the time between pulses is necessarily different to the pulse-width, so inverting this signal will result in a different motor speed. At least, that's what I think.


Any suggestions/wisdom/comment/abuse/praise?





Thanks for your comments, it seems that my fantastic ideas were a bit too fantastic, so I haven't yet persued in reality the concept I had in mind, but some simulations with yenka showed that it requried a few too many additional components to make sense.

While the other remaining option seems to be that offered by Ignoblegnome - a few relays (and this might be the best way yet), however there actually IS an IC that does what I want, and can cope with 200mA of pulsed (50% duty cycle) input. This is the maximum rate and current that I expect from these pager motors: MAX4749 SPD dataswitch with three such SPDT switches on it, each can be controlled separately  (or the MAX4748 takes a single control input for all three switches). As my input will be digital (pwm from an inverter-occilator), and the control too, this chip is ideal. I'll be needing 9 of them for my application.

Tragically, maxim are no longer taking sample requests from those with google email addresses... bugger.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Could you make it so that the spindle/nut assembly acts as a dpdt switch? Please give my visual brain some more input.

I can't see that reversing the PWM signal would do anything at all besides change the duty cycle and the speed. To change direction you probably have to use some sort of H-bridge.

an H-bridge really too big though. inverting the pwm doesn't achieve what I need.

I think I have a solution that uses only one transistor, but I'll leave this forum here while I wait to implement and test it.


Look for reed relais and build a h-bridge with them. (The little glass one)


As a second option, there are also relais available in IC package.

If you can make this work with only one transistor I'll be amazed and you probably be the LMR hero for years :-)

You say there is a 10x10mm space limit. You still have to run power and control signals to the motor, so why not move the H-bridge away and run just the motor power?

Not many options I can think of for reversing a DC motor without an H-Bridge...

• substitute in a relay for the H-Bridge to reverse the current
• build a half-bridge and use positive and negative supply
• mechanical reverse (not likely!)

I can't help but think that any H-Bridge you build out of inverters/buffers will still end up at least as big as an L293D or similar H-Bridge IC, but I'd love to be proven wrong on that =)
You've said your target is 10mmx10mm... what about height? Nothing wrong with IC stacking if you're using DIP.

One more option that is similar to a relay would be a DPDT switch that would be actuated by the rising nut on a string.

I don't know if this is mechanically feasible for your application, but it works like the relay, only you don't need a signal to control it. The switch starts in Position 1. When the string is wound up the motor shaft to one limit, it clicks the switch to Position 2, reversing the motor contacts. When the string is wound up the motor shaft to the limit on the other side, it clicks the switch back to Position 1, changing the motor back to the original direction.