Servo driven through TIP102 with problems

I am still working on how to do my new wifitank, and the new one will have two servo motors on to tilt and pan the camera, but I also want the servo motors to use as little as possible.

My idea was to simply use a TIP102 to turn them off while not in use, but one of the servo motors are having some issues with that. It can suddenly totally ignore what it is told, and drive to the mechanical end of what it is capable of doing, exactly as if I am powering it from a power source that can't deliver enough current and then having the voltage drop too low.

So it could easily be the TIP102 limiting it too much, but what could I do instead? I have thought about relays, but I would prefer to avoid them (the sound they make is really annoying me).

Are there anything I could do instead of the TIP102? Or do must I just live with the annoying noise of the relays when people want to move the camera?

TIP102 should be able to achieve what you wanted to do. I am doing a robotic project myself and did similar things using TIP41...

There are two possible causes of your problem, in my opinion:

  1. Did you measure the Vce load voltage while the servo in question is running? The only way the servo would still be running is that some current is still passing through the transistor. If this is the case, you might need to check how the Vbe is supplied. It needs to be pretty close to zero for it to work, especially you are using a darlington transistor.

  2. Is the motor in a bridged circuit? If so, you will have to place the transistor at the input side not at the bridge output side (it won't work there).

Ah, maybe I didn't explain it right.

The problem is when I have activated the servo, and also 'opened' the TIP102, it can then suddenly go crazy.

While not having the TIP102 'open' it is doing nothing, exactly as it should :slight_smile:

And the servo is a normal servo motor from a RC car.

The problem is when I have activated the servo, and also 'opened' the TIP102, it can then suddenly go crazy.

While not having the TIP102 'open' it is doing nothing, exactly as it should

Would have to see how you wired the transistor and power to the servo to tell for sure. But if you were using the transistor to turn on and off the ground path of the servo, it could be that the servo was finding a 'backdoor' power circuit from the Arduino supplied servo control signal coming from the Arduino. That might be bad as if so it could be drawing well above the output pin current rating.

Lefty

But wouldn't the problem then be there when I was turning the servo off?

But wouldn't the problem then be there when I was turning the servo off?

Yes, that is what I thought you were saying, but I might have missread your symptoms. Anyway a drawing would be nice to get a better picture of what you are dealing with.

Lefty

Servo is off when i pull pin 6 low, this is how it should be
Servo is suddenly going crazy when pin 6 is pulled high, and the servo is getting moved to random positions, this is where the problem is.

If that is a 10k ohm resistor (brn,blk,org) to the base of the transistor, I think that is much too high and current starving the servo when powered on. Try a 200-500 ohm resistor and see if that doesn't improve the situation.

My favorite switching transistor for applications like that is a logic level mosfet, http://www.sparkfun.com/products/10213

Lefty

It is a 1k, I have tried to just connect it directly to the 5v, same result as when connected to the arduino's pin

Maybe the servo is just too sensitive... The other (and bigger) got no problems at all.

Your drawing doesn't show a connection from the external power ground to the arduino ground pin. That is a requirement.

Lefty

Your drawing doesn't show a connection from the external power ground to the arduino ground pin. That is a requirement.

Lefty

I know, only put the stuff in where the problem was. And since I could connect it directly to 5V and still having the problem, I figured the arduino did exactly as I expected it would, and the problem be either the tip102 or the servo. But servo works fine when connected directly to 5V, so the problem must be the tip102, like I also mentioned in the first post.

Maybe it only works where there is no snow or ice on the ground. :wink:

You still need to have any external power supply ground wired to the arduino ground if in the future you utilize external power for something.

Note sure what your problem might be then, other then a flacky transistor. As I said I love using logic level n-channel mosfets for switching loads with an arduino, almost fool proof.

Lefty

Maybe it only works where there is no snow or ice on the ground.

You still need to have any external power supply ground wired to the arduino ground if in the future you utilize external power for something.

As I said, I know that. But I didn't put that in because I had located the problem to not have anything to do with the arduino.

As I said, I know that. But I didn't put that in because I had located the problem to not have anything to do with the arduino.

I understand your thinking logic, however not having a ground does interject a new real problem. Or am I missing something, like you had the grounds connected but just didn't draw it?

Lefty

Really... if you want us to help diagnose... we need to see everything.

I can't figure out just where/how you have your transistor installed. If you are trying to control the servo by turning the ground on/off, you may smoke the internals. The best thing to do is build the pan/tilt such that the servo only moves the cam and not have to hold the cam in position.

I understand your thinking logic, however not having a ground does interject a new real problem. Or am I missing something, like you had the grounds connected but just didn't draw it?

Okay, for the third time, I know! Yes, I left it out because the arduino, or anything about it isn't the problem. The only problem I got, is that one of the RC servo motors are going crazy when turned ON, through a TIP102.

By "one of the" I mean that I got more than one, and only one of them is having this problem.

Really... if you want us to help diagnose... we need to see everything.

I am not asking for a diagnose, I got that already. The first thing I said was that the TIP102 and the servo didn't work together, and what I could do instead. That is what the problem is, that is what I am asking about.

I can't figure out just where/how you have your transistor installed. If you are trying to control the servo by turning the ground on/off, you may smoke the internals. The best thing to do is build the pan/tilt such that the servo only moves the cam and not have to hold the cam in position.

Seems to work fine still (when running them without the TIP120), but how can I make it turn the positive on and off instead?

The pan/tilt is already made so the bracket will take most the load instead of the servo, but still they very often end up in a position where the motor is twitching.

This is the one I am using.

I am not asking for a diagnose, I got that already.

No, you presently have a problem symptom, not a diagnosis for the cause of that symptom.

I'm obviously not helping you effectively, so I will just follow the post to see if a proper diagnosis of the problem shows up.

Lefty

No, you presently have a problem symptom, not a diagnosis for the cause of that symptom.

I don't?

Arduino is controlling servo as expected when everything is wired directly. No problems there.
If I add a TIP102, the servo seems to get voltage drops, just like I also said earlier.
To get it working right again, I simply remove the TIP102 and wire the servo directly, and the servo then again does what I want it to do.

I would say that I have found the problem, the TIP102 and the servo not working well together.

There are only 3 things in this, an arduino, the servo, the tip102, if I remove one of them (tip102) so I only got the arduino and servo left, and it then works, then I can't see any reason to why the problem should be the servo or the arduino.

Maybe my logic is totally wrong, but if I only got 2 main components, which work flawlessly, and then adds an extra little thing to it, and it then stops doing as expected, and resumes to normal operation when I remove that extra thing again, then my logic tells me that the problem is that extra thing I am putting in.

And that is what I have been asking for all the time, an alternative to that component that makes the other components doing unexpected things.
An easy alternative would be a relay, which I successfully tested as the first thing too, but I would prefer something that didn't say anything when switching on and off.

I looked at the pan/tilt and it looks to be a balanced setup. You should use your multimeter to measure the current used by the servos when holding position. I think it will be very little. You may be trying to fix an issue that doesn't really exist.

Maybe my logic is totally wrong, but if I only got 2 main components, which work flawlessly, and then adds an extra little thing to it, and it then stops doing as expected, and resumes to normal operation when I remove that extra thing again, then my logic tells me that the problem is that extra thing I am putting in.

Wow! What a relevation! I've already mentioned that when a mini servo connected to my arduino lost its ground connection, it started twitching and started getting hot. Perhaps your servo twitching will cure itself if something internal finally burns out.

Finally, if you actually research what you are trying to do you may find that you are actually trying to operate the servo at 4.3v instead of the minimum 4.8v. A logic level MOSFET might fix this, but switching on the ground issues will still be there. Perhaps using servo attach/detach in the software might be a solution.