writeMicroseconds() reduced voltage?

Hello!

i have these tiny servos, that i am using. They are 3V-4.2V servos. When i connected them to the Arduino + and ground wires of 5V, they melted a little bit and their functioning was damaged.

Now, i connected 2 diodes to the + wire and it is good in the limits: 4.06V.

My question is: Since the signal (PWM) third wire, is also carried by 5V - am i also in a risk of damaging the servos, because of a too high signal voltage?

If the answer is NO, why? If the answer is YES - is there a way to reduce the writeMicroseconds() command voltage, from the software side? Somehow to have an analog adjustable (0-255) writeMicroseconds() command?

Thanks a lot!

The Arduino 5V pin is not for servo motors.
Normal standard servo motors (4.8 to 6V) could require a start current of 500mA or more. That is too much for the Arduino.

You solution with 2 diodes might work or not. You should measure the voltage as the servo is not active and also with full power. But the servo current is still supplied by the Arduino.

The voltage of the output pin can not be changed.

I can think of few solutions.

  • Use normal servo motors, and power them with a seperate power supply (or a seperate voltage regulator or DC-DC converter)
  • Use a 3.3V Arduino board. You still have to make a power supply for the servo motors.
  • Use a 5V Arduino board with your servo motors. Read the datasheet of the servo motors, perhaps the inputs are 5V tolerant or a series resistor of 4k7 in the signal line will work. Perhaps you need level shifters. You have to take a good look at the current that the servos need, you probably need a seperate power for the servos.

If all you want to do is reduce an output control voltage, a simple voltage divider using two resistors will do the job.

Hey AWOL and Erdin! Thanks a lot for replying!

I am new with electronics. I need, for my application, the most small and lightweight solution.

Do you mean using 2 resistors + something that is called a voltage divider? or do you mean, that the 2 resistors themselves, are the voltage divider?

What is the "7", at the end of "4K" ("4K7") - do i need one of these 4K7 resistors, or two of them? do i just solder them one after the other - first the arduino signal wire, then the first resistor, then the seconds resistor, then the servo signal wire?

Thanks.

The two resistors are a voltage divider, also known as a potential divider.

The 7 in 4k7 is 700 ohms.

Thanks!

The only thing is that i don't understand the setup of the two 4.7K resistors - you don't mean that i should just put them one after the other this way:

5V signal from Arduino (white wire)------- 4.7K Resistor1 ------ 4.7K Resistor2 ------- Servo signal input (again white wire)

You didn't mean to connect them this way, did you?

If you didn't, maybe you meant something like this, that i found on the following web page:

here is the page:

http://www.nerdkits.com/forum/thread/2659/

here is the connection diagram, that i think, maybe, you are referring to:

| servo | Arduino white wire----| |----Resistor#2----0.0V black wire Arduino that servo already connected |resistor #1 |

If this is what you meant, the problem is, that i don't understand that diagram....

Is the 0.0V the ground (black wire coming from the Arduino) or just the servo signal input (white wire)? If it is the black wire- then in my case, the servo is already connected to the black wire (the black wire coming from the Arduino)?... so i only need to take care that Resistor 2 is connected also to that black wire coming from the Arduino?

This means that i only need to punch a little hole, on the white wire insulation, the wire that connects the Arduino signal to the servo signal - and from that soldering point, to connect the two resistors, one after the other, and the end of resistor number 2, to connect and solder to a little hole i do on the black wire insulation, the one that runs from the Arduino ground to the servo ground input?

This is confusing..... Please help....

roineust, sorry, my fault. I mentioned a 4k7 as protection resistor, but AWOL corrected me and wrote about a voltage divider.

Like here.
http://learning.codasign.com/index.php?title=Light_Dependent_Resistors_and_Arduino
Vin = from the output pin of the Arduino.
Vout = to the servo signal (white) wire.

With the diodes you power the servo motors with about 4V.

To convert the 5V signal to 4V, you need a voltage divider that is Vout = 4/5 Vin.
For example R1 is 2k2 and R2 = 10k
Or R1 = 1k and R2 = 4k7

With the voltage divider the servo gets the right signal voltage, and the resistors also protect against too much current (for both Arduino and servo) if something would be wrong.

Do you know the maximum current of those lightweight servo motors ?

Hey Erdin!

Now i think i understand the setup! The diagram you sent a link to, is much more clear!

I think i will use the 1K and 4.7K resistors.

Regarding the servo current draw, here is the servo i am referring to:

http://hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=17540

Thanks!

I can't find any specification for the current. Using the 5V pin of the Arduino to power a servo is normally a bad idea. Could you measure the maximum current when blocking the rotation of the servo ?

The lightweight low-voltage servos work at 2.8 to 4.2V. That means it is designed to be powered by a single Li-ion or Lipo cell. Also a Arduino (compatible or standalone) can be made to work at those voltage.

Hey Erdin,

For the + and ground wires, i only had to put one or two diodes on the red wire (+) and the voltage was set to the right number, but then, i understood from a search i made on the issue, that with a PWM pulse, as a signal pulse to the servo, a diode will not be good - so that is why i am asking only about the signal, and not the power - anyway, in my case, the power to the servo, does not come from or through the Arduino.

So, regarding the signal 5V wire that connects to the servo - is there another way, that is easier than using the 1K and 4.7K resistors? Now that you have explained it to me, using that clear diagram, it does not seem to be very complicated, but if you can tell me of an even easier way, i would be delighted to hear about it.

Thanks.

The voltage divider is the most easy way. It's ten times easier than the other options: a level converter board or a level converter chip or a mosfet or logic gate.

So the 5V power to the servo is not from the 5V pin of the Arduino. That's a relief.

If you have it working and want to make it small, the Pro Mini for example is very small. The Pro Mini doesn't even have a usb connector, so you have to buy an extra board to be able to upload a sketch.

Hey Erdin!

Yeha! i am working with the pro-mini, its great!

Hey Erdin! …or anyone who can help me with this problem.

I tried to build the voltage divider, as instructed by you - but the servos stopped working.
Attached is a JPEG, please look at it to see what i did.

At first, i tried connecting only the 2 diodes and nothing more, with the hope that the Arduino 5V signal, will not be too high for these tiny servos. What happened, was that the servos where working, but also vibrating and moving, when no signal was sent to them - so i concluded, that this is because the 5V signal is too high for them.

Next, what i did, was to solder the voltage divider, as instructed on the page you sent me -

http://learning.codasign.com/index.php?title=Light_Dependent_Resistors_and_Arduino

  • but then the servos stopped moving and responding at all.

What should i do?

Thanks,
Roi.

but then, i understood from a search i made on the issue, that with a PWM pulse, as a signal pulse to the servo, a diode will not be good -

You got a link to where you found that info? I would think a diode might work better on the servo signal line to reduce the voltage than a voltage divider.

Hey Zoomkat,

So it is not true, that a diode is only good to reduce the voltage of the DC power to the servo?

I understood that if i use a diode, also on the signal to the servo, then it cuts the lower part of the signal sine, or somthing of the sort... which will change the servo reactions?

Thanks.

Hey Zoomkt,

So it is not true, that a diode is only good to reduce the voltage of the DC power to the servo?

I understood that if i use a diode, also on the signal to the servo, then it cuts the lower part of the signal sine, or somthing of the sort... which will change the servo reactions?

Thanks.

I understood that if i use a diode, also on the signal to the servo, then it cuts the lower part of the signal sine

I think you misunderstand the nature of servo PWM signalling - the signal is digital, and has no negative voltage components,