Open & close using a servo or a stepper motor?

Hi, I have got a naive question. I have to operate a device by turning a wheel from 0 to 90° and half an hour or an hour later back to 0°. I am considering to use a timer to switch on a DC supply to activate Arduino Uno, a driver and a motor to execute the quarter of a turn, enter the long pause, turn the wheel back and wait a while until the timer terminates the process. This should be repeated for many times. Then, the two positions should not drift a bit. Would a servo or a stepper motor be more reliable in reproducing/keeping the 0 and the 90° positions? Arduino might be underutilised, perhaps a less sophisticated device is available to regulate such motor swinging? Thanks - Andrej

What torque is needed to operate this valve?

If you need more torque than a hobby servo can provide, a gearmotor (DC motor with attached gearbox) with limit switches should do the trick. Put voltage in one way and the motor turns until the limit switch opens. Put voltage in the other way and the motor runs the other way until the OTHER limit switch opens.

The top version adds some diodes but only needs two wires from the reversing switch/relay to the motor and limit switches. The bottom version eliminates the diodes but requires three wires from the reversing switch/relay to the motor and limit switches.

A stepper motor does not know where it is so you would need limit switches with it also. And a stepper motor driver module between the Arduino and the motor.

The geared DC motor would probably be simpler - but will also need a driver (or relays with their "drivers") between the Arduino and the motor.

If you can find a sufficiently powerful servo (perhaps twice the actual torque required) it would be the simplest option because all the motor control electronics are inside the box. Get a good one with ball bearings and metal gears.

...R

Thanks johnwasser a lot and Robin2 as well. I am going to study their suggestions and am confident with this help to master the project (some day). Have a nice Sunday - Andrej

The feed-back using circuits as drawn clearly by John depends on operating a “reversing switch” as he called it. In my project this switch once activated should remember, like a hand operated lever switch, even if the power is completely off. By next switching on as programmed on a timer switch the power should force the reversing switch into the alternate position and thus empower the circuit with the reversed voltage to operate the motor backwards.
The problem I had with this elegantly simple solution was my inability to find a switch that, being activated first, would provide power for the forward movement and after the next pulse from the timer to activate the alternative circuit. It seems simple to operate a three pole toggle switch, however, I want the system to work without touching it. I thought such a switch could make use of a “Stromstoßschalter” as shown on German Wiki Stromstoßschalter – Wikipedia
if it only had an additional contact to be live in the off position. Unlike regular relays, the switch remembers the connection even if unplugged. In summary, using a pulse from a timer I would activate one of the circuits, say to open the device, and by the next pulse the timer would activate the reverse. Is such an alternating relay available?

HASILIK:
my inability to find a switch that, being activated first, would provide power for the forward movement and after the next pulse from the timer to activate the alternative circuit.

I don't think you are activating the motor very often so each time you could record the state to the Arduino's EEPROM memory and, in setup() read the EEPROM memory to determine what needs to be done when the Arduino starts. The EEPROM memory can withstand 100,000 writes.

...R

Yes I wish to activate the motor only twice (forward and reverse) and perhaps four times a day. Most of the time regularly and even if absent. That´s why I prefer using a timer. Is that right, that Arduino can keep a break for minutes, wait for 1.800.000 ms or more? To my knowledge after an upload Arduino would execute the cycle anytime it is activated by voltage from a supply that can be under command of a timer, is that correct? I understand that due to interruptions between the cycles a servo rather than a stepper should be used. Nevertheless, John´s scheme indicated the total costs might be lower using feed-back commands from terminating switches rather than operating the servo under an Arduino.

So what I am looking for is a switch or relay with one, that can be in series with a timer and - once switched off - remembers which contact it has closed. It would be a type SPDT switch with poles A and B on the exit, that would close A during the first cycle. It would keep this in mind when receiving no voltage from the timer and close B in the next round to feed the circuit operating the DC engine in the reverse direction. In the third cycle contact A would be closed again, which would open the mechanism and so on.

At present I see the only possibility what to use as the alternating switch: this was described using pictures in my previous message and would depend on my ability to adapt an existing SPST switch that is switched on and off by consecutive pulses of 230 V AC. Perhaps you know a proper switch?
Andrej

Grumpy_Mike:
What torque is needed to operate this valve?

Sorry Mike, I have overlooked your contribution. I think the mechanics part will require a torque of 1.5 or even 3 Kg.cm.

Thus using a DC motor with a torque close to 4 I might be on the safe side. At this stage of the discussion I feel using mechanical end-switches like MK-038 ( http://ml-tec-shop.ch/index.php?a=495 ) could be a solution. Then, perhaps I should avoid a motor with a high rpm value. And I think a pin attached to a rotating disc would smoothly and strongly enough press the lever of the microswitch.

There was a suggestion to use a motor with metal gears, which I feel makes sense. Definitely, you have more experience than myself and may kindly suggest me, which model I may use? Before buying a proper power supply I wonder, if I should look for a 5V or a 12V engine? Is there a good reason, which one to take for my project?
Andrej

the mechanics part will require a torque of 1.5 or even 3 Kg.cm.

OK that rules out a cheap servo then.

Before buying a proper power supply I wonder, if I should look for a 5V or a 12V engine?

The higher voltage you can use the better.

HASILIK:
Sorry Mike, I have overlooked your contribution. I think the mechanics part will require a torque of 1.5 or even 3 Kg.cm.

It would be a big help if you tell us what you are trying to do. Also, please provide a diagram of the machine.

If, for example, this is to open and close a valve then you can buy motorized valves.

…R

You can get inexpensive (under $10) DC gear motors from eBay or AliExpress. The specifications are a little sparse but at least one Model GW370 0.6 RPM unit listed a torque of 14 Kg cm. I'm guessing that a 3 RPM model would be a little under 5 Kg cm. They are mostly 12V but also come in 3V, 6V, and 24V models.

Do you need to turn the wheel quickly? If 5 seconds is fast enough for 1/4 turn then a 3 RPM (20 seconds per revolution) would be fast enough.

John, thanks for (clear & for me understandable) instructions. I think the slower the lever is operated, the better (for the end-switches) unless the torque is lost... What do you think about my search for an alternating switch described in my messages Open & close using a servo or a stepper motor? - #6 by HASILIK - Project Guidance - Arduino Forum
and Open & close using a servo or a stepper motor? - #8 by HASILIK - Project Guidance - Arduino Forum
Andrej

HASILIK:
What do you think about my search for an alternating switch described in my messages Open & close using a servo or a stepper motor? - #6 by HASILIK - Project Guidance - Arduino Forum
and Open & close using a servo or a stepper motor? - #8 by HASILIK - Project Guidance - Arduino Forum
Andrej

Sounds like what you want is called a "latching relay". That's a relay that either alternates position on each activation or had separate inputs for the two positions.
If you don't mind keeping the Arduino powered you can have it drive the motor with an H-Bridge motor driver. The Arduino can also do the timing if you add a cheap Real-Time Clock (RTC) module. It can also handle the limit switches and detect problems like the motor not reaching the limit in a reasonable time.

HASILIK:
John, thanks for (clear & for me understandable) instructions. I think the slower the lever is operated, the better (for the end-switches) unless the torque is lost...

The more a motor is geared down (i.e. the motor itself runs at the same high rpm speed but the final movement becomes slower), the slower the movement and higher the torque it delivers.

Grumpy_Mike:
OK that rules out a cheap servo then.
The higher voltage you can use the better.

Hobbyking have 9kg metal gear servos for less than $10.00.

That page says:-

Spec.
Torque: 9kg @ 4.8v, 8kg @ 6v

So more torque at a smaller voltage. Do you trust that spec?

For 10 bucks it may be worth taking a chance :slight_smile:

...R

Grumpy_Mike:
So more torque at a smaller voltage. Do you trust that spec?

And they don't even use a valid unit of torque!

This one is $10 and rated 4.4 kg-cm at 6V.

Power HD Standard Servo 3001HB

johnwasser:
And they don't even use a valid unit of torque!

This one is $10 and rated 4.4 kg-cm at 6V.
Pololu - Power HD Standard Servo 3001HB
Power HD Standard Servo 3001HB

If you read the specs they do