My son has been having a blast creating circuits, soldering them, and doing some light programming (12 year old, just learning to control things in C without a real deep understanding of what is happening still). He built a circuit to control a 360 degree servo mechanically attached to the adjustment wheel of a clock mechanism. The goal was to make the hands move fairly fast (slightly over 2 hours per real minute) and at one point rotate it at 1 hour per 2 seconds.
He managed to get the hour per 2 seconds point working using the hacked servo (modified to be 360 rotation). The issue he is having is with the slower movement. He has tried a lot of different PWM values but he can't get a smooth/slow rotation....or even consistent. I am afraid what he is trying to do isn't actually even possible?
It looks like inertia may be working against him...at 1500 uS pulse (with 15mS between pulses) the servo is held at center. at ~1460 uS it will move usually, but it's a big jump...2-3 minutes tick off at a time. He can't get a smooth movement until about 1420 uS or so of on time and then it is moving faster than they want.
Any ideas?
He managed to get the hour per 2 seconds point working using the hacked servo (modified to be 360 rotation). The issue he is having is with the slower movement. He has tried a lot of different PWM values but he can't get a smooth/slow rotation....or even consistent. I am afraid what he is trying to do isn't actually even possible?
It looks like inertia may be working against him...at 1500 uS pulse (with 15mS between pulses) the servo is held at center. at ~1460 uS it will move usually, but it's a big jump...2-3 minutes tick off at a time. He can't get a smooth movement until about 1420 uS or so of on time and then it is moving faster than they want.
Any ideas?