Page 4 sur 8

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 15:50
par herwat
Pour mon banc d'essais, j'utilise un module SPROG piloté par DecoderPro de JMRI . ça fonctionne impeccable pour régler les décodeurs de loco, mais je viens de m'apercevoir qu'apparemment , il n'envoie pas de signal pour les aiguillages ou autres accessoires . :hurt4:
Ou alors, JMRI n'est pas configuré comme il faut . . . .

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 15:56
par Amigorl
Aie... Peut être depuis un logiciel de pilotage comme CDMrail ou Rocrail, le sprog y est reconnu.

....

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 17:24
par herwat
Je préfère déménager !
.
IMG_3363.jpg
.
Quel bazar ! Et tout ça pour savoir si une petite loupiote va s'allumer ! :hhhaaaa:

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 17:28
par ramasoft
C'est vrai que ça tourne vite à l'usine à gaz :hhhaaaa:

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 17:30
par likiki
Quand ont en arrive là, 1 litre d'essence et une allumette.


:mdr: :mdr: :mdr: :mdr: :mdr: :mdr:

Ok :jesors:

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 18:15
par herwat
Bon ! J'avance, mais vraiment tout doucement :
Le réseau est alimenté par une centrale ROCO que vous pouvez d'ailleurs voir sur la photo ci-dessus en bas, à gauche de l'écran . Elle ne date pas d'hier mais fonctionne très bien .
Résultat des courses :
L'installation étant terminée, j'ai re-chargé DCC monitor pour lire les messages et cette fois-ci quand j'envoie des ordres de mouvements d'aiguillage , ils sont parfaitement détectés ! :yess: :yess: :yess:

Donc je charge mon programme d'étude en prenant soin de décommenter la ligne spécifique à ROCO, et là : RIEN, sniff

Bon, ben y a encore du boulot . . .

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 20:29
par Amigorl
Ce n' est pas une usine à gaz, c'est un tuto décodage dcc avec tout l'art du Duino !

:lollol:

Peut-on obtenir le code pour y jeter œil ?

C'est sûrement une bricole.

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 20:50
par herwat
:merciiii: Rémy de t'occuper de mon triste sort ! :hhhaaaa:

Le programme est

Et l'original est sur le site du club de Rouen ici

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 21:19
par Amigorl
Suis pas sur mon ordi.

Si le code du site de Rouen est ok (je n'utilise pas Minabay exactement de la même manière)

Ajoute ça après boolean enable=....

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

(et Serial.begin(115200); dans setup())

Ça va te permettre de voir quelle adresse a été capturée, sur le moniteur série de l'Ide Arduino.

De plus mais je ne suis pas certain :

case (valeur calculée): est-ce valide ?
Normalement c'est case constante: sans parenthèse ?
La doc dit "case ne dois pas utiliser d'expression dynamique"
Alors case (adresseBase + 1): ..... Je ne sais pas si c'est ok....

Re: Automatisation de l' APT de Patrice .

Posté : 22 janv. 2026, 21:59
par herwat
Ok :merciiii:

J’essaierai ça demain

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 03:33
par Amigorl
J'ai donné ma langue au 🐱 :

Arduino, switch, case (define + 1): est une syntaxe correcte ?

Oui — à certaines conditions, c’est une syntaxe correcte 👍
En Arduino (C/C++), la règle clé est :

👉 les valeurs de case doivent être des expressions constantes connues à la compilation.

✅ Cas valide

Si ton define est une constante de compilation :

#define BASE 10

switch (x) {
case BASE + 1:
// OK
break;
}


✔️ Correct
Le préprocesseur remplace BASE par 10, donc le compilateur voit :

case 11:

Et case (BASE+1): ?

✔️ Correct parenthèses ou pas

Donc doute levé, pas de problème de syntaxe.

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 03:45
par Amigorl
Le 🐱 conseille vivement :

#define DCC_INTERRUPT 0 // INT0 = pin 2 sur Arduino Nano

Puis :

DCC.SetupDecoder(0x00, 0x00, DCC_INTERRUPT);

C'est à dire, passer le numéro d'interruption par une constante

Personnellement je l'utilise ainsi,

Un exemple :
dccduino.txt.zip
A essayer.....

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 04:55
par likiki
:mdr1: Lire cela a 5h du mat oblige a prendre un doliprane. :ouf

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 08:47
par Amigorl
Effectivement le risque était de noyer tout le monde dans le doute et les dicotylédones............. (Double mi-graines).

Toutefois, c'est pour la bonne cause, pour trouver la solution.

:a_suivre: les évènements et résultats de tests.

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 09:31
par herwat
likiki a écrit : 23 janv. 2026, 04:55 :mdr1: Lire cela a 5h du mat oblige a prendre un doliprane. :ouf
Oh ! la p'tite nature ! :hhhaaaa: :hhhaaaa: :hhhaaaa:

Bon, c'est vrai qu'arriver à se concentrer de bon matin peut poser problème ! ! ! :hhhaaaa: :hhhaaaa: :hhhaaaa:

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 09:33
par herwat
Amigorl a écrit : 23 janv. 2026, 03:45 Le 🐱 conseille vivement :

#define DCC_INTERRUPT 0 // INT0 = pin 2 sur Arduino Nano

Puis :

DCC.SetupDecoder(0x00, 0x00, DCC_INTERRUPT);

C'est à dire, passer le numéro d'interruption par une constante

Personnellement je l'utilise ainsi,
Tu as sans doute raison, je vais faire la modif .

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 10:00
par herwat
Bon ! résultat des courses :

Il est vrai que le moniteur série est d'un grand secours pour débuguer ! ! !

passer le numéro d'interruption par une constante ça n'a rien changé, mais je l'ai fait quand même . Autant prendre les bonnes habitudes ! :cooooool:

Par contre : address = address - 4; // cette ligne devra être décommentée si centrale RocoMouse et/ou z21 semble être une erreur !
En tout cas chez moi il faut mettre : address = address + 4;

:yess: :yess: :yess: ET TOUT FONCTIONNE ! ! ! :yess: :yess: :yess:

:merciiii: Rémy pour ton aide

Je vais pouvoir continuer . :a_suivre:

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 10:04
par patrice_b
:bienv: :bienv: les gars.

Oui le système Rocco décale de 4 l'adressage, et c'est une erreur dans le programme du club de Rouen de mettre -4, bien vu Hervé !!!
:hurt4: :siffle:

On est passé a coté !!

:bienv:

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 10:49
par ramasoft
En règle générale, en programmation, il faut toujours passer les valeurs soit dans une constante soit dans une variable et en respectant le type (8-16-32 bits, signé ou pas) que la fonction attend.
Passer les valeurs "en dur", ça marche parfois ... et parfois pas car le compilateur est obligé de créer une variable et selon la valeur ajoute parfois un octet de poids fort inapproprié qui change le signe de la valeur ou pire, fait une complémentation.
Donc c'est une bonne habitude à adopter car les bugs générés sont difficiles à débusquer à cause d'un comportement aléatoire du logiciel.

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 11:04
par herwat
ramasoft a écrit : 23 janv. 2026, 10:49 En règle générale, en programmation, il faut toujours passer les valeurs soit dans une constante soit dans une variable et en respectant le type (8-16-32 bits, signé ou pas) que la fonction attend.
Passer les valeurs "en dur", ça marche parfois ... et parfois pas car le compilateur est obligé de créer une variable et selon la valeur ajoute parfois un octet de poids fort inapproprié qui change le signe de la valeur ou pire, fait une complémentation.
Donc c'est une bonne habitude à adopter car les bugs générés sont difficiles à débusquer à cause d'un comportement aléatoire du logiciel.
:cooooool: :cooooool: :cooooool: :cooooool:

Re: Automatisation de l' APT de Patrice .

Posté : 23 janv. 2026, 11:47
par Amigorl
Hé bien tant mieux pour ces bonnes nouvelles !

:PetitPoucejpg:

Re: Automatisation de l' APT de Patrice .

Posté : 24 janv. 2026, 17:36
par herwat
................................. ENCORE UN MYSTÈRE ! ! ! .......................

Tout fonctionne parfaitement avec le montage équipé de l'arduino UNO . :yess:

Mais si je l'équipe d'un arduino NANO , ça ne fonctionne plus ! ! ! ! :hurt4: :hurt4: :hurt4: :hurt4:
là, je ne comprend pas . . . .

Re: Automatisation de l' APT de Patrice .

Posté : 24 janv. 2026, 17:42
par likiki
Je suppose que tu a choisis la bonne borne pour l'interruption ?

Re: Automatisation de l' APT de Patrice .

Posté : 24 janv. 2026, 17:46
par C2Vues-BricoTrain
herwat a écrit : 24 janv. 2026, 17:36 ................................. ENCORE UN MYSTÈRE ! ! ! .......................

Tout fonctionne parfaitement avec le montage équipé de l'arduino UNO . :yess:

Mais si je l'équipe d'un arduino NANO , ça ne fonctionne plus ! ! ! ! :hurt4: :hurt4: :hurt4: :hurt4:
là, je ne comprend pas . . . .
Bonjour Hervé,
Le problème ne viendrait-il pas de la taille de ton programme qui dépasserait celle possible sur la Nano ?

Sur la mémoire flash de 32 Ko, le chargeur au démarrage de la Uno prend 0,5 Ko, celui de la Nano prend 1,5 Ko.

Re: Automatisation de l' APT de Patrice .

Posté : 24 janv. 2026, 17:57
par ramasoft
Je crois que la nano n'a pas les mêmes broches pour les interruptions.
Il doit y avoir une différence dans la gestion des broches entre les deux cartes. Regarde de ce côté là.