servo and stepper motor questions

Hello,
I'm pondering the use of a servo or stepper motor with a hand attached to point to a status on a display that resembles an old clock (but with one hand only). Which motor should I use?

I know with servos I can set the angle of the hand. Will the hand sag or move if I cut power to the motor? The reason I ask is that this display will be up and running long periods at a time. I don't want to waste power when the hand may only move once every 15 minutes. I don't imagine the hand would be very heavy, probably your typical clock metal hand with some fancy design.

With stepper motors, I understand that they move in angled steps. How do I know what the overall angle of the hand is? Do I have to count steps to get/set the hand angle? If the power gets turned off on the Arduino, then turned back on, how would I not lose track of the current angle? Would there be any power issues here? (I wouldn't think so as a floppy drive uses these.)

Thanks for tolerating my newbness. I appreciate any feedback. :o

So you want to use a stepper as a minute indicator?

Howdy chrome123,
I'm actually planning on having the hand point to weather conditions loaded from a web service, using this link as a general reference for the art project:
http://www.weather.gov/data/current_obs/weather.php

It would be a bit more generalized than the reference link above.

Well, you could make a stepper that has an endswitch (startposition) so that when the power fails it goes there and then goes to the weather thingy.

I think an inexpensive standard RC servo would work well in your application. The gearing in the servo should prevent it from sagging if the hand isn't too heavy.

Learning more about servos, I didn't realize many have a limited angle range. It seems that the RC variety (at least the type I was reading about) are "active", using current to try to hold their position, preventing them from being moved. I'll have to dig around to see if I can find a more "passive" (or whatever the official term is) servo. Or maybe I can force it to be passive through Arduino somehow. Another thing to look for is a good servo for 360 degrees of freedom, although there is use for limited angled ones as well. Thanks for the feedback mem.

chrome123, do you know if an endswitch is hardware or software based? I'm still looking into this. I like these servos for the simple fact I may be able to get some for free from old floppy drives. Although I haven't looked too far into additional hardware requirements yet.

One idea as far as servers go, would be to make a turned over coffee table display, removing the sag factor (which may not be a problem anyway)... although I don't know if that quite fits what I want just yet.

I read somewhere that you can make a servo that is angle-blocked (?) to turn at 360° by opening it and removing some components somewhere
http://www.uoguelph.ca/~antoon/gadgets/servos/servomod.html

An end switch is usually a hardware switch, really sensitive (not a tact switch). You can find some on printers, for the carriage stop. Or eventually, you can use an optical switch, salvaged from a mouse (wheel encoders).

If you want to turn the arduino off but yet keep track of the angle, you can write a variable to the EEPROM. It won't be erased when you shut down the arduino.

RC Servos use a potentiometer to provide position feedback and these restrict the angle to much less than 360 degrees. The mod to remove this restriction disables the pot feedback so it continuously rotates at a speed proportional to the pulse width, not what you want.

Although the holding power of a servo is considerably reduced when power is removed, I think you will find there is enough friction in a cheap standard servo to do what you want. You should be able to find something like this http://www.gpdealera.com/cgi-bin/wgainf100p.pgm?I=FUTM0031 for $10 or so and its well worth trying if you can get away with 180 degrees or so of rotation

Thanks for that great info. What are your thoughts on the servo in this link?:
http://www.acroname.com/robotics/parts/R298-1T-SERVO.html

It's a little more costly, but seems useful for 360 degrees. I guess it also requires more power. So far I have no experience in managing current or providing an extra power source that won't interfere with the Arduino somehow. One thing I like about the servos is they require less wires. :slight_smile:

The end switch i was talking about would be using in the void setup.

Basically you step back until you get a signal from the end switch and then start the program and also set that position to 0.

chrome123,
Ah cool. So now I just need to research on reading signals from a stepped motor. Thanks for the boost.

melka,
I also like your input on writing variables to EEPROM. That opens up many more doors for me.

There is a stepper library, so that's easy.

for the void setup

void setup()
{
while(digitalRead(endswitch) = LOW)
{
  stepper.step(1);
  delay(100);
}
val = 0;
}

and you could say this is at x steps from 0 , that is at y etc

and then just make it go

stepper.step(val - previous);

  previous = val;

val being the X or Y or etc

for the endswitch maybe something like

so if the code doesn't work for a reason you don't fuck up the motor/switch if the motor keeps going

To write to eeprom, there's a library in the original package (I guess)
Just
#include <EEPROM.h>
then
EEPROM.write(address, value);
or
EEPROM.read(adress);

Ridiculously simple ^^

the thing is that when you move the arrow when the power is off, it won't be correct

melka,
Awesome. I know I'll use that a ton on many projects.

chrome123,
Ouch. I can see that as a problem. Maybe there could be a reset button that clears everything and starts over when making manual adjustments. Thanks for the link. I can see how this could be helpful.

Thanks for that great info. What are your thoughts on the servo in this link?:
Products | Acroname

It's a little more costly, but seems useful for 360 degrees. I guess it also requires more power. So far I have no experience in managing current or providing an extra power source that won't interfere with the Arduino somehow. One thing I like about the servos is they require less wires. :slight_smile:

That looks like just the job for what you want. If it draws more current than your arduino can supply, you can always add a small external power source.