LOCODUINO

Parlons Arduino => Trucs & astuces => Discussion démarrée par: JPM06 le juillet 14, 2020, 07:03:18 pm

Titre: Câblage I2C et servos
Posté par: JPM06 le juillet 14, 2020, 07:03:18 pm
Bonjour à tous,
J'envisage de motoriser les aiguillages d'une gare avec des servomoteurs commandés par des modules I2C PCA9685.
Je voudrais optimiser / minimiser le câblage et je me pose les questions suivantes:
- quelle est la longueur maximum d'un bus I2C?
- le bus I2C est-il sensible aux parasites générés par les trains (ici, en conventionnel)?
- quelle est la distance maximum acceptable entre le générateur PWM (ici PCA9685) et les servos?
- peut-on commander les servos avec un seul fil par servo, les alims étant distribués de servo en servo?
Merci pour tout retour d'expérience sur la question.
Titre: Re : Câblage I2C et servos
Posté par: Dominique le juillet 14, 2020, 10:34:14 pm
Bonjour,

Une recherche dans le forum avec les mots « parasites I2C » donne une dizaine de réponses.
Il y a aussi pas mal de discussions sur le câblage.

Le bus I2C n’est pas le plus sûr moyen pour commander des servos et il est fait principalement pour des distances (très) courtes (Inter-Integrated-Circuit)
On peut voir une comparaison des bus ici : https://socialcompare.com/fr/comparison/comparison-of-network-buses-for-arduino-usage (https://socialcompare.com/fr/comparison/comparison-of-network-buses-for-arduino-usage)

Bon courage
Titre: Re : Câblage I2C et servos
Posté par: simontpellier le juillet 15, 2020, 01:48:21 pm
Bonjour,

étant ces temps ci particulièrement sensible à ce qui touche à l'I2C, j'étais obligé de regarder de quoi il était question !

et constater que je ne sais pas répondre aux questions, sauf pour la dernière : oui bien sûr, sous réserve que j'ai bien compris la question, peu importe que la tension provienne d'un nœud ou d'une antenne. Et aussi confirmer que, en effet, l'I2C est chatouilleux.
Pour le reste... chaque configuration ayant sa spécificité, j'imagine qu'il n'y a pas de réponse absolue. Je peux néanmoins confirmer qu'un bus I2C n'est pas sans surprises, mais je vois que vous êtes averti. Dans mon cas pourtant, ça n'est jamais sur le PCA9685 que j'ai eu des soucis.

Je signale au passage qu'il y a sur LOCODUINO des articles sur un sujet "satelliteV1" qui donnent à la fois à réfléchir sur l'organisation générale du contrôle commande et une parade possible aux problèmes récurrents des bus I2C. Solution qui répond de plus au souci de réduction du câblage.

Bonne lectures
Titre: Re : Câblage I2C et servos
Posté par: JPM06 le juillet 18, 2020, 12:46:14 pm
Merci à tous deux,

Je précise qu'il n'est pas question d'équiper tout un réseau, mais seulement une gare qui fait à peu près 1,5m x 2m.
L'Arduino serait dans le poste de commande, et les modules PCA9685 à une distance de 50cm à 1m de lui, au plus.
Ensuite les servos seraient au plus à 2m des PCA9685.

Il se trouve que j'ai déjà réalisé des montages satisfaisants en I2C, avec un bus de 3 m, testé jusqu'à une dizaine de mètres, sans module additionnel, mais dans un environnement propre et avec un beau câble (câble série).
Je pense que tout dépend ce qu'on fait du bus I2C: si le maitre se contente d'envoyer des commandes aux esclaves, il est bien plus tolérant que si on doit récupérer des données de l'esclave vers le maître (c'est une question de clocking). Il est donc assez facile de commander des afficheurs ou des PCF8574 à une "certaine" distance. Mais je ne sais pas ce que fait la bibliothèque PCA9650.
(Au passage je remercie Aranacorp pour m'avoir indiqué comment commander plusieurs modules).
Il y a aussi des astuces au niveau de l'utilisation du bus, comme travailler ou pas en mode rapide...

Concrètement, je vais faire des essais, et en cas de pb, envisager une solution CAN.

Cordialement


Titre: Re : Câblage I2C et servos
Posté par: simontpellier le juillet 26, 2020, 07:05:35 pm
... une solution extrême
https://shop.mchobby.be/fr/cartes-breakout/1079-extension-bus-i2c-differentiel-longue-distance-3232100010796.html

Mais bon à savoir tout de même, non?
(pour encore mieux apprécier le CAN)
Titre: Re : Câblage I2C et servos
Posté par: trimarco232 le juillet 29, 2020, 12:13:24 am
normalement en i2c, ça le fait :
- baisser la vitesse
- mettre les pull-up à 4.7kR à chaque extrémité (typiquement, arduino et dernier module i2c)
- les registres du PCF8574 peuvent être lus, donc vérification après écriture pour être tranquilou, voire reverification pour être blindé

vers les servos, on a moins de moyens, mais je pense que mettre une 4k7 entre la commande et le - (ou le + …), au droit du servo, doit aussi améliorer les choses
Titre: Re : Câblage I2C et servos
Posté par: JPM06 le décembre 03, 2020, 11:47:28 am
Bonjour à tous,

Finalement j'ai réalisé ce projet.
Il est présenté en ligne sur le site de l'AMFN (Association des Modélistes Ferroviaires de Nice).

Vous pouvez y accéder soit par l'entrée normale (http://amfn.fr (http://amfn.fr))
soit directement: http://amfn.fr/microcontroleurs/servomoteurs.htm (http://amfn.fr/microcontroleurs/servomoteurs.htm)

J'ai créé un sujet dans la rubrique Vos Projets.

Je suis intéressé par tout commentaire sur le sujet.

Cordialement
Titre: Re : Câblage I2C et servos
Posté par: Pyk35 le avril 20, 2021, 11:09:13 pm
Beau projet, bravo !