Hi, Everybody,
As i had this problem before ... here are some lines:
'************************************************* ****************************
'Lissage du mouvement - motion smoothing
'************************************************* ****************************
Echantillon = 0
Servoposc = Servopos
IF Servopos > ( Servoposold + 1 ) THEN
Servopos = ( Servoposold + 1 ) MIN Servoposc
ENDIF
IF Servopos < ( Servoposold - 1 ) THEN
Servopos = ( Servoposold - 1 ) MAX Servoposc
ENDIF
Limit:
LOW Servo
PULSOUT Servo,Servopos
Servoposold = Servopos
IF NOT ( Echantillon / 10 ) THEN
Echantillon = Echantillon + 1
PAUSE 20
GOTO Limit
ENDIF
There are 2 Things there : first I limit the "growth" of the signal to be sent and second, I only send one pulse every 10 input pulse ...
so, it's the minimum speed for "pseudo continuous" travel of the servo ... after, steps are too much visible.
With a 20 Mhz Clock It would be better ( resolution is 5 times better ... )
The "LOW" just before pulsout is to ensure a good "1" pulse ... just try to connect your servo with power on, and you'll understand ...
Good luck
Alain




Bookmarks