Consistent with Peter's assertions, I too have successfully interfaced
several servos directly and concurrently with both an ARMexpress and
an ARMmite. The power and ground are ovbiously from a power source of
the correct level and polarity, that leaves the signal, which is
indeed a 1 to 2 ms wide pulse ever ~20-30ms. The servos I am using
(pretty old ones, I might add) have a high enough signal input
impedance where it doesn't load down the ARMmite/ARMexpress' outputs
much at all.
Regarding the pulse train, max throw in one direction will occur if
the pulsewidth is ~1ms, and max throw in the other direction will
occur with the pulsewidth is ~2ms. 1500us (1.5ms) will yield servo
mid-scale...
I have ran the servos with as much as 50ms between sending the pulses,
but if there is any appreciable loads on the servos, they will start
to move and when the next pulse comes, it gets bumped back. 20ms is
good (documented spec for many servos), 30ms is acceptable. Longer
than that and you're on your own. I haven't tested with updating them
at anything faster than 20ms. I've had discussions with folks
regarding the newer digital servos where the normal old rules don't
necessairly apply in all cases. If those are the target servos for
your code, then I can dig up some dialogue I had earlier this year
with Ben Sturgess and Joe "Max-VTOL" Davis (if they don't chime in
here soon by themselves...
I have some pretty solid Servo Control Code in the UAV project files
in the Groups Files section. The project was put on hold to aid in
the beta testing functions, V7, life (professional and personal) gets
in the way, etc. and now I am working another project that will be
announced to the group later. But, I do plan on getting back to the
UAV project as some point later this year, and with all of the changes
that ARMbasic has gone through recently, it is sure to be a much more
efficient app, when I get it mature. I am excited and looking forward
to picking up where I left off at.!.
Regardless, take a peek at the UAV project files. You should note
that I tried to use as descriptive as possible variable names, and I
think I did a descent job at documenting the code. As always, if
there ARE questions when you get to reviewing is, please go ahead and
send me an email, or post herein, and I will holler back, when I am able.
Take care. I hope that you all have a great spring & summer.
-t