Is there any C code for ATMEL's AVR micro controllers to read servo motor position data from a serialport and control 16 RC servo motors simultaneously?
Controlling 16 RC servo motors simultaneously
Apr 21, 2004
10 Replies
There is plenty of code out there for 8 channels. Why not use two AVRs?
Peter
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.659 / Virus Database: 423 - Release Date: 15/04/04
Thank you for the idea. Would you tell me where can I find C code for AVR to drive 8 RC sermo motors?
Most AVRs include 8 A/D channels for reading the servo pos. However, you would need external D/A to drive the motors. Your C codes depend on your external hardware.
Actually you need digital signals to drive the RD servo. No need for a D/A at all.
SioL
No, the servo-motors are controlled by a pulse train. You feed them a stream of pulses, where each pulse is between 1 and 2 ms wide, and the pulses repeat with about a 20ms period.
You don't need external hardware. You just need to generate digital pulses -- 5V logic levels should work fine.
Grant Edwards grante Yow! After this, I'm going
at to BURN some RUBBER!!
visi.com
to
Have a look at the Dontronics web site at
formatting link
This example is an 8 channel RC servo driver but it's written in assembler. A little work would get that translated into C.
Peter
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.659 / Virus Database: 423 - Release Date: 15/04/04
The only one's I know of is using one of the
formatting link
ISOPOD's or ServoPod's. They run upwards of 23 servos no problem. They have code examples too. You use the serial port to program and you can send commands to it if you program it so.
You could also do it using some of the AWC
formatting link
PAK-8 pulse out co-processors too.
Have you tried asking this as
formatting link
assembler.
It's easily extensible to 16 channels as is. The servo positions are stored as data in ram, and there are interrupt driven serial routines in the same package, so in the main loop it would be trivial to parse out some language like S1=128 and stick the appropriate value in ram for the next update.
Assembler code for controlling 16 servo's from an Atmel controller is available at:
formatting link
Anton
"RC servo" schreef in bericht news:408658dc$0$442$ snipped-for-privacy@news.optusnet.com.au...
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required