Servo moteur pour passage à niveau

Bonjour, Quels sont les modèles de servo que je peux utiliser pour déplacer un bras de 0 à 180 degrés pour fabriquer un passage à niveau? j’ai 2 servos SG90 mais oui sont à rotation continue. Est-ce que je peux les paramétrer pour les faire bouger en fonction des angles? sinon que me conseillez vous comme modèle? Merci

bonjour
prendre des sg90 à rotation… pas continue :yum:

les servos “rotation standard” sont prévus pour de la rotation 0/180°
exemple

Le terme servo à rotation continu est une pure escroquerie : ce ne sont pas des servo.
Il existe sur le marché des “vrais” SG9O :

  • 90 °
  • 120 ° (assez rares)
  • 180 ° (les plus courants)
  • 270 ° ( il faut un peu chercher pour en trouver)

Attention_1 tous ces servo peuvent faire plus ou moins que l’angle indiqué : tout dépend de la mécanique interne.

Attention_2 : l’ordre pour positionner en degrés n’est vrai que pour les servos 180 ° (encore une escroquerie dans le choix des termes).
Pour un servo différent il faut considérer qu’un ordre 0° correspond bien à 0° mais que l’ordre 180° correspond à l’angle max.
Si tu prend un servo 90°, pour le lever à la verticale il faudra lui dire de faire 180°
C’est le monde arduino, on ne peut pas avoir le beurre et l’argent du beurre : à force de tout simplifier au maximum dès que l’on sort des sentiers battus (servo 90 ou 270°) il faut faire fonctionner ses neuronnes.

Attention_3 on lit “partout” que le temps de l’impulsion de commande est de 1,5 ms plus ou moins 0,5 ms.
Cela a été une norme, mais ce n’est plus la seule et en tout cas pas celles des SG90.
Je n’ai pas le chiffre en tête, il faut ouvrir le fichier servo.h pour lire les nouvelles valeurs.

Compte tenu de la remarque précédente la commande en angle “adaptée” reste la plus simple.

bonjour 68tjs
avec la lib servo , il est souvent preferable d’utiliser

servo.writeMicroseconds(uS) 

a

servo.write() 

et de faire une “pseudo calibration” des extremes

merci à tous

Oui,
Mais,

La fonction servowrite en angle fait la conversion angle vers µs en appliquant une règle de 3 , pardon un produit en croix, MAIS il faut bien connaître les limites de temps min et max.
Dans 99% des cas la littérature les donne entre 1µS et 2µs or maintenant c’est faux, il existe plusieurs normes.

Je suis de moins en moins sûr que demander aux personnes sans expérience de fouiller dans les fichiers des bibliothèques soit une bonne idée.

Extrait du fichier Servo.h :

#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo  
#define MAX_PULSE_WIDTH      2400     // the longest pulse sent to a servo 
#define DEFAULT_PULSE_WIDTH  1500     // default pulse width when servo is attached
#define REFRESH_INTERVAL    20000     // minumim time to refresh servos in microseconds 

Je pense que la solution règle de trois sur l’angle max est la meilleure.