Auteur Sujet: servos et PCA 9685  (Lu 15092 fois)

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
servos et PCA 9685
« le: juin 27, 2018, 02:55:00 pm »
bonjour,

Un membre de mon club est en train de monter un réseau chez lui et il a 15 aiguillages à gérer.
Je lui est suggéré de l'aider à mettre en oeuvre une commande gérée par arduino et je me retrouve avec le bébé sur les bras....
Je pensai faire avec un module PCA9685 de chez Adafruit (commande par I2c de 16 sorties PWM).
La mise en oeuvre est assez simple grace à une bibliothèque dédiée, tout marche bien si les servos sont prés des modules.
Mais les ennuis commencent si on veut éloigner les servos.
En effet, on comptait faire un T.C.O. avec un arduino nano, 15 boutons classiques à bascule, les leds néo-pixels, et ce module pca9685, les servos se trouvant sous les aiguillages répartis sur le réseau( des aiguilles se trouvent à 2m du T.C.O.)
Dés que j'augmente la longueur des fils des servos (environ 30cm) ceux-ci ne répondent plus aux boutons mais tressautent, font de brusques sauts dans des valeurs exotiques...
J'alimente le pca9685 avec une alimentation de PC à 5v, l'arduino est alimenté par la connextion usb.
les servos sont des micro-servo 9G classiques.
Après avoir cherché un peu sur le web et sur le forum, je pense qu'il s'agit d'un problème de parasites véhiculés par les fils
mais je suis bien incapable de trouver seul la solution....
Voilà, si quelqu'un sait comment faire ou à des idées, je suis preneur...
D'avance merci.

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : servos et PCA 9685
« Réponse #1 le: juin 27, 2018, 04:15:17 pm »
Bonjour,
manifestement à Locoduino on préfère avec raison le CANBUS. J'ai aussi utilisé l'l2C pour piloter des aiguillages (solénoïdes dans mon cas) et j'ai aussi eu des problèmes de parasites. Il faut tester des alimentations séparées et vérifier les résistances de fin d'I2C.
Donc après avoir bardé mes CI de condensateurs de découplage avec une amélioration certaine, je suis passé au DCC. (voir l’article sur le décodeur à ULN2803).
Vouant maintenant une admiration définitive à Ruud Boer, je recommanderais la lecture (+videos) de ses réalisations concernant les servos (sans les avoir lus néanmoins moi-même)
https://rudysmodelrailway.wordpress.com/2014/10/09/arduino-as-dcc-servo-decoder-tuning-and-configuration/
le lien de télé&chargement est en dessous, ne pas se laisser impressionner si l'aperçu d'un zip ne fonctionne pas.
Cordialement

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : servos et PCA 9685
« Réponse #2 le: juin 27, 2018, 05:48:57 pm »
Merci pour la réponse rapide,
La liaison I2c ne me parait pas responsable des troubles, car, si les fils de liaison des servos sont courts ( donc les sorties du module) tout fonctionne bien. L'I2c c'est une entrée pour le pca9685.
Je connais ce lien, mais pour actionner les aiguilles avec le DCC, cela suppose d'avoir une centrale qui envoie les ordres,
le réseau sur lequel je travaille est en analogique. Faire une centrale DCC et des décodeurs d'aiguilles me parait un peu démesuré et j'ai surtout peur d'y passer beaucoup de temps.
Je vais essayer les condensateurs de découplage : J'ai imaginé un de 100mf et un de 100nf au plus près des servos.
J'ai vu aussi qu'il est bon de mettre une résistance de 10k entre la commande PWM et le +5v (mais au plus près des servos?)
Dés que j'ai fait mes essais je vous tiens au courant.

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : servos et PCA 9685
« Réponse #3 le: juin 27, 2018, 07:29:13 pm »
Je verrais, outre la vérification des résistances I2C (1) = 2.2K, la séparation et le filtrage en test (condensateur électrolytique) des alimentations Arduino et PCA9685 / 5V des servos (mais masse commune) mais aussi si les entrées des servos ne sont pas perturbées par la fréquence du PWM : là aussi, un petit condensateur électrolytique + petite résistance pour leur fournir quelque chose qui ressemble plus à du continu.
Cordialement

Tony04

  • Hero Member
  • *****
  • Messages: 549
    • Voir le profil
Re : servos et PCA 9685
« Réponse #4 le: juin 27, 2018, 09:14:45 pm »
Bonsoir petitrain,

pourquoi ne pas utiliser plusieurs nano ou un micro pour chaque groupe d'aiguilles proches les unes des autres et qui seraient commandés par une liaison opto-isolée entre le uno maître et les satellites ?

Cordialement
Antoine

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : servos et PCA 9685
« Réponse #5 le: juin 27, 2018, 09:36:44 pm »
Bonsoir à tous,
Tout d'abord, merci à tous de votre réactivité et de vos réponses...
Je viens de finir une série de tests en intégrant des condensateurs sur l'alimentation des servos : 1 de 100mf et 1 de 100nf au plus près des servos et une résistance de 10kohm entre la ligne de commande des servos et le +5v de l'alimentation, et ça marche tout à fait correctement : plus de ces mouvements intempestifs , même à l'initialisation les servos bronchent à peine... Je vais de ce pas me fabriquer des petits pcb que je fixerai au plus prés des servos.
En tout cas merci de votre aide, on se décourage vite tout seul dans son coin à cogiter!!

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : servos et PCA 9685
« Réponse #6 le: juin 29, 2018, 08:04:18 pm »
Bonsoir,
Une petite réponse à Tony04: Qu'est-ce que tu entends par une liaison opto-isolé?
Je connais des opto-coupleurs comme on en mets pour récupérer un signal DCC....
Moi, j'ai 2 à 3 m de distance entre les aiguilles les plus éloignées du T.C.O.

CATPLUS

  • Sr. Member
  • ****
  • Messages: 407
    • Voir le profil
Re : servos et PCA 9685
« Réponse #7 le: juin 29, 2018, 09:14:28 pm »
Best Regards

Tony04

  • Hero Member
  • *****
  • Messages: 549
    • Voir le profil
Re : Re : servos et PCA 9685
« Réponse #8 le: juin 30, 2018, 01:48:25 am »
Une petite réponse à Tony04: Qu'est-ce que tu entends par une liaison opto-isolé?
Je connais des opto-coupleurs comme on en mets pour récupérer un signal DCC....
Moi, j'ai 2 à 3 m de distance entre les aiguilles les plus éloignées du T.C.O.

Bonjour Petitrain,

je pense que ton projet pourrait intéresser plus d'un lecteur qui ne veut pas se lancer à fond dans le tout DCC mais qui aimerait découvrir ce petit bijou qui est l'Arduino.

Si j'ai bien compris ton idée, voila comment je ferais:

- d'un côté tu as ton TCO avec 15 inverseurs et 30 leds
- de l'autre tu as plusieurs NANO, et chacun d'eux pourrait commander de 1 à 4 servos (voir plus) qui se trouvent à proximité immédiate des aiguilles à commander

L'isolation par l'opto-coupleur te permet des distances > 10m (testé chez moi avec une carte MEGA qui me gère la fermeture de ma piscine avec des dizaines de capteurs très éloignés et dont certains attaquent les entrées d'interruption de la MEGA, donc très sensible).

Sur le schéma je n'ai représenté qu'une seule commande avec 1 seul servo mais tu peux facilement les multiplier en fonction de tes besoins en sachant que l'idéal serait de partir sur 4 servos car il est très facile de trouver des optos-coupleurs 4 entrées.
Attention, il faut utiliser les résistances pullup du nano pour les entrées de l'opto (côté collecteur) ou rajouter des résistances de 10K.

Le montage étant très simple, inutile de faire un PCB, tu peux câbler chaque module sur des circuits perforés.

Avec un peu plus de câblage il serait très facile de rajouter les commandes de feux de signalisation aux abords des aiguilles commandées, mais c'est une autre histoire. (Tient!!! cela ressemble un peu aux fameux satellites : http://forum.locoduino.org/index.php?topic=515.msg6188#msg6188 mais sans le bus CAN qui est quand même une petite merveille).

N'hésite pas si tu as des questions.

Cordiales salutations
Antoine

Tony04

  • Hero Member
  • *****
  • Messages: 549
    • Voir le profil
Re : servos et PCA 9685
« Réponse #9 le: juin 30, 2018, 09:50:56 am »
Bonjour,

voici le schéma en NB plus facile à imprimer (j'ai pas trouvé tout seul  ::) ::) ::) ).

Petite précision en ce qui concerne l'alimentation "+5V NANO", c'est bien une alimentation extérieure qu'il faut et non les 5V régulées du NANO.
Chez moi j'utilise toujours 2 alimentations séparées, 1 pour le µP et 1 pour les accessoires mais ce n'est pas une obligation.

Bonne journée à tous
Antoine

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : servos et PCA 9685
« Réponse #10 le: juin 30, 2018, 02:07:38 pm »
Merci de ta réponse,
Si je comprend bien ton schéma, les 2 fils qui attaquent le TLP524 sont des fils ordinaires et peuvent mesurer 10m ou plus!!!!
C'est effectivement très intéressant, il faut que je me procure ces composants....
Côté T.C.O. tu ne figures pas d'Arduino, mais je pense que c'est par soucis de clarté, je remplace l'inverseur par une broche de l'Arduino. Je pense que côte T.C.O. on aura à gérer des itinéraires.
J'ai trouvé le datasheet pour un composant toshiba TLP521-4 ,le TLP 524 n'existe pas, mais je pense que c'est de celui-la que tu parles . Il posséde effectivement 4 photo-transistors en sortie, il en existe à 2 et à 1 sortie. Si ça marche ce serait super, merci;

Tony04

  • Hero Member
  • *****
  • Messages: 549
    • Voir le profil
Re : servos et PCA 9685
« Réponse #11 le: juin 30, 2018, 04:15:33 pm »
Ces modèles iront très bien pour mon montage:
https://www.tme.eu/fr/details/cny74-4h/optocoupleurs-sortie-analogique/vishay/
https://www.tme.eu/fr/details/k847ph/optocoupleurs-sortie-analogique/vishay/

Mais avant tout il faudrait expliquer un peu plus en détail ce que tu attends de ton TCO, j'avais compris qu'il ne s'agit que de commander les servos des aiguilles alors que dans ta réponse tu parles de gérer des itinéraires. C'est donc une commande complète en DCC que tu envisages avec le NANO ce qui ne correspondrait plus du tout avec mon schéma, même s'il serait tout a fait possible de commander les optos par une sortie du NANO du TCO, à voir.

J'attends tes explications.

Cordialement
Antoine

 

« Modifié: juin 30, 2018, 05:13:12 pm par Tony04 »

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : servos et PCA 9685
« Réponse #12 le: juin 30, 2018, 08:59:37 pm »
Bonsoir Tony04,
Non, pas de DCC, on peut gérer des itinéraires en analogique...
Simplement, je pense qu'il sera plus facile pour l'exploitation de gérer plutôt un itinéraire (voie1, voie2...) que chaque aiguilles indépendament . Je compte utiliser des leds nèo-pixels pour l'affichage sur le T.C.O.(bibliothèque adafruit).
J'ai imaginé, en entrée de gare, un feu (le carré) : le train s'arrète et il faut demander un itinaire. Si l'arduino peut le construire, il le fait et passe le feu à VL, le train peut aller à la voie choisie. Je compte gérer les conditions dans le T.C.O. directement et quand les conditions sont vérifiées on envoie les positions aux aiguilles (certaines sont lointaines, et c'est pour ça que j'ai besoin de régler ce problème de parasite).
La solution que tu proposes à l'air interressante,une résistance de 10k sur l'alim des servos et le pullup pour les entrées des optos,  mais faut-il prévoir un câble blindé ou autre chose entre le T.C.O et les arduinos distants. Je n'ai pas envie de crée un bus (can,dcc ou autre), juste commander des servos un peu lointains (1,5m à 2m).