Go Down

Topic: Librairie servo et PWM simultané (Read 629 times) previous topic - next topic

Bubule

Bonjour

J'ai pratiquement finalisé mon projet de gestion pour mon aquarium. Cela fait quelques mois que j'explore et teste les différentes possibilités de ma Duemilanove.

Sur celle-ci est raccordé 2 servos (pin 9 et 10) pour oscillateurs, 3 sorties PWM ( Pin 3,6 et 11) pour la commande de pompes 12VDC en vitesse variable. Les sorties 2, 7, 8 et 13 sont également occupées en sortie TOR.
J'ai réservé les pin 4 et 5 pour le raccordement ultérieur d'un afficheur en liaison I2C.

J'avais testé indépendamment chaque fonction, et cela fonctionnait bien.
A partir de là, j'ai conçu et réalisé une platine complète intégrant tous les composants (MOSFET, TRIAC, Relais, Régulateur 6V (pour les servos), fusibles, …).

Seulement, maintenant que tout est raccordé, je rencontre des problèmes :

Lors de la commande des pompes, (MOSFET en PWM), les servos s'affolent.
Après quelques lectures, j'ai cru comprendre que c'était l'utilisation de la librairie <servo> qui posait problème.

J'utilise la librairie <servo.h>, et j'utilise la version 018 (en français).

Existe-t-il une parade ?
Vers quelle direction dois-je m'orienter ?
- Passer à la dernière version de soft (0022) qui ne sera plus en Français
- Gérer les servos sans utiliser la librairie <servo>  Là, je sens que çà va se corser
- ?

A noter que j'utilise l'instruction millis() pour gérer mon horloge interne.

Franck

Teiva

Bonjour Bubule,
Tu rencontres un problème de conflit de librairie, sur l'atmega il y a 3 timers qui servent pour tout :
- le pwm ( 1 timer pour 2 sorties pwm )
- la librairie servo ( je crois que c'est le timer2 ).
Donc tu devras regarder de prêt quel timer utilise servo et ne pas utiliser les broches pwm qui sont pilotés par ce timer.
C'est un problème classique quand on empile les librairies ...

A+ Teiva


www.Zartronic.fr : Arduino & Robotique

Bubule

#2
Aug 28, 2011, 11:33 am Last Edit: Aug 28, 2011, 02:18 pm by Bubule Reason: 1
Bonjour

Ne cherchez plus, j'ai trouvé !!

J'ai trouvé la piste lorsque je me suis rendu compte que seul un servo battait la chamade lorsque j'envoyais un PWM sur une voie (peu importait laquelle). En fait, c'est le type de servo qui était en cause.
Modéliste de longue date, j'ai une multitude de servos à ma disposition. Et là, j'avais employé un Futaba S9202. Alors qu'un bas de gamme Hitec, positionné sur la sortie 9 ne donnait aucun signe de trouble.

La solution : J'ai ajouté un condensateur tantale 100nf au plus près du servo qui délirait, entre 0V et signal, et tout est rentré dans l'ordre.

Go Up