Ta réponse est très complète. J'ai bien compris ce que tu me proposes de faire, mais j'ai cependant 2 "problèmes" :
- Le premier est que j'ai acheté un servo 1T, donc il est censé faire 1 unique et 1 seul tour, et pourtant, en envoyant en consigne 360, il parcours un peu plus de 2 tours... Bon passons, à la limite, c'est mieux ainsi, comme ça, je suis sûr de pouvoir faire au moins un tour... mais ça me déstabilise quand même !
- Le deuxième soucis est que la fonction que tu proposes, MAP(angle), va en gros faire correspondre deux valeurs, si j'ai bien compris ton exemple :
servoAPN.write(map(angle,0,360,32,154));
le 0° théorique à la valeur réelle trouvée, soit 32,
le 360°théorique à la valeur réelle trouvée, soit 154.
Le calcul sera donc (je suppose) proportionnel, donc si je demande 180°, pile entre 0° et 360°, il devrait m'envoyer en commande 61, pile entre 32 et 154. Cela impose que tout soit linéaire.
Or, j'ai fait des tests, en envoyant au servo des "write" tous les 10° théoriques, pour voir comment le servo réagissait.
Lors du passage de 0° à 10°, il tourne de presque 90°-100°, puis ensuite, lors de la commande de 10° à 20°, il tourne de 30-40°, ainsi de suite, jusqu'à arriver en butée au bout d'un peu plus de 2 tours... Donc ce n'est pas proportionnel...
Sur ce, je vais tester ce que tu proposes !
Pour d'autres personnes, la version FR de map :
http://arduino.cc/fr/Main/Map