LOCODUINO

Parlons Arduino => Débuter => Discussion démarrée par: VAUBAN38 le septembre 25, 2017, 10:37:07 am

Titre: Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 25, 2017, 10:37:07 am
Bonjour à tous,

Je galère depuis quelques jours sur un projet de pilotage d'aiguillages Minitrix par Arduino Uno.
L'architecture mise en place est la suivante :
Arduino Uno --> Bus I2C --> MCP23017 (plusieurs) --> ULN 2064 (4 par MCP23017)--> Aiguillages alimentés en 16v continu.

Lorsque je lance un sketch de test en boucle sur un MCP23017 et les 8 aiguillages qui lui sont associés (séquence aig A Droit / A Dévié / B droit / B dévié etc....) tout cela par des impulsions successives de 200 ms, tout se passe bien pendant un certain temps.
Puis de manière aléatoire j'ai un aiguillage (pas toujours le même) qui reste bloqué en position droite, et sur la lancée plus aucun des aiguillages ne fonctionne....
Or le sketch continue lui à se dérouler normalement sur le moniteur série .....

Je n'arrive pas à déterminer quelle peut-être la cause : blocage du bus ? du MCP23017 ? autre .... ?

Merci de votre aide !
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 25, 2017, 09:11:15 pm
Bonjour,
ayant également expérimenté le bus I2C dans le même contexte, j'ai également eu des problèmes de parasitage avec des frayeurs de tension maintenue sur les bobines des aiguillages.
Arduino Uno --> Bus I2C --> PCF8574 (deux) --> ULN2803 (simple ou double en parallèle)--> Aiguillages Fleischmann HO (18ohms) en 12v continu.
Je soupçonne les PCF8574 de voir leur registres facilement déprogrammés par des parasites via le bus ou via l'alimentation mais je n'ai pas vraiment persévéré. Les résistances de fin de bus étaient bien mises et les liaisons courtes mais aucune précaution prise sur les alimentations.
En plus du problème de parasitage je ne suis pas arrivé à commander les bobines 18 ohms avec les ULN2803 mais je n'ai pas beaucoup insisté. Par contre c'était OK pour allumer des LED.
Je me suis tourné vers les décodeurs d'accessoires qui eux, fonctionnent :
Manette --> Arduino Uno booster --> DCC --> interface --> Nano --> buffer 74HC245 --> ULN2803 (double) --> Aiguillages Fleischmann
On m'a dit que les 74HC245 ne servaient à rien, mais ça reste à vérifier.
Mais manifestement à Locoduino le bus CAN est plus populaire, ceci explique peut-être cela.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 25, 2017, 09:36:46 pm
Merci pour cette réponse.
J'avais effectivement cru comprendre que le bus Can était privilégié par Locoduino, mais pour ma part je n'arrive pas vraiment à en saisir le fonctionnement    :-[ :-[  et je trouve l'I2C bien plus simple et intuitif compte tenu de mes petites connaissances !

Certes j'ai vu que différentes contraintes pouvaient exister (longueur des connexions, parasitages etc ..) mais par ailleurs j'ai pu voir que certaines réalisations étaient pourtant menées à bien malgré ces contraintes...

Pour ce qui concerne mon installation dans son état actuel de test le câble I2C (non blindé) ne mesure que 14 cm, et je précise que je suis en analogique pur.

J'aimerai vraiment trouver le grain de sable qui bloque !
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 25, 2017, 11:27:27 pm
Simplicité, un critère qui m'a aussi séduit ...
Tentez un petit condensateur de découplage au niveau de l'alimentation des MCP23017 (ce que je n'ai pas fait au niveau des PCF8574)
Et vérifiez la qualité du 5V correspondant : Banggood propose de petits oscilloscopes à monter pour moins de 20€.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 08:36:11 am
Pour ce qui concerne l'alimentation 5V, s'agissant d'une simple mise en test d'un MCP23017 et de ses 4 ULN associés je me suis simplement servi de l'alimentation 5v de l'arduino.....

Je vais peut-être essayer de passer sur une alim externe. Qu'en pensez vous ?

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 26, 2017, 09:49:21 am
Surement.
Comme vous l'avez dit "certaines réalisations sont pourtant menées à bien", reste à trouver le problème.
Mais dans plusieurs cas, une petite capacité genre 100µF 25V (6x8mm) m'a fait disparaitre des anomalies incompréhensibles.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 11:30:00 am
Vu le prix du composant, ça ne coute rien de tenter !  ;D

En revanche le positionnement a t il une importance ? Au plus près de l'alim ou au plus près du MCP ? (ma question est peut-être stupide mais vu mes connaissances je préfère la poser quand même ! ....)
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le septembre 26, 2017, 03:14:55 pm
Au plus près du MCP car l'alim est déjà pourvue de condensateurs.

Les parasites sont récoltés entre l'alim et le circuit.

Cdt.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 04:35:52 pm
Merci pour la précision.

Je teste ça demain matin et donnerai sur la lancée le résultat ...... Je croise les doigts !
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le septembre 26, 2017, 05:32:19 pm
Je n'avais pas vu la valeur de la capa : 100 micro farad ! Dans ce cas il faut rajouter une capa de 100 nano farad en parallèle 
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 08:02:43 pm
Oups ! Alors là je suis perdu et ne sais plus ce que je dois faire  ......  ::)
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 26, 2017, 09:30:47 pm
La capa de 100µF permet de filtrer les variations basse fréquence de la tension d'alimentation et celle de 100nF les variations haute fréquence.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 10:27:33 pm
Ok je vais me coucher moins bête ce soir  ;D (mais il reste quand même encore de la marge de progression ..)  !

Et donc je place ces deux composants en parallèle et au plus près du MCP, et j'imagine des broches 9 et 10, c'est bien çà ?
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 26, 2017, 10:31:24 pm
Et donc je place ces deux composants en parallèle et au plus près du MCP, et j'imagine des broches 9 et 10, c'est bien çà ?

C'est ça, en respectant la polarité de la 100µF qui sera une capa chimique.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 26, 2017, 11:05:04 pm
Merci de votre aide !

Si les essais s'avèrent concluants, sachant que j'aurai en finalité 5 cartes totalisant 7 MCP, cartes connectées en cascade sur le bus I2C, et au niveau alimentation, faudra-t-il répéter ces ajouts de capas : à chaque carte, à chaque MCP ?

Précision : les cartes sont proches les unes des autres (environ 10 cm de câblage entre deux cartes)
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 26, 2017, 11:19:59 pm
Ne sachant pas, je dirais : par approximations successives ...

De plus, je viens de trouver des 10µF 16V CMS qu'on peut souder directement sur les pattes 9 et 10 du MCP, difficile de faire plus près.

http://www.ebay.fr/itm/100Pcs-Chip-Value-Condensateur-0805-106M-10Uf-16V-20-Smd-Ic-Nouveau-C/252900324869

Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 27, 2017, 05:11:36 pm

De plus, je viens de trouver des 10µF 16V CMS qu'on peut souder directement sur les pattes 9 et 10 du MCP, difficile de faire plus près.


Dans votre message précédent vous préconisiez de mettre des 100µF or là il s'agit de 10µF ... Compte tenu du message de Jean-Luc je pense que la bonne valeur est bien 100µF ?

N'ayant pas sous la main le matériel nécessaire, j'ai dû différer l'essai à demain, le temps de m'approvisionner !
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 27, 2017, 05:37:56 pm
Il y a deux phénomènes à prendre en compte :

1 - la stabilité de l'alimentation. Quand un composant logique comme le 23O17, est alimenté avec des fils longs, l'alimentation qu'il reçoit est parasitée. Le circuit ne peut pas fonctionner correctement dans ces conditions. Il se peut d'alleurs qu'il plante si les fluctuations d'alimentation entrainent des modifications des données dans les registres internes. Ça correspond assez à ce que tu observes.

Pour cela, on met une grosse capa à proximité, donc 100µF ou plus

2 - l'effondrement de l'alimentation dû à un appel de courant. Les circuits logiques commutent brutalement des sorties. Lors que la commutation, il y a une brusque consommation de courant. Comme les fils ne sont pas des équipotentielles (on peut les modéliser par un réseau RLC) le fait de tirer du courant brutalement, entraine l'effondrement de la tension au bornes du composant. La grosse capa de 100µF ne va pas suffire car elle est également inductive : elle ne répond pas immédiatement à un appel de courant.

Pour cela on met une petite capa à proximité (polyester ou céramique ou tantale) qui n'est pas inductive et donc permet de répondre aux appels brusques de courant le temps que la grosse capa réagisse.

Il faut donc mettre les deux en parallèle
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 27, 2017, 06:56:35 pm
Merci Jean-Luc pour toute ces précisions !

Question complémentaire, puisque l'alimentation semble avoir un rôle crucial : Est-ce que le fait d'alimenter depuis le 5V de l'arduino est suffisant ? Ou faut-il envisager une alimentation extérieure ?
Si oui j'imagine qu'il faut que la masse reste commune avec l'alimentation de l'Arduino ?

Est-ce qu'en ce cas je peux envisager une alim supérieure à 5V, limitée et régulée par un dispositif de ce type :

 http://www.ebay.fr/itm/10X-LM2596-DC-DC-buck-adjustable-step-down-Power-Supply-Converter-module-Repair-/332128262349?var=&hash=item4d546318cd:m:mt7YihuDmDmzRkRet2gcvPA (http://www.ebay.fr/itm/10X-LM2596-DC-DC-buck-adjustable-step-down-Power-Supply-Converter-module-Repair-/332128262349?var=&hash=item4d546318cd:m:mt7YihuDmDmzRkRet2gcvPA)

 
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 27, 2017, 07:44:56 pm
Il y a un article sur l'alimentation des Arduino :
http://www.locoduino.org/spip.php?article16

Bien prendre en compte que du fait des limites de l'AMS1117, on risque de le griller au delà de 140 mA au total si on met 12V sur l'Arduino. Rester bien en deçà pour éviter de sentir le chaud.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 27, 2017, 08:14:51 pm
Ce n’est pas raisonnable de distribuer une alimentation 5V, que ça soit à partir du régulateur embarqué sur un Arduino ou d’un module d’alimentation. Il vaut mieux avoir un régulateur pour chacun des 23017. Par ailleurs, je ne suis pas très confiant dans ce genre de module pour des raisons de qualité et de fiabilité.

Effectivement, il va falloir véhiculer une masse avec les 2 fils de l’i2c

Grosso modo tu vas avoir des modules avec:
1 mcp 23017
1 alimentation régulée
2 ULN
Des connecteurs (alims, i2c, aiguillages)

Je pense que le mieux serait de faire une carte avec un simple 7805 et le matériel qui va bien.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 27, 2017, 09:51:54 pm
Houlà ....

Sur le Forum du N tu m'avais assisté (le mot n'est pas trop fort) pour mettre au point la gestion de ma mini gare cachée, et au passage tu m'avais donné le goût de l'Arduino.

J'avais trouvé cela super et j'ai eu envie d'aller plus loin.

Fort de cet optimisme (à priori forcené...)  j'ai "viré" dans un moment de fol optimisme toute la gestion électromécanique patiemment bâtie (et fonctionnelle) à base de relais, matrices de diodes etc..., pour bâtir une architecture à base d'arduino Uno, reliée à 5 cartes totalisant 7 MCP, 8 ULN2064, 4 ULN2803 et un certain nombres de diodes ...

Tout cela ayant pour but la gestion des aiguillages sur la base de trajets prédéfinis, les bascules des alimentations et détections (non gérées par arduino) pour certaines voies partagées, les signalisations sur le TCO, et la gestion de quelques zônes d'arrêt de "sécurité" ( risque de prise en écharpe selon trajets demandés), ainsi qu'un clavier de commande multi-boutons (......que tu connais bien !)

Sur le papier tout cela semblait bordé.

Mais je découvre que l'Arduino sous des aspects simples de mise en oeuvre cache une multitude de chausse trappes, et que tout cela dépasse de loin mes compétences.....

Sans doute serait-il plus raisonnable pour moi de faire marche arrière et de reconstruire ce que j'ai démoli ! Il paraît que faire et défaire c'est construire.......

Je dois avouer que ton dernier message me passe largement au dessus de la tête, et qu'il m'a plutôt découragé !

J'ai voulu jouer au boeuf, mais ne suis qu'une grenouille  :'( :'(
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 27, 2017, 10:11:54 pm
Ca serait bête.

Alors

Le problème est que en choisissant de mettre des mcp23017 tu pars sur des circuits nus. Et des circuits nus, ça ne se met pas en place comme des modules qui ont déjà leur alimentation. Ça demande de mettre des composants autour.

A moins de trouver des modules mcp23017 avec alimentation incorporée, tu ne fais plus de l’assemblage de modules à la Arduino et tu es un peu obligé de faire tes propres cartes ce qui est plus compliqué.

Donc si tu veux mettre des Arduino et les faire communiquer, il faut choisir un système où tu peux assembler des modules.

D’autant plus que la fiabilité de l’I2C où il n’y a même pas de code de correction d’erreur ...
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le septembre 29, 2017, 11:04:53 am
Houlà ....


Un petit moment de blues ? ???

Il est toujours possible d'assembler des blocs, comme on les trouve sur eBay (ou autres, bien sur)

Alimentation :
http://www.ebay.fr/itm/12V-5V-AC-Adapter-Hard-Disk-Power-Supply-For-Hard-Disk-Drive-Black-/141679835141
http://www.ebay.fr/itm/DC-DC-12V-To-3-3V-5V-Buck-Step-down-Power-Supply-Module-Pour-Arduino-/263033425043
PCF8574 :
http://www.ebay.fr/itm/PCF8574-PCF8574T-I2C-8-Bit-IO-GPIO-expander-module-for-Arduino-Raspberry-Pi-/263088028642
ULN2803 :
http://www.ebay.fr/itm/ULN2803A-Darlington-Tube-High-Pressure-Large-Current-Drive-/263216863718

Le montage de test (photo jointe) allume correctement les LED à partir d'un clavier 4x4 (voir .ino) mais depuis je suis passé à la solution décodeur d'accessoires pour commander les aiguillages.
J'ai utilisé aussi un bornier nano coupé en deux pour le raccordement externe et des barrettes femelles.
http://www.ebay.fr/itm/Nano-Terminal-Adapter-for-Arduino-Nano-V3-0-AVR-ATMEGA328P-AU-Module-Board-/263111491610
http://www.ebay.fr/itm/10-x-barrette-femelle-a-40-broches-Seule-ligne-a-angle-droit-B9B3-/252982360952

(nota vendeurs eBay non optimisés, cités à titre d'exemple)


Titre: Re : Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 29, 2017, 12:23:25 pm

Un petit moment de blues ? ???


De blues non, mais de découragement, un peu oui .... !

Après une nuit de repos, j'ai en fait ce matin pris le problème un peu différemment des pistes que vous m'indiquiez.

J'ai déconnecté les aiguillages Minitrix et les ai remplacés par des relais 5v au bout desquels j'ai branché des leds témoins.
J'ai bien sûr remplacé l'alim 16v qui était connectée aux ULN par du 5v (issu de l'arduino, ....soyons fou !)
Je n'ai rien modifié pour le reste (pas de capas)

Dans l'état actuel l'alimentation de l'arduino alimente donc la carte uno, 2 MCP23017, les 4 ULN 2064, les 8 relais et leds lorsqu'ils sont activés.

J'ai relancé mon programme de test en boucle en augmentant la tempo d'activation pour visualiser plus aisément l'allumage des leds, et tout cela fonctionne comme un métronome depuis maintenant 1h30 !

Pas de parasites, aucune interruption, ni blocage......

Prochaine étape : remplacer les leds connectées aux relais, par les aiguillages (en repassant sur du 16v bien sûr !) et voir ce que çà donne !

Le résultat au prochain message.


Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le septembre 29, 2017, 01:26:36 pm
Bonjour,

Je ne sais pas si ça peut aider, mais voici comment j'ai réalisé mon contrôleur d'aiguilles:

http://forum.locoduino.org/index.php?topic=290.msg3412#msg3412 (http://forum.locoduino.org/index.php?topic=290.msg3412#msg3412)

Il pilote des aiguilles Fleischmann alimentées en alternatif donc via des relais : j'en ai 44 je crois donc un Mega est le bon choix pour ne pas s'embêter.

Dominique
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 29, 2017, 05:06:08 pm
Et bien essai non concluant avec les aiguillages ...!
Le fonctionnement est anarchique, avec par moment la bobine qui "ronfle" et manifestement n'aime pas tout ......

En comparant la solution de Dominique et celle que j'ai mise en test je ne suis pas parti sur le même principe, un peu guidé par ce que j'avais sous la main.
J'ai utilisé 2 relais HFD41 par aiguillage :
- Relais 1 : Bobine sollicitée => contact établi entre 16V et contact Droit
                 Bobine non sollicitée : Pas de contact
- Relais 2 : Idem pour le contact dévié
Commun de l'aiguillage sur l'autre pôle du 16V

Le sketch ne sollicite évidemment qu'un seul relais à la fois, et pour une durée de 250 ms.

Mais cela ne semble pas concluant, bien que je ne comprenne pas pourquoi ?

Je testerai demain le mode opératoire de Dominique, pour voir si cela change la situation.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 29, 2017, 05:09:21 pm
Pourrait-on avec ton schéma de câblage ainsi qu'une photo de l'installation ?
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 29, 2017, 06:07:33 pm
Pas de problème, je peux préparer çà.

Mais pour la (les) photo(s), que souhaites-tu exactement avoir ? Est ce l'installation dans sa configuration "initiale" ou dans son état "revisité" actuel ?

Souhaites-tu certains points particuliers en gros plan ?
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le septembre 30, 2017, 12:42:35 pm
Disons qu'il y a le schéma théorique de distribution de l'alimentation et l'implantation réelle qui peut également laisser entrevoir des soucis

Dans tes test il apparaît que la charge inductive du moteur d'aiguillage perturbe les MCP23017, je voudrais comprendre pourquoi et comment remédier à ce problème.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le septembre 30, 2017, 10:11:00 pm
Les fichiers demandés sont prêts, mais malheureusement de taille largement supérieure à ce qui est admis en pièce attachée.

Les réduire et compresser ne résout pas pour autant le problème, et la lecture devient plus difficile !

J'ai donc opté pour les mettre sous Dropbox à cette adresse :

https://www.dropbox.com/sh/dig00xtle310cvi/AAB2YmgfiMhz19SYi1jUsMzha?dl=0 (https://www.dropbox.com/sh/dig00xtle310cvi/AAB2YmgfiMhz19SYi1jUsMzha?dl=0)

3 fichiers sont présents :
- Le schéma théorique qui reprend uniquement la carte n°1 (seule à être en test à l'heure actuelle) Les autres cartes sont réalisées mais ne sont pas connectées dans l'immédiat. Pour ce qui est de cette carte N°1 seul le MCP1 est mis en test. Le N°2 qui doit gérer des leds sur le TCO n'est pas utilisé (et même pas déclaré dans le sketch de test)
- Le fichier Fritzing de cette même carte mais dans la version réalisée physiquement sur une plaque à bandes cuivrées.
- Le fichier "test avec relais" correspond à la modification réalisée avant hier, "en volant" et avec les moyens du bord, correspondant à l'utilisation de relais intermédiaires pour alimenter en impulsionnel les aiguillages. Au passage l'alimentation en 16V ne transite plus par la carte (remplacée par du 5v)et le 16V peut repasser en alternatif au lieu du continu qu'imposait le passage via les ULN.

Je reste prêt bien sûr pour répondre à toute question complémentaire !
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 10:51:48 am
J'ai réalisé de nouveau des tests dans la configuration "de base" sans relais donc ce matin, et constate toujours les mêmes symptômes : déroulement des mouvements Droit/dévié pendant un temps plus ou moins long, puis blocage d'un aiguillage en Droit, et plus aucune activité physique mais le sketch continue à se dérouler.

En revanche, j'ai constaté tout à fait par hasard que je n'avais pas besoin de réinitialiser l'arduino en coupant son alimentation (comme je le faisais jusqu'alors), mais qu'il me suffisait de fermer la fenêtre du moniteur réseau et de la ré-ouvrir pour que l'activité reprenne ..... malheureusement jusqu'au blocage suivant !

Cela peut-il avoir un lien ?

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 01, 2017, 12:30:44 pm
Non

En effet quand tu fermes et rouvres le moniteur ça provoque un reset de l’arduino

Je ne vois rien de problématique sur le schéma si ce n’est les découplages des alimentation des 23017. Visiblement la charge inductive des moteurs des aiguillages provoque une fluctuation des alimentations qui plante les 23017 (c’est une possibilité).

Si après ajout des capas, le phénomène persiste, il pourrait être nécessaire d’ajouter des optocoupleurs entre les 23017 et les ULN.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 03:08:35 pm
Ok je ne savais pas que la fermeture du moniteur générait un reset ! J'aurais encore appris quelque chose !

Au moins une satisfaction : mon schéma est juste  :D :D !!

Ce que je n'arrive pas à déterminer c'est un peu l'histoire de la poule et de l'oeuf  : Est ce le MCP23017 qui se plante et bloque le déroulement physique (puisque le logique continue sa vie au vu du monitoring) ou les aiguillages qui se plantent et créent le dysfonctionnement ?

Les moteurs d'aiguillages Minitrix sont loin d'être d'une fiabilité à toute épreuve particulièrement quand ils sont positionnés "sous" table (ce qui est mon cas). Il semble d'après ce que j'ai pu voir sur des forums que le contact fin de course pouvait entre autres être plus ou moins fiable. Cela peut-il avoir une incidence ?

Quoiqu'il en soit , je vais donc commencer par ajouter les deux capas préconisées et je te tiens au courant du résultat.

Pour commencer à anticiper aurais-tu une référence d'optocoupleur à me proposer ? (l'idéal serait du 4 canaux pour s'adapter au mieux aux ULN)

Merci en tout cas pour le temps consacré  8)

Michel.




Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le octobre 01, 2017, 03:35:00 pm
Citer
Ok je ne savais pas que la fermeture du moniteur générait un reset ! J'aurais encore appris quelque chose !
Plus exactement, c'est l'ouverture du moniteur qui provoque le reset!

Dans mon montage à moi, les relais qui commandent les moteurs d'aiguille sont précédés d'optocoupleurs. Exemple :

http://www.ebay.com/itm/8-Channel-DC-5V-Relay-Shield-Module-for-Arduino-Raspberry-Pi-DSP-AVR-PIC-ARM-TO-/371861713855?epid=552272269&hash=item5694af73bf:g:M6YAAOSwo4pYI~G3 (http://www.ebay.com/itm/8-Channel-DC-5V-Relay-Shield-Module-for-Arduino-Raspberry-Pi-DSP-AVR-PIC-ARM-TO-/371861713855?epid=552272269&hash=item5694af73bf:g:M6YAAOSwo4pYI~G3)

Même avec cette précaution, on n'est pas totalement à l'abris de parasites par induction ou d'une chute de tension au moment des changements d'état. Il faut penser à tout !

Pour moi, un programme ne doit pas se planter, je veux dire qu'il doit tenir compte autant que possible des aléas et être capable de se remettre d'aplomb tout seul. Dans mon cas je surveille l'état des aiguilles et je confirme leur position par un rafraichissement des positions d'aiguilles : 1 toutes les 10 secondes.

La notion de watchdog est très utile aussi pour surveiller le bon fonctionnement du programme. On peut partir de là pour faire un reset software quand il y a quelque chose qui cloche :

https://playground.arduino.cc/Main/ArduinoReset (https://playground.arduino.cc/Main/ArduinoReset)

Dominique
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 04:54:29 pm
Citation de: Dominique

Dans mon montage à moi, les relais qui commandent les moteurs d'aiguille sont précédés d'optocoupleurs.

Mais ces modules sont activés par quoi ?
Il me semble en effet avoir lu que l'arduino n'offre pas suffisamment de puissance pour attaquer directement un relais ou un aiguillage. D'où l'utilisation des ULN.
Par ailleurs si il n'y a que 8 canaux, cela si je comprends bien ne permettrait donc de piloter que 4 aiguillages (sauf à prévoir 2 modules)
Faudrait-il donc partir sur une architecture MCP23017 / 4 ULN / 2 blocs 8 relais/optocoupleurs ? Cela devient un peu lourd, ou peut on directement passer du MCP aux modules ?
La solution que propose Jean luc d'intercaler un optocoupleur entre MCP et ULN (si j'ai bien compris) permettrait avec le rajout de 4 optocoupleurs 4 voies de piloter les 8 aiguillages via les ULN.

Citation de: Dominique

Pour moi, un programme ne doit pas se planter, je veux dire qu'il doit tenir compte autant que possible des aléas et être capable de se remettre d'aplomb tout seul. Dans mon cas je surveille l'état des aiguilles et je confirme leur position par un rafraichissement des positions d'aiguilles : 1 toutes les 10 secondes.


Bien d'accord, mais comment en analogique vérifier le bon positionnement des aiguilles ? D'autant que dans le cas présent le soft en lui même ne se plante pas mais continue à tourner normalement, mais  sans aucune efficacité.......
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le octobre 01, 2017, 05:07:58 pm
Citer
Mais ces modules sont activés par quoi ?

Je vois que tu n'as pas lu ce que j'ai écrit !
http://forum.locoduino.org/index.php?topic=290.msg3412#msg3412 (http://forum.locoduino.org/index.php?topic=290.msg3412#msg3412)

Les entrées des cartes relais (j'ai 44 relais !) sont directement connectées à des sorties de l'Arduino
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le octobre 01, 2017, 05:12:00 pm
Citer
Bien d'accord, mais comment en analogique vérifier le bon positionnement des aiguilles ?

Avec des contacts de fin de course, par exemple.

Citer
le soft en lui même ne se plante pas mais continue à tourner normalement, mais  sans aucune efficacité.....

Ca prouve que le soft ne fait pas tout ce qu'il faut faire et ne vérifie pas qu'il est efficace.
Un soft qui ne se plante pas n'est pas forcément un bon soft.
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 05:59:41 pm
Citation de: Dominique  [/quote

Je vois que tu n'as pas lu ce que j'ai écrit !



Simplement perdu au milieu du bus CAN (que je ne connais pas) et du DCC (que je n'utilise pas) je n'ai certainement pas tout saisi, loin s'en faut ! D'ailleurs tu joues dans la cour "projet" et moi dans celle  "Débuter", çà démontre bien le monde qui nous sépare  ;D

Pour le reste bien d'accord avec toi, mais pour rappel, je ne suis qu'en phase de test de la carte et des connexions, et le soft se résume à une simple litanie de High et LOW , porte par porte du MCP afin de vérifier que tout se passe bien .....Ce qui n'est justement pas le cas !

S'il est très efficace pour allumer et éteindre des leds, il bute malheureusement sur le pilotage des bobines, toute la question étant dans l'immédiat de trouver le pourquoi  :(




Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le octobre 01, 2017, 06:45:14 pm
Il n'y a pas de "cour" de débutants ni de confirmés chez Locoduino. Évitons les polémiques !

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 01, 2017, 07:02:08 pm
D’après les symptômes décrits :


je pencherais pour un plantage du 23017 du à des fluctuations sur l’alimentation a cause des moteurs d’aiguilles

On en revient donc aux capas pour stabiliser son alimentation.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 07:34:17 pm
J'espère avoir le temps d'aller m'approvisionner demain chez mon fournisseur local habituel pour mettre ça en test.

Je vous donne le résultat dès que c'est fait.
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 01, 2017, 07:43:29 pm
Il n'y a pas de "cour" de débutants ni de confirmés chez Locoduino. Évitons les polémiques !

Je te rassure, il n'y avait dans mon propos aucune polémique, mais une simple plaisanterie ! (d'ailleurs suivie du smiley qui rit).
Je suis simplement conscient de mes toutes petites connaissances, et j'avoue être bien loin de tout comprendre dans le monde de l'arduino ou de l'électronique.

J'en apprécie d'autant plus les aides que vous me fournissez, et ne demande qu'a apprendre.

Dommage que les neurones vieillissant limitent parfois la compréhension et la mémorisation, mais j'essaye de m'accrocher !

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Dominique le octobre 01, 2017, 07:51:05 pm
Bon courage  ;D
Titre: Re : Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le octobre 01, 2017, 11:44:04 pm
... toute la question étant ... de trouver le pourquoi ...
je verrais bien une pollution des registres I2C par les pics d'induction des electro-aimants (relais ou bobines).
Comme on a relevé que le protocole I2C n'est pas redondant, il faudrait peut-être compenser cela via programme. Donc de renvoyer l'initialisation E/S des MCP23017 périodiquement.

donc voir si en rappelant :
  mcp.begin();
  pinMode( xx, OUTPUT );

dans le loop, on remet le mcp sur les rails ...
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 03, 2017, 09:50:45 am

Ce matin mise en oeuvre des deux capas puis mise en test et......

20 minutes de fonctionnement sans une seule anicroche !


UN GRAND MERCI A VOUS TROIS !!!

Il me reste maintenant à continuer le déploiement des autres cartes et voir ce que cela donne.

Pour ma deuxième carte de pilotage d'aiguillages identique à la première (sauf les adresses I2C bien sûr) je pense qu'il faut que j'installe d'office également 2 capas près du MCP. Qu'en pensez-vous ?
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 03, 2017, 09:56:46 am
Oui  :D
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: CATPLUS le octobre 03, 2017, 02:15:01 pm
Bonjour Vauban
Pourrais-tu STP nous faire un schéma sur ton premier montage, je n'ai pas tout à fait saisi toute la littérature que vous avez exprimé.
Cordialement
Marcel
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: msport le octobre 03, 2017, 02:57:01 pm
20 minutes de fonctionnement sans une seule anicroche !

Très heureux de lire ça !

J'ajouterais que les 10µF 16V CMS que j'ai signalés, sont certainement au tantale ou similaire en multicouches et peuvent régler les problèmes de parasites hautes et basses fréquences car si au tantale, ils sont dépourvus de composante selfique.
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 03, 2017, 04:55:23 pm


Bonjour Vauban
Pourrais-tu STP nous faire un schéma sur ton premier montage, je n'ai pas tout à fait saisi toute la littérature que vous avez exprimé.
Cordialement
Marcel

Tu le trouveras, (ainsi que sa concrétisation sur une plaque à bandes cuivrées, en fichier Fritzing) en cliquant sur le lien Dropbox contenu dans mon message du 30/09 en rappel ci-dessous :
 
www.dropbox.com/sh/dig00xtle310cvi/AAB2YmgfiMhz19SYi1jUsMzha?dl=0 (http://www.dropbox.com/sh/dig00xtle310cvi/AAB2YmgfiMhz19SYi1jUsMzha?dl=0)

Il faut donc pour qu'il fonctionne correctement venir simplement rajouter deux capas montées en parallèle entre les bornes 9 et 10 du MCP23017 N°1.
Une de 100 microFarad (attention à la polarité) et une de 100nanoFarad.

Ce n'est pas grand chose, mais c'est indispensable..... les tests l'ont prouvé ! Encore fallait-il le savoir, mais heureusement que les "sauveteurs du forum" n'étaient pas loin ! :D

N'hésites pas si tu as besoin d'autres précisions !

Michel.





Titre: Re : Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 03, 2017, 05:02:40 pm

Très heureux de lire ça !


Et moi d'avoir pu l'écrire ! Quel plaisir d'entendre les aiguillages battre comme des métronomes ! J'ai repris le sourire  :D


J'ajouterais que les 10µF 16V CMS que j'ai signalés, sont certainement au tantale ou similaire en multicouches et peuvent régler les problèmes de parasites hautes et basses fréquences car si au tantale, ils sont dépourvus de composante selfique.

C'est bon à savoir, bien que je préfère ne pas trop souder directement sur les MCP, que j'ai d'ailleurs mis sur support pour en permettre le changement facile au cas où .....

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: CATPLUS le octobre 05, 2017, 09:34:11 am
Bonjour
Merci pour le lien, je l'avais déjà consulté.
Je ne peux pas ouvrir le fichier .zig........ D'ou ma demande. Un simple .jpg suffirais.
Cordialement
Marcel
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 05, 2017, 09:38:29 am
.zig ?  :o

Le lien dropbox propose 2 fichiers pdf et un fichier fez (Fritzing)
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: CATPLUS le octobre 05, 2017, 09:47:12 am
Oui fez.... (c'était de l'humour)
Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 05, 2017, 09:49:00 am
Rhaaa, mon correcteur m'a encore piégé. C'est .fzz.

Il te faut Fritzing : http://fritzing.org/download/
Titre: Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 05, 2017, 10:57:31 am
Bonjour
Merci pour le lien, je l'avais déjà consulté.
Je ne peux pas ouvrir le fichier .zig........ D'ou ma demande. Un simple .jpg suffirais.
Cordialement
Marcel

Je peux effectivement te transformer cela en jpg ou en pdf. Seul problème et qui a son importance c'est que cela ne te permettra pas de voir ce qu'il y a dessous les composants ! or la réalisation étant sur une carte à bandes cuivrées il est indispensable de les couper à certains endroits et notamment sous certains composants.

Par ailleurs avec Fritzing tu peux suivre plus aisément le cheminement des câblages.

Comme te le suggère Jean-Luc le mieux est vraiment d'installer Fritzing, et il est gratuit ! Donc pourquoi s'en priver !

Petite modification au passage, j'ai ce matin connecté l'ensemble de mes différentes cartes entre elles en I2C, et relancé mes tests. Mes aiguillages continuaient à fonctionner parfaitement avec les 4 premières cartes connectées, mais partaient dans le décor dès que la 5eme était connectée.
J'ai remplacé les résistances pull up 10K par des 4,7 K et désormais tout est rentré dans l'ordre.
Titre: Re : Re : Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: Jean-Luc le octobre 05, 2017, 11:30:42 am
Petite modification au passage, j'ai ce matin connecté l'ensemble de mes différentes cartes entre elles en I2C, et relancé mes tests. Mes aiguillages continuaient à fonctionner parfaitement avec les 4 premières cartes connectées, mais partaient dans le décor dès que la 5eme était connectée.
J'ai remplacé les résistances pull up 10K par des 4,7 K et désormais tout est rentré dans l'ordre.

J'avais pas fait la remarque mais effectivement, les resistances de pullup que l'on rencontre le plus souvent pour l'I2C font 4,7kΩ

TI a publié un Application Report sur le sujet : http://www.ti.com/lit/an/slva689/slva689.pdf

Sans s'embêter avec les calculs, on peut se référer aux courbes des figures 2 et 3 qui définissent respectivement la résistance minimum admissible (pour respecter les temps de descente de l'I2C), environ 1.6kΩ sous 5V, et la résistance maximum qui dépend de la capacité parasite du bus.

L'I2C de l'Arduino est à 100kHz par défaut, ce qui correspond à la courbe noire de la figure 3.

En ajoutant une 5e carte à ton système tu as augmenté la capacité parasite qui devait déjà être telle que c'était limite avec des résistances de 10kΩ. Ça devait être dans les 125pF (au doigt mouillé). Avec 4,7kΩ, tu devrais pourvoir monter à 7 ou 8 cartes.

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: VAUBAN38 le octobre 05, 2017, 11:46:41 am
Merci Jean Luc pour tes précisions, j'avais effectivement vu cette méthode de calcul, mais pour être honnête je n'y avais pas compris grand chose  :-\
Ayant lu par ailleurs que les valeurs utilisées allaient de 10 à 1 K, j'avais arbitrairement avec ma science de l'inculte, tranché pour 10k en me réservant la possibilité de changer selon les résultats......
En quelques mots L'EMPIRISME SCIENTIFIQUE AU PLUS HAUT NIVEAU !! :D :D

Titre: Re : Problème sur pilotage aiguillages par arduino via I2C
Posté par: savignyexpress le février 02, 2018, 07:00:33 am
Merci à tous pour ces échanges.

Cela me rappelle une situation similaire rencontrée avec des registres à décalage 74HC595 aussi utilisés pour commander des relais actionnant des moteurs Minitrix. Dans mon cas, la solution est venue avec l'utilisation de câbles blindés entre les cartes pour acheminer les signaux horloge, data et sortie entre les cartes. Du câble réseau Ethernet recyclé est parfait pour cela.

Bonne fin de semaine et meilleures salutations.