Hello, I have a problem with DS04-NFC servo, which I use in vending machine project like a servos that rotates with springs. I control servo via Arduino Mega. I use 4 servos in my project. It is possible that servos seem to stiffen or something like that? Because my servos doing their job, but when they reach a certain position or are not used for a long time and I want them to spin, so when they are about to spin, they start to make a winding (clicking) quiet sound and don't spin. But when I help them by my hand or finger, just little push, they are stop to clicking and start spinning. I change several times a power suply, first I was power it by step-down module, which I powering other components, but I found it is not good, servos just clicking, so I think that they are current limited due to other components, so I try it with batteries with a little more success - servo was working, but sometimes they are started to clicking and the batteries were running out very fast and their voltage go down too, so I decided to power the servo with PC source via 5V branch, which one should not have so big current limit. Exactly, there was a 5,13 V. But the problem still persisted, servo just clicking, when they were to spin. Or some servo spinning, but another just clicking. Again when I pushed the servo slightly with my finger, the servo came from that "stiffen" position and started rotating. I think that problem was with low voltage, but I know that for servo is enaugh 4,8 V. So I use a another stepdown module (LM2596) to increase voltage to 5,5 V (6V for servo is maximum) and hope that this will solve the problem. But it wont. Servos now again rotating or just clicking, and it is enaugh to slighly push the servo and servo start to rotating normally. It doing each servo. Can there be some problem in impulses? I am using 1500 us to stop servo and 2000 us to rotate servo left. For a testing I use this code:
#include <Servo.h>
Servo servo1;
void setup() {
servo1.attach(4);
}
void loop() {
servo1.writeMicroseconds(2000); // rotate
delay(1700);
servo1.writeMicroseconds(1500); // stop
delay(500);
}
and the same coding I use in the vending machine program, but there is no difference in servo control between this and that code.
Servo rotates exactly as I want, but sometimes the servo gets into that "stiff" position or I don't know how to call it and after the vending machine shuts down and on, or after a long time i turn on vending machine, some servos rotating, and some just clicking. I really don´t know what to do with it. Maybe it may be a broken tooth, but I was looking inside and didn't see that there was any tooth broken out or missing in that gearbox. Plus, it would be strange if all of the servos were going to do it. Other components work properly.
Has anyone encountered this problem?
Vending machine project which I am building is like this:
https://howtomechatronics.com/projects/diy-vending-machine-arduino-based-mechatronics-project/#commentsThank you for your answers.