Help protecting Arduino from Servo

For a project I needed a fingerprint Scanner and a Servo to unlock my door. As a prototype everything went fine with the Arduino and mini servo, still with some humming problems, or noise at rest.
I needed a Servo capable to pull the door knob and I got a MG995.
Both the mini servo and the mg995 have been always powered from external power supply, never from the arduino pins.
With the new servo installed, for some reason I ignored the humming (at rest) noise for too long and when I looked to the screen of my variable power supply it was drawing the max amps selected, pulling around 9watt, the servo was so hot I couldn't hold with my fingers. It also damaged the Arduino and the fingerprint sensor which lights up but is not capable to enroll anymore( I tried with two different Arduinos).

The humming is now sorted with software: dettach servo is the last line of my sketch

A new servo and fingerprint are on its way. I'd like to add some stability and protect the arduino+fingerprint from servo voltage spikes... but my knowledge in electronics is quite basic. I designed this circuit(sorry for the drawing) with the components that I have available. I also have Zenner diodes.
Is this design right and capable to protect the arduino?

Please notice that I'm aware that adding diodes are not the best solution in terms of efficiency and temperature, but the servo is going to open the door slowly(less amps) a maximum of 10 times per day, only a few seconds per time, so the usage is little.

It seems to me that what you need to do first is get rid of the "humming noise" which is almost certainly you stalling the servo by commanding it to move further than is physically possible. By doing that you are forcing it to draw maximum power.

The way to stop it is not to artificially limit the power (which your circuit doesn't seem to do anyway) but by working out where the physical end points are and not sending the servo past them.

Steve

To completely isolate the servo from the Arduino use an opto-isolator or use a ready made servo shield with ps etc built in

The MG995 servo will hum/buzz at rest as it is a digital servo and is constantly holding it's position

MarkDerbyshire:
The MG995 servo will hum/buzz at rest as it is a digital servo and is constantly holding it's position

But it doesn't get hot while holding a position without any major loading, like you get when pushing on an immovable object. At least none of my digital servos ever have.

Steve

True - I would say that the OP's mechanical setup is down to the reason it got hot

Thanks for replies it gave me a clue about the possible reasons of overheating.
In other forums I read that I might over tighten the screw that attaches the blade to the axis.

The sketch gives instructions to move from 0 to 180 degrees. I'll restrict from 5 to 175 degrees, just in case was a problem in the limits.
Whenever arrives the new servo I'll start testing and monitor power consumption to avoid any overheating.

Thanks for the link, the shield is a bit expensive for my purposes, I'm wondering if I need a opto isolator for the servo signal wire and of I can use a non inverted cheap Opto isolator (?) Any ideas?

monkeyisland:
The sketch gives instructions to move from 0 to 180 degrees. I'll restrict from 5 to 175 degrees, just in case was a problem in the limits.
Whenever arrives the new servo I'll start testing and monitor power consumption to avoid any overheating.

I suggest you try the example Knob sketch with the potentiometer to work out exactly how far the servo needs to move. The thing is that servos are all different and sending commands of 0 - 180 to one servo may move it much further than the same command sent to a different type of servo.

Servo movements need to be calibrated and people often forget to mention this.

Steve

Hi,
Have you got bypass capacitors around the L78S05CV as per the datasheet?
7805Bypass.jpg
This is very important for the stability and noise rejection of the regulator and may have contributed to your servo failure.

Tom... :slight_smile:

Thanks TomGeorge and Slipstick, I didn't know both things, I'll apply caps and calibration when new servo arrives.

I can see that servos require extra job compared with other Arduino components.

  • most hobby/micro servos will NOT move the full range of 0 - 180 degrees. (regardless of what they say)..

I would trim down BOTH numbers until you know the range of your door knob/lock..

Also make sure all GROUNDS are tied together.. battery pack, Arduino & servo..

slipstick:
I suggest you try the example Knob sketch

or the Sweep sketch even, then you can modify the servo.write([b]pos[/b]) by changing 0 and 180 to MINpos and MAXpos respectively and then change those variables until you stop hearing the humming.