0
\$\begingroup\$

It is a simple project - a focus system for a taken lens and anamorphic adaptor. I have three pots. The first one I use as a manipulator. The second is used to get the position of the continuous rotation servo motor#1. The third pot is used to control the position of the other continuous rotation servo - motor#2. Motor#1 rotates the taken lens and motor#2 rotates the adaptor.

I use an AOZ1014AI to step down a 7.4V Li-ion battery to 6.5V. First I used two 360-modified JX DC6015(4.8V-6.6V) servos. It worked ok for a minute and then motor#2 burnt. Next I tried Doman servo (4.8-7.2V). This time motor#1 burnt.

Is it ok to connect two servos to one source in parallel?

AOZ1014AI Schematics: enter image description here

Here is my project schematics: enter image description here

And here is AOZ1014 schematics: enter image description here

And here is the calculations that I've done in the supplier's xls file: enter image description here enter image description here

\$\endgroup\$
  • 1
    \$\begingroup\$ Have you checked the voltage of the stepped down output? If so, with a multimeter or with a scope? Idle and under load? \$\endgroup\$ – pipe May 2 '18 at 13:55
  • 3
    \$\begingroup\$ "Is it ok to connect two servos to one source in parallel?" - Yes it is. Would you like to show us your AOZ1014 schematic and some measurements you've taken? \$\endgroup\$ – brhans May 2 '18 at 13:55
  • 3
    \$\begingroup\$ The PCB layout isn't a schematic, though it's a fairly simple circuit it would be a lot easier if you included a real schematic. \$\endgroup\$ – John D May 2 '18 at 15:00
  • 1
    \$\begingroup\$ You might be getting overvoltage due to the regenerative energy when you slow or stop your motor. Your buck can't sink current, and even if it could it may pump up the input cap until the IC fails. You should monitor the output while slowing and stopping your motors from full speed to see if you get voltage peaks above the abs max rating. \$\endgroup\$ – John D May 2 '18 at 18:05
  • 2
    \$\begingroup\$ It ought to be pretty difficult to burn out a standard RC servo like you are using. They stand up to abuse pretty well. You must be getting too much voltage for a fairly long time to kill one of them. \$\endgroup\$ – JRE May 2 '18 at 19:02
1
\$\begingroup\$

While over-voltage is certainly most probable suspect, have you considered checking your code for PWM stability?

If something interrupts pulse train or switches it between two different duty values fast enough the servo might still "work", but will constantly alternate voltage on motor, which would burn it in no time.

One of the tricks I am using when working with linear actuators is to implement hysteresis + low pass filters for all analog inputs in software. Just out of curiosity I'd add debug printout of analog inputs - in these MCUs the ADCs are super-sensitive to noise (and you will be getting a lot of it from servos) without special precautions.

Another one is to make sure you re-configure PWM registers only when necessary (e.g. take into account servo resolution - it is pointless to change duty if servo cannot tell the difference) because in some PWM modes changing frequency produces "glitches" in the output.

UPDATE:

From the comments below: "The more operations I add the more unstable the movements become. The motor starts to move back and forward".

This to me is very strong indication that this could be software problem, not hardware. If adding couple operations is enough for motor to start moving it follows that without those operations it still is getting reverse command, only not long enough to visibly move.

Basically, you might be commanding it to move back-and-forth as fast as you can, and only when ADC actually changes either "back" or "forth" becomes slightly bigger, enough for servo to change position.

Is there any "humming" coming from servos even when they are seemingly stationary? Especially without physical load.

\$\endgroup\$
  • \$\begingroup\$ Very interesting point. But sorry, what do u mean by “debug printout of analog inputs”? How can I get it? And what is hysteresis and low pass filter in software? \$\endgroup\$ – Anton Zimin May 6 '18 at 23:11
  • 1
    \$\begingroup\$ What I mean is you can modify your code where you are reading ADC inputs and print them out, so you can check them in whatever developing environment your are using. If the values jumping all over the place then you definitely need some kind of filter - either electronic or software. \$\endgroup\$ – Maple May 7 '18 at 0:15
  • \$\begingroup\$ The hysteresis filter compares incoming values and only allows new values through if there were several (strength of a filter) subsequent changes in same direction. The low pass filter combines part of previous value with part of incoming data to get a new value. \$\endgroup\$ – Maple May 7 '18 at 0:21
  • \$\begingroup\$ Now I see. Yes, there is a small oscillation +-1, but I think I catch it up by decreasing a resolution twice. But thank you I will check it again. \$\endgroup\$ – Anton Zimin May 7 '18 at 10:04
  • \$\begingroup\$ The thing is that Arduino seems to bit a bit slow for all this kind of filters. The more operations I add the more unstable the movements become. The motor starts to move back and forward because it looses the pot’s value where it had to stop. \$\endgroup\$ – Anton Zimin May 7 '18 at 10:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.