Go Down

Topic: Gestion simultanée de moteurs et de servomoteurs sur Arduino uno (Read 239 times) previous topic - next topic

rpsoft

Bonjour
Je viens de débuter sur Uno et pour augmenter la puissance de sortie dans le but de gérer des moteurs ,j'ai acheté une carte Doit.am qui permet de gérer 4 moteurs  et 16 servomoteurs (simultanément?).
Après 2 jours d'essai ,j'ai réussi à faire fonctionner les quatre moteurs qui ont utilisé 8 sorties de mon Uno(2 à 9) .  Les pins 10,11,12 et 13 sont utilisés en entrée de données. J'ai cru comprendre dans les docs qu'il ne fallait pas utiliser le pin 1 ,il reste donc libre 14 et 15.
Je suppose que chaque servo doit utiliser un pin en sortie ,donc je pourrais en utiliser 2 et pas 16.
Probablement que j'ai raté quelque chose dans mon cours pour débutant.
Merci et félicitation pour votre site

kamill

Bonjour,

Mets un lien vers ta carte.
Je suppose que ta carte utilise un circuit spécialisé pour piloter les servo-moteurs qui se commande en I2C ou SPI (genre PCA9685). Voir la doc de ta carte pour l'utilisation.

rpsoft

Bonjour
En fait j'ai acheté cette carte en lisant la documentation sur "https://github.com/SmartArduino/SZDOITWiKi/wiki/2-4ch-DC-motor-%26amp%3B-16ch-servo-shield---motor-and-servo-shield"

En transformant le programme basique donné sur le site ,j'ai réussi à gérer les 4  moteurs individuellement  pour commander une grue jouet que je réalise entièrement avec mon petit fils et lui donner les bases de fonctionnement des automatismes.

Pour parfaire le fonctionnement ,j'aurais besoin de quelques servo 180°.

Voila le motif de ma demande d'aide

Merci

kamill

Comme je le supposais ta carte utilise un PCA9685 pour gérer les servos.
Cherches "arduino PCA9685" et tu trouveras des librairies et exemples pour t'aider.


rpsoft

Rebonjour
Suite à votre explication ,j'ai étudié la liaison I2C et réalisé un programme de gestion de servomoteurs sur base des bibliothèques  Adafruit_PWMServoDriver et Wire.
Le programme fonctionne.
Comme je l'avais expliqué dans mon premier message ,mon but est d'utiliser le shild  pour la gestion de moteur CC  et de servo.

J'avais naivement supposé qu'il suffisait d'introduire les variables des deux programmes dans le préambule ,ensuite les deux setup ensemble et pour finir les deux loop ensemble.

J'ai une erreur de compilation à la première ligne du setup du programme combiné
pwm.begin();
erreur:expected initialazer before 'pwm'

Je précise que chaque programme fonctionne sans problème indépendamment l'un de l'autre.
J'ai essayé différentes adresses pour les bibliothèques sans résultat.
Avez-vous une idée ?
Merci

kamill

Je ne vois rien dans ma boule de cristal.
Comment veux tu qu'on te réponde sans le programme.

rpsoft

Bien
J'ai résolu le problème ,tout fonctionne .
Il me reste une question théorique :
Lorsque j'utilise un servo ordinaire bas de gamme type 9g tout fonctionne ,mais l'avais reçu des servos digitaux neufs d'un ami qui ne fonctionnent pas.
La programmation est t'elle différente?
Merci et félicitations pour ton travail

Go Up