VOITURE GUIDEE PAR LE SON: Problème servomoteur (Arduino DUE)

Bonjour à tous,
Alors voilà, dans le cadre du Projet de terminale science de l’ingénieur, mon groupe et moi avons décidés de concevoir une voiture guidée par le son.
Le principe est assez simple (en théorie): Trois micros, deux moteurs, un servomoteur, et un anneau 16 leds couleurs (de chez adafruit).
Il y a un micro devant, à gauche et à droite. Le micro de devant définit la vitesse des deux moteurs qui font avancer la voiture. Et les deux autres micros définissent l’angle du servo moteur (qui contrôle la direction du véhicule), le servo est à 90° quand la voiture va tout droit, 0° quand elle va à gauche et 180° quand elle va à droite.

Ma partie est (vous l’aurez deviné) la programmation arduino. Mais, à une semaine de rendre le projet, je fais face à un bug que je n’arrive pas à résoudre:
Le servomoteur ne tourne pas (il tourne des fois mais aléatoirement).

J’ai fait un programme qui gère seulement le servo et il marche très bien, le problème ne vient donc pas du câblage mais bien de l’arduino (donc de la programmation).

Dans ce programme de test j’ai vérifié plusieurs choses:

  • S’il n’y avait pas de problème de noms de variables, ce n’est pas le cas
  • Si le problème venait de la résolution d’écrite analogique de l’arduino (12bit) mais sur une pin PWM ce n’est pas le problème
  • Si on observait un signal quelconque sur un oscilloscope, on ne voit rien (sauf quand ce dernier marche sur le programme test).
  • La valeur retourné par servo.attach(servoPin);, cette dernière est toujours de 0, même quand il marche.

Les moteurs qui font avancer le véhicule sont aussi contrôlés par PWM (pour gérer la vitesse) et marchent très bien (même quand le servo ne marche pas).

Me voilà donc dans l’impasse à 1 semaine de rendre le projet (jeudi 9/06) et j’ai vraiment besoins d’aide ! En pièce jointe je vais mettre le programme et une photo de projet.
Si vous avez besoins d’autres informations pour m’aider, n’hésitez pas à demander.
Merci beaucoup de votre aide !
Cordialement

Projet.ino (8.23 KB)

projet.jpg

Si le servo ne bouge pas ou mal, il peut déjà s'agir d'un problème de valeur transmise.

J'insèrerai déjà un Serial.print sous la ligne n°178 [donc entre // CONTROL et leServo.write(servoAngle);] qui permettrait déjà de voir, via le moniteur, ce que reçoit le servo.

// CONTROL
 Serial.print (servoAngle); // Ligne de contrôle via le moniteur
 leServo.write(servoAngle);

Merci pour ta réponse mais j’ai déjà vérifié (exactement comme tu l’as proposé), et la valeur est bonne.

C'est pas facile de voir correctement sur ta photo.

Mais compte tenu de tes propos:

-Servo fonctionne seul mais pas sur le robot en marche

-Une pile 9v pour l'ensemble

Il y aurai bien pas assez de puissance pour tout gérer et la tension doit s'écrouler et le servo répond plus.

Essaie une autre alimentation avec plus d'amperage dispo et vérifie le fonctionnement

Ah oui en effet ton hypothèse est plausible, je peux pas vérifier cela aujourd'hui mais dès demain je vérifie.
Je peux fournir deux photos du schéma électronique.
(Sur le schéma c'est une arduino mega, mais on utilise bien une due)

Merci beaucoup !

bonjour,
+1 pour le manque de puissance.

pour vérifier, tu pars du servo et tu rajoute un par un les pompeurs de jus.

Bonjour,
Alors j'ai rajouté un autre pile 9V en parallele et j'ai essayé de rajouter le moteur un par un et le servo ne fonctionne toujours pas.

Mais j'ai découvert un des "facteurs" de ses réactions aléatoires, quand la vitesse des moteurs (les deux qui font avancer) augmente alors le servo va à 180°.

Ah, bon en écrivant ce message le servo c'est cassé, il tremble mais ne tourne plus (même avec le programme de test)...