Servo distance

Probably in the wrong place, probably been questioned before but I couldn’t see anything.

I have an Arduino set to run a few servos, wondering the maximum distance for the servos to be from the arduino.

Cable run from control panel to servos is about 20m.

Would it be better to

  1. feed power locally and run the PWM control line to the servo at 20m? or
  2. Place the arduino locally and run the switch cables (toggle switch to arduino) for 20m? or
  3. Include a TTL circuit to provide the high/low signal for the switch pin and provide a control line independent of the arduino wiring?

I’m edging towards the third option to negate voltage/signal loss.

I would consider a wireless solution. The RF24L01 radios are cheap and easy to use. Maybe cheaper than 20m of wire.

And robin2's simple rf24 tutorial will get you started using them.

20 metres seems a long distance.

Perhaps put one Arduino (and a suitable power supply) near the servos and send control signals to it wirelessly from another Arduino - perhaps with a pair of nRF24L01+ transceivers.

…R
Simple nRF24L01+ Tutorial

You might use some cat3 four conductor telephone wire to control the servos in various ways. Wireless solutions may be another alternative to save wiring.

zoomkat:
You might use some cat3 four conductor telephone wire to control the servos in various ways. Wireless solutions may be another alternative to save wiring.

There is already a run out of CAT6 cable along the route, was considering using RJ45 breakout boards to tie it into the arduino circuit.

As it's for a model railway point control, the cables already exist as the servo units have microswitches for location feedback.

You might do some experimenting to see if the servo control pulses will travel that distance to operate the servo. Below is a setup you might use to get power to the servo and another board if needed.

ezservo.jpg

ezservo.jpg

Dave_M0YAA:
As it's for a model railway point control, the cables already exist as the servo units have microswitches for location feedback.

That would make me even more inclined to locate Arduinos near where the servos and micro-switches are. Instead of having dozens of wires going back to the control panel you could just have 2 or 3 wires for communication - using Serial or an RS485 connection.

...R

Dave_M0YAA:
Cable run from control panel to servos is about 20m.

Servo leads any longer than about 1 metre will create what we used to call servo creep.

It happens as the signal changes due to capacitance and they servo starts to take on a mind of it's own.

First began to notice it on the larger r/c glider ailerons.

No options there other than to put small signal booster in the signal line.

That was for around 2 metre and we would place the booster around 1/2 way.

20 metres will be disasterous.

Follow other advice and pump the signal via NRF24 units.

bluejets:
Follow other advice and pump the signal via NRF24 units.

To avoid any confusion NOT the signal that goes from the Arduino to the servo but the value to be used with Servo.write() or Servo.writeMicroseconds(). Or some proxy for that such as whether the turnout should be 'S'traight or 'T'urned

...R