Commander un servomoteur continu

Bonjour, je suis étudiant en classe prépa et je travaille sur un projet nommé le TIPE, j'ai besoin de trouver la fonction de transfert interne de mon servomoteur à rotation continue, pour cela je l'encastre avec un potentiomètre mais mon problème est que le potentiomètre est limité à un rotation de 180 degrés. Je dois donc écrire un code qui commande mon servomoteur de 0 à 180 ou de 0 à 170 degrés mais je n'y arrive pas. En copiant des codes sur internet mon servomoteur fait plusieurs tours.
J'ai également un servomoteur SG90 qui n'a une rotation que de 90 degrés et les codes trouvés sur internet marche avec lui. J'en déduis donc que c'est le code qui n'est pas adapté au servomoteur à rotation continue. Si vous avez une idée, je suis preneur, merci d'avance.

Bonjour et Bienvenue

En arrivant sur ce forum il est nécessaire de faire un arrêt sur cette page: :
https://forum.arduino.cc/t/reglement-et-bonnes-pratiques-du-forum-francophone/861014
d'en prendre connaissance et faire ce qui est demandé .

L'apellation 'servomoteur a rotation continue" est trompeuse, il n'y pas d'asservissement de position , c'est un moteur à courant continu dont la vitesse de rotation dépend du rapport cyclique du signal de commande.

Il a l'aspect d'un servomoteur (c'est d'ailleurs souvent un servomoteur modifié)
il a également en commun avec un servomoteur le fait d'avoir un rapport cyclique comme grandeur d'entrée
la grandeur de sortie par contre est la vitesse angulaire

Merci, est-ce que je peux pas exemple écrire un code qui permet de faire tourner mon moteur à courant continu à vitesse constante pendant 0.1 seconde ? Cela résoudrait le problème en ne dépassant pas les 180 degrés du potentiomètre.

Si la fonction de sortie est une vitesse, il suffit de mesurer la vitesse. Avec un codeur ou simplement avec une fourche optique, il est facile d'avoir la période de rotation et par la la vitesse.

Il y aura forcément une accélération, et un freinage. Donc une vitesse variable.

Il te faut commencer par bien comprendre la différence entre un servomoteur et "la chose" que l'on appelle très bêtement un servomoteur continu ou un servomoteur 360 °

Un servo moteur est asservi en position.
Le potentiomètre sert de capteur de position pour le retour vers l'asservissement de position.
Les potentiomètres courants ont une course de 270 °.
Il existe des servomoteurs avec des potentiomètres "quasi 360°" ou même multitours mais uniquement dans du matériel professionnel cher.

Les servo moteurs continus sont asservi plus probablement commandés en vitesse.
S'ils sont asservi en vitesse il y a à l'intérieur un capteur, tout comme le potentiomètre sert de capteur de position.
Souvent il n'y a que 4 vis à défaire pour voir ce qu'il y a à l'intérieur ... et ... être capable de remonter.
Ils utilisent les mêmes signaux de commande que les premiers, mais pour un usage différent.
La solution potentiomètre ajouté sur l'axe de sortie ne peut pas fonctionner : en 0,1s le moteur n'atteindra probablement pas sa vitesse maximale, tu resteras en phase transitoire.

La solution proposée par Viieroi est la bonne : une roue codeuse ou simplement percée entre une fourche optique.

As tu une datasheet sur ces servomoteurs continus ou une notice commerciale ?
As-tu un ordre de grandeur du nombre de tours maximum par minute ?
Pour dimensionner un banc de test, c'est plutôt utile.

Bonjour

Dans mon projet j ai dû à apprendre à faire la différence entre un servomoteur à position d angle et les moteurs à courant continu....

J avais écris cela à l époque:

Bref, j'ai découvert ensuite que c'était un servomoteur à rotation continue...tres pratique quand on veut faire une voiture téléguidée mais pas du tout dans mon projet ou mon servo va a une position et revient à sa position initiale (à moins d'avoir raté quelque chose).

Pour ceux qui seraient amenés à utiliser un servomoteur a rotation continue, je recommande de lire ceci:

Le premier lien ne fonctionne pas

Hello villeroi

C est bien dommage car ce lien était top... il marchait encore avant hier... peut être un pb de serveur chez l herbergeur.

:roll_eyes: