Hello Arduino folks!
I need some guidance in the great world of stepper motors. I'm trying to automate my blind/shade/pulldown whatever you call it. It's one of those you pull down Not the one that you twist to let more or less light in.
I have already tried with a servo(TowerPro SG-5010 Servo Specifications and Reviews)to turn the pulldown where its mounted but it was to weak. Can you guys please help me to pick the right stepper motor with enough power to turn it?
Any help is appreciated a lot!
Thanks!
Stepper motor?
A big one!
I'd suggest looking at (second hand) an electric car window motor.
How much force does this solution need to apply to the chord, and how fast do you want the cord to move?
Paul__B:
Stepper motor?A big one!
I'd suggest looking at (second hand) an electric car window motor.
What do you mean by a big one? Could this one do the job? Stepper Motor - 125 oz.in (200 steps/rev, 600mm Wire) - ROB-13656 - SparkFun Electronics
Or is that one to weak, The problem is that I dont really know how strong it needs to be. The only thing i know is that my servo was to weak. But in comparison with the servo i mentioned in my first post, isn't that stepper motor a lot stronger?
Thanks guys!
Hard to say - might do it, might not. 125 ounce-inches sounds pretty good, if that is the actual torque, that is nearly eight pounds with a one inch radius pulley and you could presumably use a one inch diameter pulley to achieve double that lift.
Perhaps you had better go find a hook scale and use it to pull on the cord to see just how much force you need, then multiply by at least 1.5.
Okay, that sounds like a good idea. I will try that.
But since my servo with the specs, stall torque: 152.8 oz-in (11.00 kg-cm)
I can assume that I need a motor with better stall torque right? But when I'm looking att stepper motors I can only find holding torque and I suppose that's not the same as stall torque right?
I'm just so surprised, I thought it would be easy to find a stepper motor that was stronger than my servo which would turn my drop-down very easily but it seems like its not
Okay, I've tested to hang a 3kg weight 1 cm from the turning center, I hope you understand me, and the pull-down easily pull up a bit. So 3 kg is enough to get it to turn, So now i know how much force must be applied. Can you guys help me a litle bit more now with the choice of stepper motor when you know how much force i need to apply?
(I'm still a litle bit confused why my servo with the specs 11kg-cm is not able to turn the pull-down, I have modified the servo to be able to have continuous rotation. Does that affect the torque maybe?)
I post an image too so you know what I mean by hanging the weight and the whole project.
Thanks again guys!
If you need 3 Kg-cm and the servo applies 11Kg-cm then the servo ought to be sufficient. If it isn't sufficient then perhaps it isn't actually producing as much torque as it's claiming. The most likely reason for that would be that it doesn't have an adequate power source. You could measure how much torque it's actually producing in the same way you measured the weight needed to operate the blinds.
PeterH:
If you need 3 Kg-cm and the servo applies 11Kg-cm then the servo ought to be sufficient. If it isn't sufficient then perhaps it isn't actually producing as much torque as it's claiming. The most likely reason for that would be that it doesn't have an adequate power source. You could measure how much torque it's actually producing in the same way you measured the weight needed to operate the blinds.
Thanks, I will do that test today with the servo.
This is The way I have connected the servo.
I have a motor shield on top of my arduino uno, the vin and GND comes from 4xAA batteries=6volts and then the servos power and ground is connected to the shield through the screw connector. I will post the arduinocode later, so may be the batteries can't give maximum current that is needed?
A servo capable of producing 11 Kg-cm is likely to need a lot of current. I suggest you look at the spec to see what its voltage and current requirements are, and then look at the spec for your batteries to see how much current they can provide. If you don't have the means to do that then just stick a voltmeter across the power leads of the servo while it is under load and see how much voltage is actually reaching them. The voltage will always drop a little when load is applied, but if the power supply is inadequate then it will drop a lot.
[/quote]
Thanks, I will do that test today with the servo.
This is The way I have connected the servo.
I have a motor shield on top of my arduino uno, the vin and GND comes from 4xAA batteries=6volts and then the servos power and ground is connected to the shield through the screw connector. I will post the arduinocode later, so may be the batteries can't give maximum current that is needed?
[/quote]
AA Batteries almost never can supply enough current for a motor, unless it is very tiny.
Thanks guys!
I cannot find a specification of the current the motor will draw but I will buy a dc power supply with that can supply around 1,2 ampere, do you think that's enough?
I have also modified the servo for continuous rotation but it was just a minor modification and I have not altered the gearbox. That shouldn't affect the torque right? Thanks guys!
That won't affect the peak torque but note that the amount of torque produced will vary depending how far the control signal is away from the at-rest value.
PeterH:
That won't affect the peak torque but note that the amount of torque produced will vary depending how far the control signal is away from the at-rest value.
Okay, that sounds interesting. I don't really understand what you mean about the control signal. Do you mean that if the servo gets 6 volts must the pwm, control signal also differ between 0 and 6 Volts?
The servo you have was originally designed to receive a control pulse in the 1500-2500 uSec range, convert that to a rotational position and then move to that position. So a 1500uSec pulse meant move to one end of its travel (aka 0 degrees position), a 2500 uSec pulse meant move to the other end (aka 180 degrees), and so on for the intermediate values. The servo has some electronics inside that measure the current position with a potentiometer and power the motor to move it towards the target position implied by the control signal. In practice different servos support different ranges of motion and the end limits don't always correspond to exactly 1500 and 2500 uSec pulses, but you get the idea - the pulse length corresponds to a target position. The Arduino Servo library lets you specify the servo control signal either in terms of the pulse length (1500 .. 2500), or as a nominal angular position (0 .. 180).
You say that your servo has been converted for continuous rotation. This is done by disconnecting the potentiometer so that the servo control logic thinks the servo isn't moving. Usually, the potentiometer is left positioned somewhere near the middle of its travel so the controller thinks the servo is somewhere near the middle of its range of movement i.e. somewhere near the 90 degree position.
If the servo control signal you send corresponds to the position the controller thinks the servo is at, it will leave the motor off. If the control signal represents a different position, the controller will try to move the motor towards the target position. Most servos implement a proportional control algorithm which means the further the servo needs to move, the more power is applied to make it move. Usually the gain is quite high so that if the controller is trying to move the servo more than a few degrees it will probably be up to full power, but for smaller angles it will try to move the motor but may not apply full power. Hence the nominal position you pass to the Servo library can be used as a sort of speed control. There will be some pulse length, probably around 2000 uSec (aka 90 degrees if you specify it as an angle), that stops the motor. Moving the position to either side makes the motor move in either direction, and the further you move it the faster the servo will go.
Thank you for your detailed explanation PeterH! I knew roughly how the servo with a "Detached" potentiometer worked but now i understand a litle bit more!
I can tell you guys that when I tried with my new DC wall power supply with 6 volts and a max current of 1,8 ampere it still didn't work. BUT when i turned the voltage up to 7.5 volts it worked pretty good! A litle bit slow but it worked. What do you guys think, it's a litle bit over the rated voltage as far as I know. At 9 volts it worked really good and the pull-down went up right away.
I've modified the 5010 type servo in the past for continuous rotation. For what you want to do, the 5010 may be underpowered. I suspect your power supplies are inadequate to get the servo to output its maximum torque. Have you actually measured the power supply voltage with a multimeter while the servo is trying to turn? You might consider adding a counter weight to the shade so the servo doesn't have to turn against the full weight of the shade. Bottom is an inexpensive servo that has higher rated torque that might be of interest.