Un décodeur DCC, mais c'est très simple !

Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 09 15:08

Un décodeur DCC, mais c'est très simple !

Message par France herwat

Bonjour à tous .

Dans ce sujet, mon but n’est pas de faire un tuto , mais de monter mon cheminement dans la découverte du monde DCC .

Tout d’abord, comme beaucoup, j’utilise depuis plus d’une décennie une centrale DCC pour alimenter mon réseau en digital et je suis tout content de pouvoir faire manœuvrer mes loco sans très bien savoir ce que cache ce sigle DCC , Je sais simplement que si je veux que mes loco ou aiguillages répondent à mes ordres, ils doivent être munis d’un décodeur ,

ça y est, le mot est lâché !

Bon, j’ai longtemps renâclé à étudier le DCC et ses décodeurs, mais pour les besoins de l’APT de Patrice et surtout quand je me suis rendu compte que l’on pouvait faire un décodeur simplement avec un arduino, j’ai changé d’avis . . .
Mais tout d'abord, c'est-ce que le DCC ?
J'ai trouvais pas mal de réponse sur ce site par ailleurs très intéressant .
J'avoue ne pas avoir encore tout lu , mais je commence à comprendre l'essentiel même s'il me reste pas mal de zones d'ombre . :siffle:
Par ailleurs, j'ai compris que lorsqu'on donne un ordre à la centrale, celle-ci envoie un paquet de trames pendant un court instant, histoire d'être sûre que le décodeur visé ait bien compris ce qu'on lui demande , puis passe à autre chose ! et le décodeur garde l'ordre en mémoire jusqu'il en reçoive un autre .
Ainsi, si un décodeur d'aiguillage reçoit l'ordre "dévié" un court instant, il restera dévié jusqu'à ce qu'il reçoive l'ordre "droit" .
Si une loco reçoit l'ordre d'allumer ses phares, les phares resteront allumés jusqu'à reçoive l'ordre de les éteindre . Etc Etc . . .

Bon, on va pouvoir attaquer la construction d'un décodeur .
Mais pour le moment, on va en rester là !
Donc, :a_suivre:
Avatar du membre
France ramasoft
Chef es bogies
Chef es bogies
Messages : 5672
Enregistré le : 29 juil. 2024, 19:06
Prénom : Patrick
LOCALISATION : Indre - Levroux
Centres d'intérêts : Modélisme ferroviaire
Programmation C++, VB6 et assembleur
Électronique
Echelle pratiquée : H0
Âge : 68
Pays :
France
France
févr. 2026 09 16:32

Re: Un décodeur DCC, mais c'est très simple !

Message par France ramasoft

Un nouveau sujet qui s'annonce passionnant. :cooooool:
C'est vrai que je regarde aussi ça un peu de loin et l'idée de faire mes propres décodeurs ne m'a jamais effleuré ...
L'Arduino, ça va pour contrôler un ascenseur, et jusqu'à présent je faisais tous mes automatismes en logique câblée avec quelques composants à 2 balles et ça me suffisait largement.
Mais avec tous ces sujets ça pourrait changer.
Donc j'attends la suite avec impatience.
Avatar du membre
France Georges de Villette
2000 posts et +
2000 posts et +
Messages : 8712
Enregistré le : 09 mars 2021, 19:23
Prénom : Georges
LOCALISATION : Villette d'Anthon
Centres d'intérêts : J'ai participé au début de Mini World Lyon .
J'aime l'électronique , la mini mécanique .
Passionné par les nouvelles technologies , imprimantes 3D , Laser , CNC .
Echelle pratiquée : Aucune
Âge : 76
Pays :
France
France
févr. 2026 09 16:40

Re: Un décodeur DCC, mais c'est très simple !

Message par France Georges de Villette

.
Merci Hervé de partager ce que tu as appris !!!!!
Je vais essayer de suivre tes cours !!!
.
:bienv: :bienv: :bienv: :bienv: :bienv:
Le travail est bien une maladie !!!
Puisqu'il y a une médecine du travail !!! Coluche .
Avatar du membre
France Bud_fr
Posteur fou
Posteur fou
Messages : 230
Enregistré le : 07 févr. 2026, 09:55
Prénom : Didier
LOCALISATION : Six Fours les Plages (83)
Centres d'intérêts : Les nouvelles technologie: La 3D, l'Arduino, l'IA, etc .... tout cela au service du modélisme, ferroviaire actuellement, après être passé par l'aéromodélisme, et le bateau.
Echelle pratiquée : H0
Pays :
France
France
févr. 2026 09 16:50

Re: Un décodeur DCC, mais c'est très simple !

Message par France Bud_fr

Ah !!! Intéressant, je m'abonne. Image

A+
A la maison, il n'y a que la télévision qui me parle, et que mon ordinateur qui me répond. :super:
Avatar du membre
France bunny94
2000 posts et +
2000 posts et +
Messages : 15214
Enregistré le : 22 sept. 2021, 08:35
Prénom : Alain
LOCALISATION : Noiseau
Centres d'intérêts : Photo-Vidéo-Modélisme ferroviaire-Trains réels-Impression 3D-Miniature automobile 1/43ème
Echelle pratiquée : H0
Âge : 75
Pays :
France
France
févr. 2026 09 18:02

Re: Un décodeur DCC, mais c'est très simple !

Message par France bunny94

Alors moi je lirai toutes tes parutions Hervé, même si je n'y comprendrai sûrement pas grand chose. :gratte:
Pour me retrouver sur ma chaîne YT: https://www.youtube.com/@abunny94/videos
Avatar du membre
France likiki
Site Admin
Site Admin
Messages : 16764
Enregistré le : 27 févr. 2021, 16:11
Prénom : Christian
LOCALISATION : Ile de France
Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
Echelle pratiquée : H0
Âge : 59
Pays :
France
France
févr. 2026 09 18:12

Re: Un décodeur DCC, mais c'est très simple !

Message par France likiki

Moi je m'assois juste devant (pour bien entendre les paroles d'Hervé).
Si le Goëland se gratte le gland, il fera mauvais temps,
Si il se gratte le cul, il ne fera pas beau non plus.

Proverbe de là bas.

ImageImageImage

:tirechap:

.
Si vous souhaitez faire un don pour le forum , c'est ici.
Avatar du membre
France Amigorl
Posteur irrécupérable
Posteur irrécupérable
Messages : 918
Enregistré le : 02 févr. 2025, 20:15
Prénom : Rémy
LOCALISATION : Pau
Centres d'intérêts : Digitalisation matériel ancien, construction d'un réseau HO. Arduino, Dccex-Conmmand-Station, Rocrail, Digitalisation pont tournant Jouef, Decodeur accessoires DIY. 3D PLA et débutant SLA.
Echelle pratiquée : H0
Âge : 64
Pays :
France
France
févr. 2026 09 18:25

Re: Un décodeur DCC, mais c'est très simple !

Message par France Amigorl

:bienv:
Bon sujet.

J'essaierai d'alimenter, plutôt au moment où je passerai de la bibliothèque Minabay à la Dccnmra pour mieux gérer les CV.

Pour l'instant je suis sur autre chose mais je partagerai mes travaux dès que possible.

:a_suivre:
Modifié en dernier par France Amigorl le 10 févr. 2026, 08:08, modifié 1 fois.
Avatar du membre
France patrice_b
2000 posts et +
2000 posts et +
Messages : 3766
Enregistré le : 31 janv. 2025, 14:45
Prénom : Patrice
LOCALISATION : Beziers Herault
Centres d'intérêts : Modelisme HO et HOM ou HOe
Echelle pratiquée : H0
Âge : 65
Pays :
France
France
févr. 2026 09 19:41

Re: Un décodeur DCC, mais c'est très simple !

Message par France patrice_b

Merci Hervé, merci Remy. :merciiii:

voila qui nous promet de saines lectures

:yess: :yess:
Cordialement,

Patrice
Avatar du membre
France ramasoft
Chef es bogies
Chef es bogies
Messages : 5672
Enregistré le : 29 juil. 2024, 19:06
Prénom : Patrick
LOCALISATION : Indre - Levroux
Centres d'intérêts : Modélisme ferroviaire
Programmation C++, VB6 et assembleur
Électronique
Echelle pratiquée : H0
Âge : 68
Pays :
France
France
févr. 2026 09 19:52

Re: Un décodeur DCC, mais c'est très simple !

Message par France ramasoft

:PetitPoucejpg:
Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 12 16:00

Re: Un décodeur DCC, mais c'est très simple !

Message par France herwat

:merciiii: :merciiii: :merciiii: Mais vous me mettez la pression, là
Et ça va va pas du tout, ça ! :hhhaaaa: :hhhaaaa: :hhhaaaa:
Mais comme je l'ai déjà dit, je découvre et je me borne donc à un décodeur simple . Pour le compliqué, je passe la main . . . :siffle:
D'ailleurs, je reprend ici ce que j'avais fait de façon un peu décousue pour l'automatisation de l'APT de Patrice .
Fermons la parenthèse .
Dans ce qui suit, je me suis fortement inspiré d'un tuto du club de modélisme de Rouen : ici

Nous avons donc, d'un côté une alimentation DCC qui est en fait un courant alternatif à fréquence plus ou moins variable et de l'autre, un Arduino qui ne demande qu'à analyser tout ça ! Problème : les deux sont électriquement totalement incompatibles .
Le remède, faire une liaison optique au moyen d'un opto-coupleur . Le choix le plus couramment retenu est le 6 N 137 .

Et le montage que l'on retrouve partout est le suivant :
.
decodeur-dcc-cablage_opto-coupleur.png
.
Et pour faire mes premiers essais j'ai fait un montage dont voici le schéma :
.
Décodeur DCC.png
.
Ce qui donne ça :
.
20260212_141555.jpg
.
Bon ! ben voilà, y a pu qu'à charger le programme . Facile . . . :siffle:

:a_suivre:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar du membre
France ramasoft
Chef es bogies
Chef es bogies
Messages : 5672
Enregistré le : 29 juil. 2024, 19:06
Prénom : Patrick
LOCALISATION : Indre - Levroux
Centres d'intérêts : Modélisme ferroviaire
Programmation C++, VB6 et assembleur
Électronique
Echelle pratiquée : H0
Âge : 68
Pays :
France
France
févr. 2026 12 16:51

Re: Un décodeur DCC, mais c'est très simple !

Message par France ramasoft

Très intéressant tout ça. :cooooool:
Avatar du membre
France likiki
Site Admin
Site Admin
Messages : 16764
Enregistré le : 27 févr. 2021, 16:11
Prénom : Christian
LOCALISATION : Ile de France
Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
Echelle pratiquée : H0
Âge : 59
Pays :
France
France
févr. 2026 12 16:54

Re: Un décodeur DCC, mais c'est très simple !

Message par France likiki

Le fil bleu sur la borne bleu, le fil vert sur la borne verte. :gratte: :gratte: :gratte: :gratte: :gratte:
Si le Goëland se gratte le gland, il fera mauvais temps,
Si il se gratte le cul, il ne fera pas beau non plus.

Proverbe de là bas.

ImageImageImage

:tirechap:

.
Si vous souhaitez faire un don pour le forum , c'est ici.
Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 12 17:14

Re: Un décodeur DCC, mais c'est très simple !

Message par France herwat

Bon, la promenade avec Chienchien étant faite, je reprends . . . :siffle:

Facile, facile, pas si facile que ça d'analyser les trames !
Heureusement, apparemment je ne suis pas le premier à m'intéresser à la chose et d'autres se sont penchés sur la question et il existe plusieurs bibliothèques qui font ça très bien .
Comme je vais utiliser le programme du club de Rouen , la bibliothèque retenue est " DCC_Decoder " . Cette bibliothèque n'est pas dans l'IDE arduino . Il faut donc la télécharger ou, pour les flemmards, la voici :
.
DCC_Decoder-master.zip

.
Cette bibliothèque utilise les interruptions .
INTERRUPT 0 impose de relier le montage à la pinoche D2 de l'arduino
INTERRUPT 1 imposerait D3 .

Ceci dit, voici le programme que j'ai utilisé, c'est quasiment un copier-coller de celui du club de Rouen auquel j'ai apporté quelques modifs .

Code : Tout sélectionner

             /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              * * * * *                                                 * * * * *
              * * * * *             Décodeur d'accessoires              * * * * *
              * * * * *                                                 * * * * *
              * * * * *                 Vu sur le site :                * * * * *
              * * * * *       Seine Modèle Club Ferroviaire - SMCF      * * * * *
              * * * * *   https://www.modelisme-ferroviaire-rouen.fr/   * * * * *
              * * * * *                                                 * * * * *
              * * * * *                    version ROCO                 * * * * *
              * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

// Utilisation de la librairie DCC Decoder pour lire les trames DCC
#include "DCC_Decoder.h"
#define DCC_INTERRUPT  0
// Adresse de base du Arduino-Decodeur
#define baseAdresse 100  

// Déclaration des éléments par rapport aux broches de l'Arduino
// La LED1  est connectée à la broche 6
// La LED2  est connectée à la broche 7
// La LED3  est connectée à la broche 8
// La LED4  est connectée à la broche 9
const int Led_1 = 6;
const int Led_2 = 7;
const int Led_3 = 8;
const int Led_4 = 9;

// Cette fonction est appelée par la librairie pour 
// chaque activer / désactiver au niveau des adresses
void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data) {
  address -= 1;
  address *= 4;
  address += 1;
  address += (data & 0x06) >> 1;
  address = address + 4; // cette ligne devra être décommentée
                           //  si centrale RocoMouse et/ou z21

  boolean enable = (data & 0x01) ? 1 : 0;
  Serial.print(F(" Adresse DCC Claire : "));
  Serial.print(address);
  Serial.print(" Enable : ");
  Serial.print(enable);
  Serial.print(" Activate : ");
  Serial.println(activate);

  // Ex: si l'adresse de base est 100 
  // alors l'arduino réagit aux adresse 100, 101, 102,...
  // Si l'adresse accessoire envoyée par la centrale
  // correspond à l'une de notre programme
  // Alors on récupère son état (activé/désactivé)
  // et on exécute en conséquence les actions 
  // Ici la gestion de l'alimentation de 4 LEDs.
  switch (address) {
  
    case (baseAdresse): 
      if (enable) {
        digitalWrite(Led_1, LOW);
        digitalWrite(Led_2, HIGH);
      } else {
        digitalWrite(Led_1, HIGH);
        digitalWrite(Led_2, LOW);
      } 
      break;

    case (baseAdresse + 1):

if (enable) {
        digitalWrite(Led_3, LOW);
        digitalWrite(Led_4, HIGH);
      } else {
        digitalWrite(Led_3, HIGH);
        digitalWrite(Led_4, LOW);
      } 
      break;
/* Et ainsi de suite
    case (baseAdresse + 2):
     
      break;
*/
  }

}


void setup() {
  Serial.begin(9600);
  // Broche des LEDs en mode "Sortie"
  pinMode(Led_1, OUTPUT);
  pinMode(Led_2, OUTPUT);
  pinMode(Led_3, OUTPUT);
  pinMode(Led_4, OUTPUT);
  
  // Init les Voyants, par défaut Rouge actif
  digitalWrite(Led_1, HIGH);
  digitalWrite(Led_2, LOW);
  digitalWrite(Led_3, LOW);
  digitalWrite(Led_4, LOW);

  // Les 2 lignes suivantes permettent d'initialiser la librairie DCC Decoder
  DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
  DCC.SetupDecoder( 0x00, 0x00, DCC_INTERRUPT );  //  DCC_INTERRUPT
}


void loop() {

  // Appel de la librairie DCC pour lire les valeurs
  DCC.loop();
}
La ligne : address = address + 4; à été décommentée car j'utilise une z21 pour mes essais .
ATTENTION, il y a une erreur sur l'originale : ils ont mis -4 au lieu de +4 .

Autre modif, sur les conseils de Rémy , j'ai ajouté ces lignes

Serial.print(F(" Adresse DCC Claire : "));
Serial.print(address);
Serial.print(" Enable : ");
Serial.print(enable);
Serial.print(" Activate : ");
Serial.println(activate);

Ce qui va permettre de visualiser sur l'écran série de l'IDE si tout se passe bien .

Le programme ètant chargé et la platine raccordée à la centale DCC, voilà ce que ça donne :



Et sur le moniteur série :
.
20260212_150801.jpg
.
Voilà, premiers essais concluents
:a_suivre:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Avatar du membre
France patrice_b
2000 posts et +
2000 posts et +
Messages : 3766
Enregistré le : 31 janv. 2025, 14:45
Prénom : Patrice
LOCALISATION : Beziers Herault
Centres d'intérêts : Modelisme HO et HOM ou HOe
Echelle pratiquée : H0
Âge : 65
Pays :
France
France
févr. 2026 12 17:28

Re: Un décodeur DCC, mais c'est très simple !

Message par France patrice_b

:bienv: :bienv:
Cordialement,

Patrice
Avatar du membre
France Bud_fr
Posteur fou
Posteur fou
Messages : 230
Enregistré le : 07 févr. 2026, 09:55
Prénom : Didier
LOCALISATION : Six Fours les Plages (83)
Centres d'intérêts : Les nouvelles technologie: La 3D, l'Arduino, l'IA, etc .... tout cela au service du modélisme, ferroviaire actuellement, après être passé par l'aéromodélisme, et le bateau.
Echelle pratiquée : H0
Pays :
France
France
févr. 2026 12 17:35

Re: Un décodeur DCC, mais c'est très simple !

Message par France Bud_fr

herwat a écrit : 12 févr. 2026, 16:00 :merciiii: :merciiii: :merciiii: Mais vous me mettez la pression, là
M'sieur, M'sieur, j'ai fini M'sieur .... :yess: :yess: :yess:

Espion trame.jpg
:mdr:

PS: Je viens de le monter comme Espion de Trame DCC, je ne savais pas à quoi ça allait me servir, maintenant je sais .....

:a_suivre:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
A la maison, il n'y a que la télévision qui me parle, et que mon ordinateur qui me répond. :super:
Avatar du membre
France Georges de Villette
2000 posts et +
2000 posts et +
Messages : 8712
Enregistré le : 09 mars 2021, 19:23
Prénom : Georges
LOCALISATION : Villette d'Anthon
Centres d'intérêts : J'ai participé au début de Mini World Lyon .
J'aime l'électronique , la mini mécanique .
Passionné par les nouvelles technologies , imprimantes 3D , Laser , CNC .
Echelle pratiquée : Aucune
Âge : 76
Pays :
France
France
févr. 2026 12 17:39

Re: Un décodeur DCC, mais c'est très simple !

Message par France Georges de Villette

.
:gratte: :gratte: :gratte: :gratte: :siffle: :siffle: :siffle: :siffle: :siffle:
.
Le travail est bien une maladie !!!
Puisqu'il y a une médecine du travail !!! Coluche .
Avatar du membre
France Lherve54
2000 posts et +
2000 posts et +
Messages : 2064
Enregistré le : 24 avr. 2021, 11:00
Prénom : Herve
LOCALISATION : ATHIENVILLE 54370
Centres d'intérêts : train US
Echelle pratiquée : H0
Âge : 63
Pays :
France
France
févr. 2026 12 17:47

Re: Un décodeur DCC, mais c'est très simple !

Message par France Lherve54

Bonjour


Je vais suivre tout cela , juste pour m'informer !!

Tu vas pouvoir en produire en série , après l'ascenseur ,le décodeur accessoires ,.....
Powered by NCE
Avatar du membre
France C2Vues-BricoTrain
2000 posts et +
2000 posts et +
Messages : 9310
Enregistré le : 08 mars 2024, 11:45
Prénom : Fernando
LOCALISATION : Clamart
Centres d'intérêts : Modélisme Ferroviaire - Échelles N et HO
Images IA
Echelle pratiquée : N
Âge : 74
Pays :
France
France
févr. 2026 12 17:58

Re: Un décodeur DCC, mais c'est très simple !

Message par France C2Vues-BricoTrain

:bienv: :bienv: :bienv: :bienv:

Hervé,

Si tu veux commander l'ouverture ou la fermeture en un éclair, et sans pression, mets autre chose que des boutons (pression) !
(Dicton de couturière :mdr3: )

:hhhaaaa: :hhhaaaa: :hhhaaaa: :hhhaaaa: :hhhaaaa: :hhhaaaa:
Pour me retrouver sur ma chaîne :
https://youtube.com/@c2vues-bricotrain? ... VpM6qhmP2u

Quand trop gentil, tu seras,
Dans le côté sombre, tu l'auras !

Yoda
Maître Jedi dans Star Wars
Avatar du membre
France Bud_fr
Posteur fou
Posteur fou
Messages : 230
Enregistré le : 07 févr. 2026, 09:55
Prénom : Didier
LOCALISATION : Six Fours les Plages (83)
Centres d'intérêts : Les nouvelles technologie: La 3D, l'Arduino, l'IA, etc .... tout cela au service du modélisme, ferroviaire actuellement, après être passé par l'aéromodélisme, et le bateau.
Echelle pratiquée : H0
Pays :
France
France
févr. 2026 12 18:51

Re: Un décodeur DCC, mais c'est très simple !

Message par France Bud_fr

:gratte: :gratte: :gratte: :gratte:

Oups !!!! J'ai un doute ...... Dans le schéma ci dessus ...
Décodeur DCC.png
Les résistances des Leds rouge ont un marquage de 3 bandes rouges, ce qui donne 2,2 Kohms, c'est pas beaucoup ça ????

Ce serait pas plutôt des 220 ohms qu'il faudrait ??? Rouge - rouge - marron

A suivre
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
A la maison, il n'y a que la télévision qui me parle, et que mon ordinateur qui me répond. :super:
Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 12 18:58

Re: Un décodeur DCC, mais c'est très simple !

Message par France herwat

:hhhaaaa: :hhhaaaa: :hhhaaaa:

Non, j'ai bien mis des 2.2K , ça m'évite d'être ébloui ! ! ! :hhhaaaa: :hhhaaaa: :hhhaaaa:
Pour les essais, l'éclairement est suffisant . Mais tu peux mettre des 1.5k ou même moins si tu veux .
Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 12 19:10

Re: Un décodeur DCC, mais c'est très simple !

Message par France herwat

Avec ce décodeur tout simple, on peut déjà faire des choses intéressantes .
Dans le programme, le club de Rouen a utilisé la fonction switch pour analyser les différentes adresses .
Pour essayer, je l'ai remplacé par une boucle "for" et ça marche très bien !
Dans le programme suivant, j'obtiens 4 interrupteurs indépendants ! :cooooool:

Code : Tout sélectionner

             /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              * * * * *                                                 * * * * *
              * * * * *             Décodeur d'accessoires              * * * * *
              * * * * *                                                 * * * * *
              * * * * *                 Vu sur le site :                * * * * *
              * * * * *       Seine Modèle Club Ferroviaire - SMCF      * * * * *
              * * * * *   https://www.modelisme-ferroviaire-rouen.fr/   * * * * *
              * * * * *                                                 * * * * *
              * * * * *           Commande de 4 interrupteurs           * * * * *
              * * * * *                    version ROCO                 * * * * *
              * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

// Utilisation de la librairie DCC Decoder pour lire les trames DCC
#include "DCC_Decoder.h"
#define DCC_INTERRUPT  0
// Adresse de base du Arduino-Decodeur
#define baseAdresse 100  

// Déclaration des éléments par rapport aux broches de l'Arduino
// La LED0  est connectée à la broche 6 et correspond à l'adresse DCC  100
// La LED1  est connectée à la broche 7 et correspond à l'adresse DCC  101
// La LED2  est connectée à la broche 8 et correspond à l'adresse DCC  102
// La LED3  est connectée à la broche 9 et correspond à l'adresse DCC  103
const int PinLed [4] = {6,7,8,9} ;

int Transmis = 0 ;
int A_Transmettre ;
int Transmission ;
boolean Chx ;
int i ; int y ;    // Variables d'incrémentation


  void setup()
    {
    Serial.begin(9600);
    // Broches des LEDs en mode "Sortie"
    for (i=0 ; i <= 3 ; i++){pinMode(PinLed [i], OUTPUT);
                             digitalWrite(PinLed [i], LOW); }
    digitalWrite(PinLed [0], HIGH);
  
    // Les 2 lignes suivantes permettent d'initialiser la librairie DCC Decoder
    DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
    DCC.SetupDecoder( 0x00, 0x00, DCC_INTERRUPT );  //  DCC_INTERRUPT
    }


  void loop() 
    {
    // Appel de la librairie DCC pour lire les valeurs
    DCC.loop();
    }
//******************************************************************
//                      Les Fonctions
//******************************************************************

  void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
     // Cette fonction est appelée par la librairie pour 
     // activer / désactiver au niveau de chaque adresse
    {
    address -= 1;
    address *= 4;
    address += 1;
    address += (data & 0x06) >> 1;
    address = address + 4;   // cette ligne devra être décommentée
                             //  si centrale RocoMouse et/ou z21

    boolean enable = (data & 0x01) ? 1 : 0;
    Serial.print(F(" Adresse DCC Claire : "));
    Serial.print(address);
    Serial.print(" Enable : ");
    Serial.print(enable);
    Serial.print(" Activate : ");
    Serial.println(activate);

  /* Ex: si l'adresse de base est 100 
     alors l'arduino réagit aux adresse 100, 101, 102,...
     Si l'adresse accessoire envoyée par la centrale
     correspond à l'une de notre programme
     Alors on récupère son état (activé/désactivé)
     et on exécute en conséquence les actions 
     Ici la gestion de l'alimentation de 4 LEDs. */

    Chx = false ;
    for (i=0 ; i <= 3 ; i++)
      {
      if( address == baseAdresse + i )
         {  A_Transmettre = i ; Chx = true ;
           if (enable) { digitalWrite(PinLed [i], HIGH); }
           else { digitalWrite(PinLed [i], LOW); }
         }
      }
    }
Et voilà ce que ça donne



Prochainement, j'essaierai la commande d'un servo . . .
:a_suivre:
Avatar du membre
France likiki
Site Admin
Site Admin
Messages : 16764
Enregistré le : 27 févr. 2021, 16:11
Prénom : Christian
LOCALISATION : Ile de France
Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
Echelle pratiquée : H0
Âge : 59
Pays :
France
France
févr. 2026 12 19:58

Re: Un décodeur DCC, mais c'est très simple !

Message par France likiki

:PetitPoucejpg:


:bienv: Hervé.
Si le Goëland se gratte le gland, il fera mauvais temps,
Si il se gratte le cul, il ne fera pas beau non plus.

Proverbe de là bas.

ImageImageImage

:tirechap:

.
Si vous souhaitez faire un don pour le forum , c'est ici.
Avatar du membre
France C2Vues-BricoTrain
2000 posts et +
2000 posts et +
Messages : 9310
Enregistré le : 08 mars 2024, 11:45
Prénom : Fernando
LOCALISATION : Clamart
Centres d'intérêts : Modélisme Ferroviaire - Échelles N et HO
Images IA
Echelle pratiquée : N
Âge : 74
Pays :
France
France
févr. 2026 12 20:02

Re: Un décodeur DCC, mais c'est très simple !

Message par France C2Vues-BricoTrain

:bienv: Hervé :bienv:
:PetitPoucejpg: :PetitPoucejpg: :PetitPoucejpg: :PetitPoucejpg:
Pour me retrouver sur ma chaîne :
https://youtube.com/@c2vues-bricotrain? ... VpM6qhmP2u

Quand trop gentil, tu seras,
Dans le côté sombre, tu l'auras !

Yoda
Maître Jedi dans Star Wars
Avatar du membre
France Bud_fr
Posteur fou
Posteur fou
Messages : 230
Enregistré le : 07 févr. 2026, 09:55
Prénom : Didier
LOCALISATION : Six Fours les Plages (83)
Centres d'intérêts : Les nouvelles technologie: La 3D, l'Arduino, l'IA, etc .... tout cela au service du modélisme, ferroviaire actuellement, après être passé par l'aéromodélisme, et le bateau.
Echelle pratiquée : H0
Pays :
France
France
févr. 2026 14 12:25

Re: Un décodeur DCC, mais c'est très simple !

Message par France Bud_fr

Hop !!!!!

Ça ne marche pas chez moi :3: :gratte: Image

Résumons:

J'ai l'interface d'espionnage de trames, qui fonctionne, Pin 2, qui reçoit des trame de ma z21 Start, avec "DCC_monitor".

J'ai rajouté 4 Leds qui sont branchés sur les Pin 6,7,8,9 de l'Arduino UNO. Les Leds fonctionnement, par exemple avec Blink.

J'ai téléversé tes 2 programmes que tu fournis, option Roco, l'un puis l'autre.

Je n'ai rien qui s'affiche dans "Monitor Serie" de l'IDE.

La z21 start est branché sur un banc d'essai, avec une' loco dessus, qui fonctionne, avec ma Multimaus.

Alors, normalement, si j'ai bien compris, si je passe en position "aiguille" sur la Multimaus, que je sélectionne l'adresse 100 comme aiguille, et j'actionne l'aiguille avec les boutons Droite/Gauche de la Multimaus, une Led (la Pin 6) devrait s'allumer/s'éteindre.

Il ne se passe rien ..... Qu'est que je fait mal ????

C'est quoi cette appli avec 4 boutons qu'on voit sur le téléphone ????

Est ce qu'il y a qql'un qui a réussi dans les suiveurs de ce sujet ????

:a_suivre:
A la maison, il n'y a que la télévision qui me parle, et que mon ordinateur qui me répond. :super:
Avatar du membre
France herwat
2000 posts et +
2000 posts et +
Messages : 6965
Enregistré le : 11 mars 2021, 16:14
Prénom : Hervé
LOCALISATION : Creuse
Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino
Echelle pratiquée : H0
Âge : 79
Pays :
France
France
févr. 2026 14 14:04

Re: Un décodeur DCC, mais c'est très simple !

Message par France herwat

Bonjour Didier,
Je n'ai pas fait d'essai avec la multimaus .
L'application que tu vois sur la vidéo est l'application de la z21 (ancienne version) .
Si ton montage fonctionne en espion, il n'y a aucune raison pour que ça ne fonctionne pas avec mes programmes . . . .

Je vais essayer avec la multimauss . Il doit y avoir un truc quelque part . . . .
Répondre

Retourner vers « Montages divers »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 1 invité