Opening/Closing a cabinet drawer with a continuous rotation servo

Using 2 I/O pins, one controls the servo, the other turns power on to the servo via an N channel mosfet (N-Channel MOSFET 60V 30A - COM-10213 - SparkFun Electronics)

If I had ButtenOpen turn on the servo power, and send the rotation command to the servo, and give it a delay long enough to open the drawer, then turn power off. And ButtonClose would work the same way, turning on the servo, giving the close signal, delay, turning off power to servo.
Turning off power to the servo should ease the problem of someone manually opening or closing the drawer. Does this sound like it would work.

...Any thoughts?

How will you couple the servo to the drawer?
And how will you determine the open/close times (they will vary according to the weight of the draw, friction changes over time etc.)

I ask because if you drive the servo for too long and it hits end of travel you will have a problem. Not long enough and the draw isn't fully open/closed.

Also servos are pretty highly geared, I don't think it will like being driven by someone manually moving the drawer.


Rob

I'll be driving it via a rubber wheel on the side of the wood drawer. The drawer only opens 8", and the weight of it's contents will never change. My plan is that the drive wheel will have enough friction to open/close the drawer, but not too much that if someone closes it manually, the drive wheel/wood side will let it slide back.
Timing: It should only take a second or 2 to open, so that's why I'm thinking if I leave the servo on for say 1 second longer than what ever time it actually takes, then turn it off. That shouldn't hurt it, should it? It's usage: probably once a day, average.
So my question: Is that too hard on a servo, being stalled for 1/2 to 1 second?

So my question: Is that too hard on a servo, being stalled for 1/2 to 1 second?

I would suggest you are better off having two switches (opto, magnetic, or even mechanical) that detect door fully closed and fully open conditons, that way your program can command the servo to stop without having to worry about stalled condition, or having to determine exact timing of travel.

Lefty

retrolefty:
I would suggest you are better off having two switches (opto, magnetic, or even mechanical) that detect door fully closed and fully open conditons, that way your program can command the servo to stop without having to worry about stalled condition, or having to determine exact timing of travel.

Lefty

Hmm, there goes another I/O pin or 2!
I was hoping a stalled condition wouldn't be too hard on a servo...

a note:
perhaps Sparkfun's Optical Detector / Phototransistor - QRD1114
sku: SEN-00246
could detect 2 end marks or protrusions added to the side of the drawer to give the right span.

You could make a setup like below using a gear motor. If youdrive the drawer from the bottom, the drawer might have enough upward play to lift off the wheel when being manually moved.

interesting. So, in your drawing, the limiting switches don't need wired to the arduino. I see how they. So I'd only have 2 I/O pins. One for the relay, one for the DPDT switch, right?

You just need one I/O pin (with a transistor and power supply to operate the relay). When the pin goes high, the relay is actuated and the drawer opens. When the pin goes low the relay is deactivated and the drawer closes.

Ah, I got. That's a good way to do that!

zoomkat:
You could make a setup like below using a gear motor. If youdrive the drawer from the bottom, the drawer might have enough upward play to lift off the wheel when being manually moved.

...after listening to a servo, I'm think more about going your route. Plastic geared servos sound pretty chinzsy. I reckon there's probably good quality ones, better than SparkFuns. But this diagram you drew is a more correct to do this. I picked up a nice gearmotor.