Servomoteur commandé par potentiomètre

pdevisme1

Senior Member
Bonjour à tous,

En suivant un document de Thierry Lancelot trouvé je ne sais plus où sur le net, j'ai réalisé le programme en pièce jointe pour commander un servomoteur à partir d'un potentiomètre.

Tout fonctionne correctement à part un léger tremblement/ronflement ( ou pas d'ailleurs ça dépend ) du servomoteur une fois en position.

Je voudrais savoir si ce tremblement/ronflement est normal, s'il y a un problème ou un risque de dégradation de ce dernier.

J'utilise un servomoteur acheté chez A4 technologie ( référencé K-MR-SERVO au cas où ).

Ce serait pour faire un "pan and tilt" maison et pédagogique.

Merci d'avance.
 

Attachments

dje8269

Senior Member
Bonsoir ,

Ce probléme a déjà été rencontrer par plusieurs personnes .
Il en ai sortit qu'avec un Picaxe , il est préférable d'utiliser la commande pulsout à la commande servopos quand celui ci est à l'arrêt . A essayer

bonne chance
 

pdevisme1

Senior Member
Bonsoir,

Donc pas de détérioration possible du servomoteur ? C'est juste que ça tremble un peu donc ? Et visiblement c'est "normal" ?

Est-ce que donc dans mon programme je peux remplacer servo 0,w0 par pulsout 0,w0 ?

Merci bien pour votre réponse.
 

dje8269

Senior Member
Donc pas de détérioration possible du servomoteur ?
Détérioration non mais usure prématuré peut etre .

Et visiblement c'est "normal" ?
Non ce n'est pas normal , mais connu . avez vous découplé l'alim ?

Est-ce que donc dans mon programme je peux remplacer servo 0,w0 par pulsout 0,w0 ?
Je ne connais pas logicator . mais normalement oui vous pouvez ! .

Par contre ne mettez pas w0 ?? poru un servo classique , car si la valeur sort de 220 le servo risque de ne pas aimé ! Mais si vous avez toujours fais comme ca je dirais oui !

Attendez l'avais d'un expert quand même . je ne suis qu'un novice , mais j'ai pas mal triffouillé avec les servo ces temps ci lol
 

PieM

Senior Member
les tremblements des servos sont à éviter. L'origine n'est pas bien ciblée sur les picaxes. Cela entraîne une usure, une consommation inutile et n'est pas forcément conseillé pour l'équipement lié.
si vous le pouvez utilisez la commande pulsout de la même valeur. Par contre il faut impérativement que ces pulsout soit envoyés toutes les 20 ms.
Donc ajouter un pause 18 après la commande pulsout 0,w0
 

dje8269

Senior Member
Je rajouterais : pourquoi stocké dans w 0 un chiffre qui ne peut pas dépassé 255 ? Une raison particulière ?
 

pdevisme1

Senior Member
Bonjour à tous,

Je rajouterais : pourquoi stocké dans w 0 un chiffre qui ne peut pas dépassé 255 ? Une raison particulière ?
C'est pour ne pas être en dessous de 75 ni au dessus de 225.

J'ai essayé en remplaçant servo 0,w0 par pulsout 0, w0 et en rajoutant pause 18 après.

A part un petit ronflement ( avec un léger mouvement d'aller retour ) dans une des positions extrêmes tout fonctionne correctement.
 

dje8269

Senior Member
C'est pour ne pas être en dessous de 75 ni au dessus de 225.
Non ce que je veux dire c'est que vous pouvez utiliser b0 plutôt que w0 . W0 est une variable de type word , allant de 0 à 65535 , comprenant 2 variable Bytes qui elle peuvent aller de 0 à 255 . Comme votre chiffre ne pourra jamais aller au dessus de 225 , vous pouvez donc le stocké dans une Byte ( b0 par exemple) . Qu'il dépasse 255 lors des calculs n'est pas gênant, c'est la valeur du résultat qui compte

Pour le petit ronflement , ce n'est aps normal non plus , mais du coup la , ce serait peut être plus l'alimentation qui serait en cause . avez vous un schéma a nous montrer
 

BESQUEUT

Senior Member
Par contre ne mettez pas w0 ?? poru un servo classique , car si la valeur sort de 220 le servo risque de ne pas aimé !
Pas très clair...
Selon la notice, Servo (ou servopos) peut aller de 75 à 225. La variation possible est donc de 150

Si b0 peut aller de 0 à 255, alors b0*10 va de 0 à 2550 et l'utilisation de w0 est justifiée.
et 255*10/17=150 donc b0*10/17+75 va bien de 0 à 225
Tout ceci est correct.

Le petit ronflement est sinon normal, du moins classique. L'usure du servo ne peut intervenir qu'après de très longues heures( suivant sa résistance...) ce qui ne devrait pas être le cas en mode pédagogique (mais pourrait poser problème en usage permanent)
C'est pourquoi il existe effectivement des techniques pour limiter et/ou supprimer ces petites variations de position. A noter que ça dépends aussi du servo et de son électronique interne (analogique ou numérique...)
 
Last edited:

dje8269

Senior Member
Si b0 peut aller de 0 à 255, alors b0*10 va de 0 à 2550 et l'utilisation de w0 est justifiée.
et 255*10/17=150 donc b0*10/17+75 va bien de 0 à 225
Tout ceci est correct.

Ce que je veux dire c'est que le résultat de la formule ne pourras jamais dépassé 225 , il est donc inutile de la stocké dans un word !!!!

pour gagné une byte il peut écrire :

b0=b0*10/17+75
 

BESQUEUT

Senior Member
Ce que je veux dire c'est que le résultat de la formule ne pourras jamais dépassé 225 , il est donc inutile de la stocké dans un word !!!!

pour gagné une byte il peut écrire :

b0=b0*10/17+75
Autant pour moi : le calcul se fait en words , mais le résultat tiens dans un octet, donc OUI ça marcherait aussi.
 

pdevisme1

Senior Member
Bonsoir à tous, je viens de faire des essais sur d'autres interfaces. Résultat, plus de ronflement, donc tout est OK pour moi.

En tous cas, merci à tous pour votre collaboration.
 
Top