DUSA-1 : Décodeur (DCC) pour Un Seul Accessoire(version pour moteurs lents)

Posté le 15 mai 2021

Remerciements et références

Cette réalisation utilise le programme pour PIC: SSWDEC (Single Switch Decoder), écrit par Alex Lagutin sur la base du travail réalisé antérieurement par Dean Probst.
Toute exploitation commerciale en est interdite sans l’accord des auteurs.

Merci à eux, et merci également aux animateurs de Ptitrain, qui m’ont mis le pied à l’étrier en matière de PICs.

Le site DCC goes Z présente par ailleurs d’autres types de décodeurs.

Objectifs

Soulignons le d’entrée, l’objectif de cette réalisation n’est pas de faire des économies. Ce décodeur pour une seule aiguille revient probablement aussi cher qu’un décodeur du commerce, si on tient compte du fait que ceux-ci commandent généralement quatre aiguilles.

En pratique, ce décodeur est destiné à commander sur mon réseau quelques signaux mécaniques isolés, sans devoir tirer des fils pour les raccorder à un décodeur éloigné.

Un autre objectif était de me familiariser avec la technique des PICs et du DCC, en vue de réalisations ultérieures plus complexes.

Description

DUSA-1 est conçu pour commander des signaux mécaniques motorisés par un moteur Conrad 219998 / 219999.
Sous 5V, les moteurs Conrad fonctionnent silencieusement et sans brutalité, gage d’une fiabilité et d’une durée de vie raisonnable.
Bien qu’ils soient vendus pour cela, je n’aurais pas utilisé ces moteurs sous 12V pour actionner des aiguilles, compte tenu de leur fabrication dont le mieux qu’on puisse dire est qu’elle est faite à l’économie.

Le décodeur tire son énergie du bus DCC: le signal DCC est redressé et un ou deux régulateurs abaissent la tension à 5V. L’ensemble du décodeur, mais aussi le moteur sont alimentés en 5V. Le moteur ne consomme que durant la phase de mouvement, qui est de l’ordre de la seconde.

Mes signaux nécessitant un éclairage permanent, une sortie 5V est disponible à coté des sorties du moteur.

Le schéma

Il fait presque uniquement appel à des circuits intégrés: redresseur en boîtier DIP, régulateurs 5V, microcontrôleur PIC 12F629 ou 12F675, pont en H LB1630.

Schéma dusa-1

Deux options d’alimentation sont prévues: avec un seul ou deux régulateurs de tension.
J’utilise personnellement DUSA-1 avec un seul régulateur, mais comme nombre de décodeurs d’amateurs que l’on trouve sur le Web ont prévu de séparer l’alimentation du microcontrôleur de celle du moteur, j’ai préféré prévoir d’emblée cette possibilité.

Le moteur Conrad est monté avec ses deux diodes d’origine câblées en parallèle.

À l’intérieur du moteur (en tous cas les miens!) on trouve deux résistances de limitation du courant en série: une de 4,7 ohms et 15 ohms. Le moteur fonctionnant ici sous une tension inférieure à ses spécifications, on peut supprimer la résistance de 15 ohms pour lui donner un peu plus de vitesse et de couple.

Le mode d’utilisation des cavaliers adr et dur est indiquée plus loin.

Le programme

Le code source et le fichier hexadécimal de programmation pour PIC 16F629 peuvent être téléchargés sur le site des auteurs.
Une version du source pour 16F675, avec davantage de commentaires, ainsi que le fichier hexadécimal pour 16F675 peuvent être téléchargés ici.
(Si on utilise un 12F675 au lieu d’un 12F629, il y a deux lignes à ajouter pour inhiber le CAN).

Note : d’après RP 9.2.1, les décodeurs de commande d’accessoires peuvent avoir huit sorties indépendantes, ou bien ces sorties peuvent être groupées en 4 fois 2. Mais avec ma centrale Lenz, la première option ne peut être utilisée: le bit « C » est bloqué à 1.

Personnalisation : ici, pas de CV, mais un mode de personnalisation bien commode: deux cavaliers qui permettent de programmer le décodeur in-situ.

Lorsque l’on positionne le cavalier adr, le premier code qui passe sur le bus DCC est pris comme adresse. Avec le cavalier dur, il est pris comme durée d’impulsion.

Si donc on veut donner au décodeur, ou plus exactement à l’accessoire commandé, l’adresse 56, on met le cavalier adr, puis on envoie une commande à l’accessoire 56, puis on enlève le cavalier. Bien entendu, le réseau doit être inactif pendant cette période.

On procède de même pour régler la durée des impulsions en sortie, grâce au cavalier dur, avec les conventions suivantes :

    • environ 20ms par unité
    • une valeur impair signifie: non-relançable, une valeur paire: relançable
    • une valeur 251 ou 252: sortie activée en permanence.
      Dans le cas des moteurs Conrad, j’ai réglé ce paramètre à 16 (durée d’environ 300ms, relançable).

La réalisation

Le circuit imprimé est commun avec celui de DUSA-2, décodeur pour servo-moteur décrit sur la page suivante.

Avec DUSA-1, monter le LB1630, mais les picots de programmation aux ne sont pas utilisés.

La carcasse du versant droit de la vallée a été recouverte d’un grillage

Ci-dessus, version à un seul régulateur.

Un strap ré-alimente l’autre partie du montage.

La diode est inutile et remplacée par un autre strap.

La carcasse du versant droit de la vallée a été recouverte d’un grillage

Aspect du montage à un seul régulateur.

La carcasse du versant droit de la vallée a été recouverte d’un grillage

Ci-dessus, version à deux régulateurs.

Télécharger le typon circuit imprimé: au format PDF, pour un seul circuit ou cinq circuits.

Télécharger les programmes : programmes sources (.ASM) et compilés (.HEX) pour ce décodeur et DUSA2 décrit sur la page suivante.

Autres possibilités d’utilisation

Autres moteurs : ce décodeur peut actionner, en principe, tous les moteurs fonctionnant sous 5V et nécessitant une inversion de la tension.
Les Switchmaster fonctionnent parfaitement. Les Lemaco et les Tortoises fonctionnent aussi, mais un peu trop lentement à mon goût.
On pourrait imaginer d’accroître la tension de sortie, mais le LB1630 n’est pas sensé supporter plus de 6V. On peut tout de même remplacer le régulateur n°2 par un 7806.

En cas d’utilisation avec des moteurs devant rester sous tension en permanence, il faut estimer la puissance dissipée dans le régulateur, qui peut nécessiter un radiateur. Il faut aussi s’assurer que la centrale DCC est capable de délivrer en permanence le courant nécessaire à tous les décodeurs.

Feux lumineux : il est possible de commander des feux lumineux en même temps que le moteur, de différentes façons :

    • des lampes à incandescence 5V peuvent être connectées entre chacune des sortie et le +5V.
    • des LEDs munies de leurs résistances peuvent être connectées de même, ou bien tête-bêche, en parallèle sur le moteur.

Pour que les feux restent allumés en permanence, il faut régler la sortie comme permanente. Si on tient à couper l’alimentation du moteur tout en conservant les feux, une petite modification du programme est nécessaire.

Recherche dans les Tutoriels

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Dans la même catégorie