Les différents types de mouvements d’un servomoteur
. Par : Dominique, Guillaume, Jean-Luc
Vous répondez à :
Bonjour
Je suis presque débutant sur arduino et j’essaie d’adapter ce programme à mon cas particulier.(commande lente d’aiguilles donc avec writeMicroseconds()
Je suis arrivé au résultat souhaité mais je constate lorsque je commande deux aiguilles simultanément, un ralentissement important de la rotation des deux servos pendant la phase où ils sont tous les deux en rotation… si un décalage entre les deux commandes on voit nettement la variation de vitesse
Ce n’est pas un problème d’alimentation (à priori) puisque les deux servos sont alimentés par une alim 5v indépendante 1A
Peut-on expliquer ce phénomène par une boucle loop qui met deux fois plus de temps à s’éxécuter et dans ce cas peut on améliorer le résultat car dans mon installation je pourrai commander jusqu’à 5 aiguilles simultanément
Merci de vos réponses
19 Messages
-
Les différents types de mouvements d’un servo-moteur 30 août 2016 22:31, par Serge NORBERT
Bonjour
Je suis presque débutant sur arduino et j’essaie d’adapter ce programme à mon cas particulier.(commande lente d’aiguilles donc avec writeMicroseconds()
Je suis arrivé au résultat souhaité mais je constate lorsque je commande deux aiguilles simultanément, un ralentissement important de la rotation des deux servos pendant la phase où ils sont tous les deux en rotation… si un décalage entre les deux commandes on voit nettement la variation de vitesse
Ce n’est pas un problème d’alimentation (à priori) puisque les deux servos sont alimentés par une alim 5v indépendante 1A
Peut-on expliquer ce phénomène par une boucle loop qui met deux fois plus de temps à s’éxécuter et dans ce cas peut on améliorer le résultat car dans mon installation je pourrai commander jusqu’à 5 aiguilles simultanémentMerci de vos réponses
-
Les différents types de mouvements d’un servo-moteur 30 août 2016 23:11, par Serge NORBERT
Il n’y a que les … qui ne reconnaissent pas leur erreur…
En fait j’ai crée des fonctions…."Commande Aig1 à G… Commande Aig2 à Gauche…etc…. que je lance en fonction du bouton correspondant…
Mais le delay(2) qui détermine la vitesse de translation de l’aiguille doit rester dans le loop…1 fois… et non dans chaque fonction comme j’avais fait.
C’est dans l’erreur qu’on progresse le plus… il faut bien se consoler !!!!
Bonne soirée -
programme de16 servo-moteurs avec bouton pousoir 15 décembre 2016 11:28, par Etienne 59
bonjour,
Je suis dans la difficulté pour programmer mon arduino mega 2560. je débute et il faut que je commande 16 servos par boutons poussoir pour mes aiguillages et jevoudrais utiliser mes entrees A0, A1,… pour chaque boutons poussoir.
Merci d’avance.
Etienne 59-
Bonjour,
J’ai écrit ce programme pour 10 servos, commandés par 10 inverseurs : je pense que vous pouvez l’adapter à votre cas :
programme pour 10 servos lents
Il y a une procédure de réglage de la course des servos (valeurs minimales et maximales) avec enregistrement en EEPROM, vous verrez, c’est bien pratique.
D’autres pourrons vous orienter vers d’autres solutions
Bon courage
-
Merci pour votre réponse,
Mais malheureusement je n’ai pas d’EEPROM car j’ai un Arduino Méga2560 et je ne suis pas très bon sur la logique Arduino.
Pour que tout fonctionne comme je le désire, il faudrait que mes boutons poussoirs soient branchés sur chacune des entrées de l’Arduino.
Et que l’action sur un BP puisse amener le mouvement d’un servo et après son relachement qu’il puisse finir son déplacement.
Et que lorsque je réutilise ce même BP, le servo reprenne sa position initiale.
-
-
-
Les différents types de mouvements d’un servo-moteur 20 décembre 2016 19:47, par Dominique
Bonsoir Etienne,
C’est justement ce que fait mon programme :
tout d’abord le Mega2560 a bien une EEPROM (comme les autres Arduino, sauf le Due) et mon programme tourne sur un Mega, donc plus de problème de ce coté là.
remplacer un inverseur par un bouton poussoir est facile, si vous associez une variable "etat" à chaque bouton et que cette variable passe de TRUE à FALSE (et vice versa) à chaque appui sur le bouton.
regardez les articles sur les entrées-sorties et les boutons poussoirs dans Locoduino, et aussi, si cela ne suffit pas, sur les nombreux cours de programmation Arduino qui fleurissent partout sur la toile.
je pense que vous allez réussir à modifier le programme en conséquence, ce qui vous aura fait progresser.
Bon courage-
Bonsoir Dominique,
J’ai essayé de télécharger le programme sur l’arduino Mega mais il me dit qu’il est incompatible.
Comment puis-je faire ?
Je pensais qu’en regardant ce qui été fait avec cet appareil, j’aurais pu le faire aussi mais le langage C pour moi veut dire Chinois.
j’ai eu les yeux plus gros que le cerveau.
joyeuses fêtes-
Etienne,
Le programme que je vous ai proposé a été écrit pour et testé sur un Mega2560.
Donc ça doit forcément marcher.Maintenant si vous pensez que c’est du chinois, ne vous découragez pas du tout. Commencez par lire et faire les exercices qui sont décrits dans les articles "Pour débuter" et "Programmation, les bases".
Vous avez aussi l’excellent Hors Serie N° 1 de Hackable qui se trouve en librairie en ce moment : ne le ratez pas !
Il est indispensable de passer par les étapes d’initiation et d’apprentissage avant d’aborder un projet ferroviaire avec succès. Plein d’autres y sont arrivés avec un peu de patience.
Bon courage
Dominique
-
-
-
Les différents types de mouvements d’un servo-moteur 22 décembre 2016 18:35, par etienne59
On me conseille d’utiliser une boucle de scrutation mais je ne vois pas comment m’en servir
j’ai acheté le grand livre d’arduino mais je ne trouve pas comment enregistrer tout les BP pour la même action sur leur propre servo.
un petit coup de pouce pour le début m’arrangerai.-
Bonjour Etienne59,
Vous m’avez envoyé aujourd’hui un mail direct à ce sujet.
Cela ne me pose aucun problème d’aider mon prochain, bien évidemment, sauf que je ne peux répondre autre chose que ce que Dominique vous a dit le 22/12 :
Il faut d’abord avoir un certain nombre de bases (dont les boucles) en commençant par des choses nettement plus simples que des commandes de servos via la PWM.
Locoduino a aussi des programmes simples (case "Les programmes" dans l’accueil)-
-
Merci pour votre réponse rapide,
Puis je vous soumettre le programme que j’ai commencé ?
Actuellement, j’ai des messages d’erreurs mais je voudrais savoir si il y a un début de compréhension du système.
Aussi je n’ai pas beaucoup d’équipement électronique pour réaliser les montages.
Et je voudrais finir la commande de mes aiguillages assez rapidement car il me restera le cantonnement que je prévois sur un autre Arduino avec la signalisation.
bien amicalement
Etienne-
La cause des messages d’erreur est écrite en rouge en bas de l’IDE.
Chacun doit apprendre à corriger ses erreurs : c’est le seul moyen de progresser.
Vous n’irez pas jusqu’au bout de votre projet si vous ne maîtrisez pas cette pratique qui n’est pas de notre domaine ferroviaire mais de la programmation en général.
"Et je voudrais finir la commande de mes aiguillages assez rapidement car il me restera le cantonnement que je prévois sur un autre Arduino avec la signalisation." : C’est ambitieux mais n’oubliez pas que Locoduino est un site de partage de projets et d’expériences. Nous ne réalisons aucune prestation de programmation.
-
Bonsoir,
vous pouvez poster votre programme cote forum, ça sera plus adapté. Ici par exemple : http://forum.locoduino.org/index.php?board=7.0
-
-
-
-
-
Les différents types de mouvements d’un servo-moteur 22 décembre 2016 21:17, par Dominique
Pourquoi ne commencez-vous pas par des choses simples comme je vous l’ai suggéré dans ma réponse précédente ?
Rien ne sert de courir ; il faut partir à point.
-
Les différents types de mouvements d’un servo-moteur 11 janvier 2017 11:09, par Patrice
Bonjour, je suis assidument depuis quelques temps vos réalisations et vous félicite pour cette aide que vous nous apportez dans le modélisme ferroviaire. J’ai téléchargé le programme pour 10 aiguilles permettant le pilotage via un inverseur, il fonctionnait très bien jusqu’à une manipulation qui n’a fait passer en mode programmation EEPROM (je suppose puisque maintenant le terminal affiche ;
Version 0
0 :-1,-1
1 :-1,-1
2 :-1,-1
3 :-1,-1
4 :-1,-1
5 :-1,-1
6 :-1,-1
7 :-1,-1
8 :-1,-1
9 :-1,-1
comment j’ai fait ceci, je n’en sait rien maintenant mes servo sont bloqués sur la course -1.
j’ai cru voir une démo avec une carte fakir qui permet via une pin de faire la programmation des courses des différents servo (que je ne retrouve plus sur youtube) . Pouvez m’indiquer ou trouver ces informations et explications sur cette procédure me permettant de refaire une programmation correcte des courses des servo sur EEPROM.
Vous en remerciant par avance.
Cordialement
Patrice-
Bonjour Patrice,
Si vous jetez un coup d’oeil au sketch que j’ai donné plus haut, vous verrez que lorsque le moniteur est connecté à 115200 b/s, le fait d’envoyer "0" (zéro) entraine une réécriture de l’EEPROM avec les valeurs Min et Max des servos, plus un compteur qui s’incrémente en face de "Version".
Mon conseil donc est de recharger le sketch dans votre Arduino puis d’ouvrir le moniteur et de taper "0"
C’est justement fait pour sauvegarder les réglages des butées qui sont comprises entre 1500 et 1600 au départ.
Si vous ne comprenez pas comment fonctionne ces réglages, dites le moi.
Pour info ce programme ultra simple est là :
programme pour 10 servos lents
-
-
Les différents types de mouvements d’un servomoteur 20 octobre 2018 19:42, par hognon emmanuel
j’ai trouvé, sur la revue, loco revue N°855
comment faire fonctionner un servo, pour l’ouverture et la fermeture d’un passage à niveau avec deux servos
mais, je ne sais pas comment écrire le programme, avec deux servos.
Voir en ligne : loco revue LR page 99 N)855