Auteur Sujet: Contrôle numérique des aiguillages  (Lu 60783 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #30 le: mars 07, 2019, 02:46:08 pm »
Bonjour Marc-Henri,

Quand on tombe sur des problèmes de parasites, cela devient un peu irrationnel, il peut y avoir plusieurs remèdes de grand-mère ce qui n’empêche pas d’essayer d’être rationnel quand même.

J’avoue que j’ai de la chance car cela fonctionne bien jusqu’à maintenant (depuis plus de 2 ans), sauf parfois un reset intempestif de l’Arduino qui commande les 44 relais quand une commande concerne une aiguille très proche des relais, et seulement une fois de temps en temps. Et cela ne perturbe rien d’autre : le bus Can est certainement bien étanche à cette perturbation qui doit être bien locale aux 44 relais et le Mega associé. L’inconvenient est que cela modifie les itinéraires car je n’enregistre pas (encore) tous les changements en EEPROM.

Je n’ai pas encore cherché la cause et le remède, du fait de mes problèmes de hanches qui sont réparées maintenant, et donc j’y pense à nouveau, merci de me le rappeler aussi ;)

Pour répondre à une remarque de Denis, la longueur des 3 fils bien torsadés qui vont aux aiguilles et transportent de l’alternatif ne semble pas influer. Ça ne dépasse pas 2m au plus. Il vaut mieux que ce soient les connexions entre l’Arduino et les platines à relais qui soient les plus courtes.

Voici les précautions que j’ai prises pour mettre le plus possible de chances de mon côté :
1- j’utilise des platines avec 8 relais 5v avec optocoupleurs, de ce type :
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.fr%2Fulk%2Fitm%2F190823079261
Le faible prix ne justifie pas de construire sa propre platine et une tension de commande de 5v est préférable à 12v pour éviter de détruire l’Arduino en cas de mauvais placement du strap d’alimentation.
2- la longueur des fils entre le Mega et les platines montées en recto verso sur une planche en bois, est inférieure à 30 cms. Ce qui comptait pour moi, c’est l’accessibilité des borniers à vis des platines de relai !
3- le 5v des relais est séparé du 5v de l’Arduino (une grosse alim de PC)
4- le 15v alternatif est produit par un transfo à part largement dimensionné et protègé par fusible qui a souvent sauté au début quand plusieurs aiguilles étaient commandées en même temps.
5- le sketch dans le Mega ne commande qu’une seule aiguille à la fois.

J’ai tout de même une piste : lorsque j’ai retourné à l’envers tous les moteurs d’aiguille pour qu’ils soient à fleur du plan des voies (en pratiquant une découpe autour des moteurs), j’ai constaté que certains moteur devaient rencontrer une résistance mécanique plus grande qu’avant parce qu’il n’étaient plus aussi bien dans le même plan qu’avant : le fait de pendre vers le bas au lieu de reposer sur le plan de voie pouvait induire cette résistance, donc augmenter le courant de commande. Cela provoquait des plantage de l’Arduino. En révisant la fixation des moteurs, les problèmes ont disparu, il en reste peut-être un à vérifier.

En ce qui concerne le blindage, je pense qu’il vaudrait mieux blinder les fils de liaison entre Arduino et platines à relais.

Après on peut imaginer de mettre des schottky pour les roues libres des relais...

Je reviendrai sur ce sujet dès que j’aurai du nouveau !

Bien cordialement
Diminique
« Modifié: mars 07, 2019, 03:15:15 pm par Dominique »
Cordialement,
Dominique

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #31 le: mars 07, 2019, 03:55:01 pm »
Bonjour Dominique,

Merci pour ta réponse rapide et ton retour d'expérience. En l'état actuel:
  • J'utilise le même modèle de cartes à relais que toi.
  • Je n'ai pas séparé l'alimentation des relais de celle de l'Arduino, c'est à tester.
  • C'est un petit réseau de 1.3 m * 1 m, donc le câblage est court.
  • La carte à relais est proche de l'Arduino, la nappe de fils fait moins de 15 cm.
  • Le programme ne commande d'une aiguille à la fois, sauf peut-être au démarrage car cela dépend des positions initiales des aiguilles et de la topologie des connexions des relais.

Je posterai le résultat de mes tests à venir.

Bonne fin de journée et meilleures salutations.

nopxor

  • Full Member
  • ***
  • Messages: 195
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #32 le: mars 07, 2019, 08:08:30 pm »
Bonjour,

J'ai rencontré aussi des problèmes de parasites sur des bobines d'aiguillage PECO commandées par relais via Arduino.
Cela perturbait (plantait) la connexion USB Arduino-JMRI.
La solution radicale a été de souder une diode roue libre sur chaque bobine.

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Contrôle numérique des aiguillages
« Réponse #33 le: mars 08, 2019, 05:28:02 pm »

Perturbation d'un affichage LCD
Si ce n'est pas le cas, pouvez vous tester la version shield sur Arduibo UNO ...
Sinon tester la version en I2C (ça peut être pire).

Perturbation d'un monostable à 555
... les condensateurs de découplage ...
combien, valeur et où ? (mettre x10)

Mes questions... Avez-vous rencontré des problèmes similaires ? Si oui, comment les avez-vous résolu ?

On a tous rencontré ce type de problème.
A regarder :
  • minimiser la boucle que constitue le courant des bobines, donc regarder où passe le retour du courant, faire cheminer l'aller et le retour ensemble (cf. proposition DDEFF)
  • mettre (au moins en test) un gros condensateur 1000-10000µF juste en amont du contact incriminé. (testé + avec ULN2803)
  • vérifier que l'alimentation ne considère pas comme un court-circuit le brusque appel de courant
  • éviter les circuits de masse communs. Si besoin en seul point.
Cordialement

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #34 le: mars 09, 2019, 11:37:03 am »
Bonjour à tous,

Je progresse, j'ai corrigé les points suivants:

Condensateurs de découplage sur le 555
Suivant les recommandations de la datasheet, un 100 nF sur l'alimentation et un 10 nF sur l'entrée no. 5 contrôle. Pas d'amélioration, mais cela ne peut pas faire de mal de suivre les recommandations.

Alimentation des aiguilles
J'avais une boucle de masse sur les communs des aiguilles. J'ai coupé la boucle et cela a beaucoup amélioré le fonctionnement du monostable à 555.

Filtrage de l'entrée trigger du monostable
En débranchant les fils des ILS de l'entrée trigger du monostable, j'ai constaté qu'il ne se déclenchait plus de manière intempestive. Me basant sur des informations trouvées sur le web, j'ai ajouté un filtre passe-bas sur l'entrée trigger constitué d'une résistance de 1.2 KOhm et d'un condensateur de 100 nF. Le monostable n'est plus du tout perturbé.

Affichage LCD
L'affichage est relié à l'Arduino en mode 4 bits. J'ai pour le moment modifié le logiciel comme suit:
  • Plutôt que d'écrire directement sur l'affichage, le contenu de l'affichage est préparé dans un tableau bi-dimensionnel.
  • Rafraîchissement de l'affichage avec le contenu du tableau toutes les 100 ms.

La situation est meilleure, mais pas encore parfaite. Je vais encore ajouter un condensateur de découplage proche de l'alimentation 5 V de l'affichage. En tout dernier recours, je remplacerai l'affichage, qui me sert à montrer l'état de la gare cachée, par des leds !

Bonne fin de semaine et encore merci pour les échanges.
Meilleures salutations.

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #35 le: mars 27, 2019, 06:54:43 am »
Bonjour à tous,

Mon affichage LCD est toujours perturbé par les commutations d'aiguilles, malgré les tests suivants effectués hier soir:
  • Condensateur de découplage de 100 nF sur l'alimentation du LCD. Un condensateur électrolytique de 4.7 uF en parallèle n'a rien amélioré non plus.
  • Alimentation séparée du LCD sous la forme d'un régulateur 5 V placé au plus près.

Je prévois encore de tester:
  • Une tension alimentation plus faible des aiguilles, actuellement à 19 V (alimentation de PC portable) que je compte ramener à 14 V.
  • Raccourcir quelque peu la nappe de fils entre l'Arduino et le LCD, mais, compte tenu de la disposition des cartes, je n'ai pas beaucoup de marge de ce côté.
  • Faire transiter les signaux de contrôle: 4 data, R/W, RS et E dans un segment de câble réseau catégorie 6. Il comporte 4 paires torsadées, suffisantes pour 7 signaux ainsi qu'un blindage.
  • Me procurer une version I2C du LCD, même si l'I2C est a priori plus sensible à ce type de perturbation.

Le point positif cependant est que l'Arduino n'est jamais perturbé !

Bonne journée et meilleures salutations.

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #36 le: mars 27, 2019, 07:18:41 am »
Bonjour Marc-Henri

Pourrais-tu STP faire un schéma de ton montage.

Pour le LCD cela fait des lustres que je l'utilise en I2c, rien à ce jour dans mes montages ne le perturbe.

Amicalement
Marcel
Best Regards

nopxor

  • Full Member
  • ***
  • Messages: 195
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #37 le: mars 28, 2019, 03:59:44 pm »
Bonjour,

Plutôt qu'essayer d'atténuer les effets des perturbations sur les récepteurs des parasites,
il est important d'annihiler la source de ces parasites:

Ce sont les bobines des aiguillages qui lorsque elles commutent provoquent une étincelle parasite.
La seule solution pour éviter cela, c'est de souder une diode dite de roue libre aux bornes de chaque bobine d'aiguillage.

Cette diode court-circuite les pointes de tension inverses qui naissent aux bornes d'une bobine lors de la coupure de son alimentation ( tension de self induction ).

Cette tension de self induction est très élevé, centaine à plusieurs milliers de volts. C'est elle qui génère les perturbations.

La diode de roue libre est branchée en parallèle aux bornes de la bobine
avec sa cathode raccordée au positif de l'alimentation de la bobine et son anode au pôle négatif.

Cette diode devient passante ( un pic de courant circule uniquement entre la bobine et la diode ) lors de la coupure de l'alimentation de la bobine, car la tension de self induction est de sens contraire à la tension normale d'alimentation de la bobine.
« Modifié: mars 28, 2019, 04:04:54 pm par nopxor »

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #38 le: mars 28, 2019, 08:29:29 pm »
Bonjour à tous,

Pour le schéma, je commande mes aiguilles à l'aide d'un module 8 relais de ce type là: http://wiki.sunfounder.cc/index.php?title=8_Channel_5V_Relay_Module. L'alimentation des aiguilles est complètement séparée de celle de l'Arduino et de l'affichage LCD. Il s'agit d'une alimentation de PC portable.

J'ai bien pensé aux diodes de roue libre sur les électro-aimants. Mais je me demande si elles seront vraiment efficaces avec les électro-aimants qui disposent de contacts de fin de course. Il faut alors que le relais coupe le courant avant que ce contact n'intervienne. Idéalement, il faudrait brancher les diodes directement sur les bobines, mais les électro-aimants ne sont pas simples à démonter.

Je vais essayer l'option d'un affichage LCD I2C et faire passer le bus I2C dans un câble blindé.

Merci de vos recommandations et meilleures salutations.

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1714
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #39 le: mars 29, 2019, 08:18:33 am »
Bonjour Marc-Henri.

Il y a déjà des diodes roue libre sur ces cartes relais.

Tu dis que ton écran LCD  est assez loin de l’Arduino. As tu mis une capa sur l’alimentation du LCD au plus près de ce dernier ?

Cordialement
« Modifié: mars 29, 2019, 08:28:38 am par Jean-Luc »
Cordialement

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #40 le: mars 29, 2019, 01:51:22 pm »
Bonjour Jean-Luc,

Merci pour tes suggestions.

J'ai essayé une / plusieurs capacités 10 uF, 100 nF sur et à proximité de l'alimentation du LCD, mais sans succès. J'ai aussi essayé une alimentation séparée du LCD, même insuccès.

Si j'ai bien compris les échanges au sujet des diodes de roue libre, il s'agirait de les ajouter sur les électro-aimants des aiguilles. Les relais ne posent pas de problème, j'ai testé le fonctionnement en débranchant l'alimentation des aiguilles, seuls les relais étaient actifs. Par ailleurs, la carte 8 relais comporte déjà les diodes ainsi qu'une commande par optocoupleur.

Bonne fin de semaine et meilleures salutations.
« Modifié: mars 29, 2019, 02:31:52 pm par Marc-Henri »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #41 le: mars 29, 2019, 03:14:12 pm »
Bonjour Marc-Henri,

As-tu envisagé de changer l’Arduino qui pilote l’ecran LCD ?
Ainsi que de relier toutes les entrées inutilisées à la masse (analogiques et numériques) ?

En cas d’insuccès il reste encore la réinitialisation périodique du LCD et le ré-affichage pour cacher le problème.

Après, il faut peut-être se demander s’il n’y a pas d’autres dégâts causés aux variables du programme. L’art du debug ...

Bon week-end.
Cordialement
Dominique.
Cordialement,
Dominique

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #42 le: mars 29, 2019, 04:21:31 pm »
Bonjour Dominique,

Pour reprendre les points que tu soulèves:
  • Changement d'Arduino, à essayer. J'ai une carte Leonardo qui pourrait me permettre de le vérifier.
  • Le LCD est utilisé en mode 4 bits, les 4 autres bits pourraient être à la masse.
  • J'ai déjà un ré-affichage périodique, mais cela ne règle pas tous les cas.
  • Impact sur les variables du programme: je ne pense pas. Lorsque les perturbations surviennent, les variables d'état de la gare cachée ne sont pas modifiées, l'Arduino sait toujours s'il y a des trains ou pas. Actuellement les variables ne sont qu'en RAM, sans sauvegarde en EEPROM, j'en déduis donc qu'elles ne sont pas corrompues. Il n'y a pas non plus de reset intempestif de l'Arduino, une condition que je remarquerais car les aiguilles sont repositionnées par défaut au reset.

Bonne fin de semaine et meilleures salutations.

savignyexpress

  • Invité
Re : Contrôle numérique des aiguillages
« Réponse #43 le: avril 02, 2019, 08:43:11 am »
Bonjour à tous,

J'ai ajouté les diodes de roue libre, une par électro-aimant, au plus proche des moteurs d'aiguilles, mais sans amélioration significative. Je pense qu'il faudrait pouvoir relier les diodes directement sur les électro-aimants, sans inclure les contacts de fin de course.

Prochains tests prévus:
  • circuit RC série en parallèle sur les contacts des relais de commande des aiguilles, le but étant d'amortir l'arc aux contacts des relais;
  • utilisation d'un affichage LCD I2C que je viens de recevoir;
  • les autres tests suggérés par Dominique: bits inutilisés à la masse, changer l'Arduino.

Bonne journée et meilleures salutations.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Contrôle numérique des aiguillages
« Réponse #44 le: avril 02, 2019, 10:17:31 am »
Bonjour Marc-Henri,

En aéromodelisme on insère des petits tores de ferrite dans les liaisons aux servos. Ici tu pourrais passer les fils de commande des moteurs d’aiguille dans un tel tore et faire 1 ou 2 tours.

C’est bien connu, pour les parasites, le tore tue  ;D ;D

Bien cordialement
Dominique

PS : ce n’est pas un poisson d’Avril !
Cordialement,
Dominique