the datasheet of the “MS-12A Smart Servo”
( https://b2b.makeblock.com/products/smart-servo-ms-12a.html )
states that the motor has an angular resolution of 4096 (steps / per revolution) which translates to an angular resolution of (360°/4096) = 0.088°
For a large scale project I need proper programming (with C++) and wanted to use an Arduino to control many Servos.
Unfortunately I stumbled upon the following lines in the “MeSmartServo.h” header file from the “Makeblock-Libraries-Master” which I found on Github:
- boolean MeSmartServo::moveTo(uint8_t dev_id,long angle_value,float speed);
- boolean MeSmartServo::move(uint8_t dev_id,long angle_value,float speed);
As you can see it says “long angle_value” which means that for “angle_value” only values of the type “long integer” are accepted, for example “45°”, “240°”, “-90°”.
However, I need the motors to move angles smaller than “1°”, for example “0.18°” but the Arduino library can not handle such floating point parameters.
Is there any way, for example with other controller boards, to achieve higher precision than 1° steps?