Multiplexing Outputs To Servos

Hey Everyone,
So I have a project in mind or rather furthering a current project, I have built a prototype robot that simply walks backwards and forwards, I used 6 micro servos to get it to work and it worked and now I'm ready to move on and use normal servos and a few more servos this time (10 for the legs alone). so when I add arms and a head I'm going to be talking about 19 or 20 servos,

Now here's the issue to my understanding the servo library is limited to 12 servos (I think, please correct me if I'm wrong) and there are only 20 i/o pins on the arduino uno (what I'm using now) and 22 i/o pins on the mini and nano (what I plan to use.) I know it's possible to use shift registers with servos but from what I have read it's rather complex and quiet difficult. So i was wondering about multiplexing the outputs.

apart from only being able to move 1 servo at a time is it possible to use a multiplexer to control lets say 8 servos on each output if I used an 8 channel multiplexer like the 4051?

Thanks for your help
PhayilBoy

I know it's possible to use shift registers with servos but from what I have read it's rather complex and quiet difficult. So i was wondering about multiplexing the outputs.

I would imagine that it is quite complex. Servos need to be update pretty regularly, like every 20 milliseconds. Multiplexing the output that often is going to leave you no time to do anything else.

and nano (what I plan to use.)

You're building some ungainly contraption with 20 servos and you are that constrained for space?

You're probably better off using two Arduinos - one for the legs and one for the other parts, and have them communicate as required. Or, get a Mega which can handle 20 servos.

Thanks Paul, yeah had a feeling timing was going to be an issue, I will be sure to give a try though.

I probably should have elaborated on that, I'm not tight on space, however I would like to use as little space as possible for the arduino since batteries to power 20 servos are going to have to be pretty big.

You're probably better off using two Arduinos

You have read my mind on that one, I had that idea to I will give both a go and see which works best

Thanks again Paul
PhayilBoy

There are small multi servo controllers available that can be controlled via the arduino.

Haven't tried this chip, but might be an inexpensive solution.

http://www.web4robot.com/Flexel.html

As a servo control is basically a PPM (pulse position modulation) signal then you can't multiplex it. It dose not make any sense.