problème avec un Servo (débutant)

Bonjour,
Je débute avec l'arduino, je possède une UNO et un servo moteur de marque Modelcraft RS-2.
Me basant sur ce tutoriel en anglais : Arduino Playground - SingleServoExample
J'ai copié-collé le code dans l'application Arduino et celui-ci me dit : 'refresh' is not a member of 'Servo'
(ce qui me parle pas vraiment :~)
du coup mon servo moteur n'est pas utilisable. Je croyais celui-ci défectueux mais en collant et exécutant le deuxième code dans Processing, ça fonctionne :slight_smile: mon servo moteur réagis à la position de ma souris dans la fenêtre noire.

Mais que ce passe t'il avec le logiciel arduino ? On dirait qu'il ne reconnait pas son propre code ??

Un grand merci d'avance à ceux et celles qui pourront m'aider

Bonjour,

Le premier code est destiné à être installé dans la carte ARDUINO via l'IDE Arduino
Le second code est destiné à être installé dans Processing et donne des ordres à la carte ARDUINO pour commander le servo qui y est connecté.
Les 2 codes fonctionnent ensemble.

En bougeant la souris, tu envoies la position X vers la carte ARUINO pour faire bouger le servo.

Le code Arduino peut fonctionner seul en utilisant la fenêtre Serial Monitor, en tapant par exemple "s120"

Bon courage.
Olivier

La librairie utilisée par le programme que tu as copié utilise une librairie servo différente de celle qui est livrée avec l'IDE arduino (voir le lien au début de la page que tu cites).
Je pense que tu peux mettre cette ligne en commentaire ou la supprimer purement et simplement. Cette fonction n'est pas nécessaire avec le librairie standard.

Merci à Bernardino et fdufnews pour vos explications

alors dans l'appli arduino j'ai mis en commentaire le Servo::refresh(); du coup il me upload sans problème le code.
c'est après que ça coince, j'ouvre le serial monitor et envois s120 ou n'importe quel autres données mais il ne se passe rien =(
j'ai essayé plusieurs branchement du servo dans d'autres analog in mais rien non plus

ou est-ce que ça coincerait ?

Merci d'avance

vj_dobermann:
Merci à Bernardino et fdufnews pour vos explications

alors dans l'appli arduino j'ai mis en commentaire le Servo::refresh(); du coup il me upload sans problème le code.
c'est après que ça coince, j'ouvre le serial monitor et envois s120 ou n'importe quel autres données mais il ne se passe rien =(
j'ai essayé plusieurs branchement du servo dans d'autres analog in mais rien non plus

ou est-ce que ça coincerait ?

Merci d'avance

Je pense que ça coince dans la doc que tu n'as pas lue et qui se trouve dans le lien que tu as donnée au début.
Il est expliqué que les commandes sont envoyées avec angle suivi de s.
Donc pour pointer à 0 tu envoies 0s pour pointer à 90° tu envoies 90s
Si tu regardes un peu le code de l'arduino tu vois que le petit interpréteur qui est dans loop comprend:

  • les chiffres de 0 à 9 qu'il se contente de concaténer pour former un nombre (il n'y a d'ailleurs pas de contrôle sur la valeur)
  • les lettres s et w qui envoient la valeur précédemment reçu au servo
  • la lettre a qui attache le servo
  • la lettre d qui détache le servo

au temps pour moi, mais je ne maîtrise pas vraiment l'anglais technique en programmation...

en effet ça fonctionne en envoyant par exemple 9s dans le serial monitor :smiley:

dans mon petit projet, j'aimerais faire tourner le servo moteur d'un huitième de tour tout les x heures, c'est pour un système de distribution de la nourriture pour mon aquarium :slight_smile: