Hi, I hope you can help me with this little misunderstanding here... I've got 3 servos: 1x Analogue JR ES519 (http://www.modelflight.com.au/radios/servos/jr-es519-standard-servo.html) and 2x digital E-Flite DS76 (http://www.modelflight.com.au/radios/servos/e-flite-ds76-7-6g-digital-sub-micro-servo.html). Now, the code I'm using is a modification of an example Sweep, basically telling servo to turn to 0, 90 and 180 degrees. If I connect analog servo, I can see its arm turning to 0, 90 and 180 just fine. BUT!!! When I connect either of those 2 digital ones, their arms spin to 0, 90 looks more like 45 to 60 and 180 is more like 135 or so. When I try to use servo.writeMicroseconds instead of servo.write, the 700uS gives pretty much 0 degrees, 2400uS gives 135 degrees, and 1500uS - 45-60 degrees. So, they correspond just fine. Unfortunately, I can't make my servos turn even close to 180. Again, the same tests with analog servo give me exactly what I want. What am I doing wrong? Are both (!) my digital servos faulty? Cheers
The ~90 degrees of travel is most likely the design limit of the servo; they're typically not used in situations where more than 90 degrees of travel is required. You're not doing anything wrong and it has nothing to do with digital vs. analog.
servodatabase.com can provide some help in finding servos capable of wider ranges of travel, but, as you'll see, the total range of travel is a rarely reported specification (only 32 servos out of 2,235 report greater than 160 degree travel).
Thanks for the response, it was informative. I was a bit surprised about these limitations as when you read any guides or manuals on servo operations, they always draw a picture with servo horn at 0 and 180 degrees...
Digital servos are sometimes programmable to set the desired rotation range, but the programmer probably cost more than the servo.