Hi new to this wonderful new World of Arduino.

I was just wondering if a very knowledgeable expert could just give me a simple yes/no or maybe answer to the following. I’mnot after detailed instructions, though any pointers would be appreciated especially as to the parts/modules required. I just need to at least know that this is possible with this system before I go off on a wild goose chase… :smiley:

I have been tasked with a project and this is what I need to happen using the Arduino as a base:

• Push button control of 12 separate servos (or stepper motors?) each raising an arm.
So 12 buttons on a box each controlling it’s own servo.

• The servos need to simply move an arm through 90º hold it for a predetermined time i.e. 5 seconds then return the arm back to it’s original state. If it were possible to change the time the arm was held after being raised with a pot before the button was pushed, this would be a bonus but not essential.

• The distance from the button pushing to the servo arm waving is 30 yards, so is it possible to control the servos wirelessly using two Arduino’s one monitoring the buttons, the other controlling the servos.
Or would a cable be ok to use say a couple of 7 core cables to give control/power/ground or would the losses/interference in a cable not make the link reliable.

• Reliability, This is important. I know you can’t guarantee anything, but a stable function is a must so I realise that the servos need decent clean power/ground, but also the button pushing/servo waving must be as reliable as possible over this distance.

So in a nutshell is it possible to do this with the Arduino and thanks in advance for any advice as it’s appreciated… :wink:

Do any of the servo need to move at the same time, because you can probably multiplex them to save pins. Also yes it can be done wirelessly with two Arduinos. You can use RF, bluetooth, Xbees, and/or IR, but either way you will need another Arduino as a controller.

You will need a power supply capable of supplying enough current to all the servos and the possibly the Arduino too.

I don't know if I am a very knowledgeable expert, but you can certainly do this. You would need an external power source for the servos, and use a relay to switch them on and off. Here is an example on how to use relays. http://www.oomlout.com/oom.php/products/ardx/circ-11

You could hook up a single trimpot to an analog line, and when any button is pushed you can activate the relay for X amount of time where X is some scaled value of the trimpot reading. Here is an example on how to use trimpots. http://www.oomlout.com/oom.php/products/ardx/circ-08

Finally I would use a couple of xbees to communicate between the two Arduinos. 30 yards is too far for wired, but the cheapest xbees have a 90 meter range under optimal conditions which is well over your requirement of 30 yards. This will be the most difficult part but I'm sure the information is out there on the internet somewhere.

Good luck!

First off, you are way to young to shave and I think they are asking too much of a 4 year old!

If you don't mind using a 30 yard (3 conductors) cable you can send the signals using serial data (perhaps use an opto isolator/current loop) which may simplify the hardware.

If you are going to run a 4 conductor cable (telephone wire, and I think cables are easier and more reliable than wireless) then you do not need two Arduinox - you can run a shift register (or two of them) remotely even if you have to do the communication rather slowly (clock at 5 ms intervals!).

Thanks for the replies guys it gives me confidence that even as an electronics virgin it is possible to get this working one way or another, even if it takes me x10 times as long as any of you XD. Yes you're right about the shaving but as a very curious 4 year old I had to try this shaving lark to see why people indulge every day... ;)

I would look for solutions that have an Arduino close to each servo, because you don't want to be sending raw servo control signals over TTL lines at those distances.

If all the servos are going to be close together I would look for a solution that used a single Arduino to control all the servos, and another Arduino to do the button/pot reading and send input states to the remote Arduino. If the servos are widely separated then I would have a separate Arduino per servo and have a three-wire loom for each servo that provided power, ground and a digital signal where HIGH represented one servo position and LOW represented the other; all the timing logic would be done centrally by an Arduino at the control panel.

You can start with one arduino and one servo, no buttons, and try driving the servo and reading a pot value. Then if successful, try to determine the pot value and do the variable delay. I recommend wireless solution. It saves you from having to deal with a long cable and all the problems it brings to the table. Easiest wireless is RF modules. You use one arduino to Serial.print with the RF module on the serial port, then use the other arduino to Serial.read.

Per the servo library the arduino can support up to 12 servos, and can hopefully support at least 12 digital/analog inputs (if not, then the mega is available). If so then you probably could use two arduinos, one for button input, and one for servo control. You could probably get the two arduinos to communicate via TTL serial the 30 meters at lower baud rates. This would be the minimum possible setup. If you have some $$$ to spend, then more complex/reliable setups might be used. Minimum you could get two arduinos and 30m of cat3 four conductor wire and do some communication testing between the two arduinos.