Auteur Sujet: commande d'aiguillage à solénoïdes avec DCC++  (Lu 1762 fois)

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
commande d'aiguillage à solénoïdes avec DCC++
« le: janvier 28, 2018, 04:17:33 pm »
Bonjour,

Je viens de monter ma station DCC++ avec un arduino MEGA, 2 LMD18200 et 2 MAX471.
J'ai utilisé la bibliothèque DCpp et tout fonctionne parfaitement.  :)  J'ai testé avec JMRI et RocRail.

Mon réseau va comporter 20 cantons.
Je pensais devoir utiliser un bus LocoNet pour la détection d'occupation des cantons.
Mais j'ai découvert que DCC++ pouvait gérer des sensors sur les pins de l'arduino et communiquer leur état au PC.
Donc inutile d'installer un LocoNet. Cool !  8)

Mon réseau va comporter une douzaine d'aiguillages à solénoïde Peco.
Au départ je pensais réaliser des décodeurs pour aiguillage à solénoïdes comme ceux décrits là:
http://www.locoduino.org/spip.php?article142
Mais j'ai vu qu'il était également possible de gérer des aiguillages et des sorties avec DCC++.
Selon la commande d'aiguillage du PC, DCC++ peut changer l'état de la pin arduino dédiée si l'aiguillage est défini comme Output.

Mes questions:
Est il possible d'intégrer la méthode activation_aiguillage() (du sketch du décodeur pour aiguillage à solénoïdes)
au programme DCC++ pour piloter les relais directement depuis le MEGA ?
La commande delay(ACTIVATION); (250ms) ne va t-elle pas gêner le bon déroulement du programme des signaux DCC ?
Il me semble que les signaux DCC sont générés par interruptions donc c'est peut-être possible ?
« Modifié: janvier 28, 2018, 05:15:24 pm par nopxor »

CATPLUS

  • Full Member
  • ***
  • Messages: 173
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #1 le: janvier 29, 2018, 11:20:42 am »
Bonjour Nopxor

La réponse est surement ici.

http://www.locoduino.org/spip.php?article142

J'aimerai faire une remarque (qui n'engage que moi) aujourd'hui utiliser le moteur PECO me semble un peu désuet.

Je m'explique, on doit utiliser 2 boutons poussoirs pour activer le mouvement de l'aiguille, de plus il ne  possède pas de coupure de fin de course.
(pour info il y a quelques années, j'avais réalisé un montage avec un interrupteur et condensateur)

Dans le programme de l'Arduino, on donne un temps pour l’impulsion, le moteur PECO demande un fort ampèrage pour son fonctionnement, à terme  il y a un risque de destruction si les solénoïdes reste alimenté.

Il y a beaucoup d'autre moteur d'aiguille sur le marché (perso j'utilise des TORTOISEs)
 
Les numéros "846" & "847" (Janvier & Février 2018) de Loco Revue font références à 2 articles:

Le premier    => les différents types utilisables
Le deuxième => pour le remplacement du moteur PECO par une nouvelle génération

J'utilise  aussi JRMI et aucun probléme

Cordialement
Marcel
Best Regards

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #2 le: janvier 29, 2018, 04:11:59 pm »
Bonjour Marcel,

Les moteurs Tortoise sont certainement l'idéal, mais les moteurs Peco sont 3 fois moins chers... et mon budget est serré.
Je compte utiliser les PL-10WE qui sont moins gourmands en énergie que les PL-10 (1.1A au lieu de 2.4A)
Et puis une carte 8 relais qui permet d'en controler 4, c'est environ 4€ sur Ebay ou AliExpress.
Il suffit d'ajouter une alimentation de PC pour le 5V de ces cartes et le 12V des moteurs.

Je me suis plongé dans les sources Outputs.h et Outputs.cpp de la bibliothèque DCCpp.
L'adaptation ne devrait pas être trop compliquée.

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #3 le: janvier 31, 2018, 01:44:34 pm »
Bonjour,

Ca y est j'ai modifié le programme DCC++ pour la commande d'aiguillages à solénoïdes directement depuis les pins de l'arduino.
J'ai testé, tout fonctionne bien.

Pour commander ceux-ci depuis PanelPro de JMRI il faut utiliser la dernière version 4.10 de JMRI.
Cela ne fonctionne pas avec la 4.8, il y a un bug dans JMRI qui empêche la commande.

C'est quand même cool de tout controler depuis un seul MEGA:
- Le DCC
- Les relais des solénoïdes d'aiguillages avec les pins Outputs.
- La rétrosignalisation avec les pins Sensors.

DCC++ c'est vraiment génial. 8)

Ci joint les sources modifiés.

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #4 le: février 21, 2018, 06:17:18 pm »
Bonjour,

Quand je disais que j'avais testé et que tout fonctionnait bien, je parlais de la commande des relais.

Depuis j'ai reçu les moteurs d'aiguillage PECO (PL-10WE).

J'ai donc procédé à plusieurs tests.

D'abord j'ai testé si mon alimentation de PC (200W) allait convenir.
Le 12V fait en réalité 10.35V mais cela suffit à déclencher les bobines.
On peut tirer jusqu'à 8A sur la sortie 12V, c'est plus qu'il n'en faut.

Ensuite j'ai cablé les deux bobines sur la sortie des relais pour le test final ou je commande l'aiguillage à l'écran de JMRI.

Cela fonctionne une fois, deux fois... puis plantage de JMRI avec message: Erreur DCC++ port série.
Je relance le test, mêmes effets... Manifestement l'Arduino n'aime pas et le fait savoir à JMRI.

Je cable l'alimentation +5V du PC à la carte des relais pour isoler l'Arduino des relais grâce aux Opto-coupleurs.
Jusque là, j'alimentais depuis l'Arduino.
Re tests, Re mêmes résultats !  :(

Je réfléchis et je pressens un problème de parasites venant des bobines PECO.

Lorsqu'on alimente une bobine et que l'on interrompt son alimentation, une surtension apparait à ses bornes.
La surtension se transforme en arc électrique au niveau des contacts et des parasites sont émis.

Pour remédier à cela il faut ajouter une diode (dite de roue libre) aux bornes des bobines.
A la coupure de l'alimentation, le courant inverse généré par la bobine peut se décharger dans la diode.

J' ai donc soudé 2 grosses diodes (fond de tiroir) pour tenter un nouveau test.

Et là, tout est rentré dans l'ordre et les bobines foncionnent parfaitement sans générer de parasites.  :D

Reste à savoir quelle type de diodes convient ?

Pour une commande ON/OFF d'un solénoïde (pas une commande PWM), une diode de redressement quelqonque fait l'affaire.
Il suffit que sa tension inverse soit plus grande que la tension d'alimentation et que son courant direct max soit plus grand que le courant dans la bobine.
Le tout avec un bon facteur de sécurité.
Je vais commander des 6A10 (6A, 1000V), ça coûte 1€ les 10...  ;)

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #5 le: mars 21, 2018, 01:07:33 pm »
Bonjour,

J'ai commencé à monter les moteurs d'aiguillages sous le réseau.
J'ai installé sur chacun un inverseur (PECO PL-13) commandé par la tige du solénoïde pour alimenter le coeur d'aiguille electrofrog.
En fait cela génère quelques frottements supplémentaires et l'alimentation de 10.35V s'est révélée insuffisante.

PECO préconise du 16V et c'est effectivement la tension requise pour un fonctionnement correct des moteurs.
Peu importe alternatif ou continu du moment que l'ampérage est suffisant.
J'utilise une alimentation de laptop 16V DC 4A.

Pierrot le loup

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : commande d'aiguillage à solénoïdes avec DCC++
« Réponse #6 le: avril 01, 2018, 10:04:07 am »
Bonjour,
Pour le type de diode "roue libre" une 1N4004 suffit (400V 1A) c est ce qui est préconisé dans le monde pro.
Le prix est très dérisoire.
Bon montage
Bonne journée
« Modifié: avril 02, 2018, 05:33:09 pm par Thierry »