1
Vos projets / Re : TCO arduino Xpressnet
« le: juin 06, 2017, 07:37:55 pm »
Bonjour,
chose promise chose due.
voici comment je me suis débrouillé pour trouver ma solution.
Postula de départ : commander un aiguillage commandé par un décodeur roco 61196 depuis un TCO xpressnet monté sur arduino.
je suis donc parti de la solution établie à partir de différents travaux ( NZIN, UAICF, SAM95 ).
malheureusement cela ne fonctionnait pas chez moi.
hier soir j'ai donc utilisé un arduino uno pour monter un sniffer DCC.
cela m'a donc permis de voir le résultat suivant:
Vous voyez là comment il manque des choses entre la multimaus et le TCO... il manque une ligne à chaque fois.
j'ai donc tenté de changer les adresses de décodeur dans tous les sens, mais rien n'y faisait.
je me suis dit: "il y a peut être une mise à jour de la librairie XpressNet pour arduino.." et c'est le cas.
je suis donc passé de la version 1.8 à la version 1.9.
et là qu'elle n'est pas ma surprise dans le sniffeur...
sans rien changer au code de mon TCO, voici le resultat:
Tiens donc, je passe d'un accessoire en adresse 23 dans le code à une adresse 7 sur les rails.... pas cool.
voila donc une modification à faire.
à taton, j'ai donc trouvé que l'adresse à mettre dans le code est 99 pour mon décodeur d'aiguillage roco61193 .
donc 99 dans le code TCO = 27 dans le multimauss = 23 dans le sniffer DCC.
"clac" .. ca marche dans un sens, mais pas dans l'autre.
selon comment est positinné l'aiguillage avec la multimaus, le TCO opère, mais l'inverse n'est pas vrai.
je note que les commandes passées ne sont pas les même lors d'une mise en action de l'aiguillage avec la multimauss.
10000110 11111101
10000110 11110101
et
10000110 11111100
10000110 11110100
en simplifiant :
1101
0101
et
1100
0100
le bit de poids 8 semble indiquer l'activation.
le bit de poids 1 semble indiquer le sens de l'aiguille.
c'est peut etre faux , mais c'est mon analyse. ^^
partant de ce principe, j'en conclue que la commande qui vient du TCO est incomplete.
j'ai donc modifié le code que j'utilise ( UAICF ) de la façon suivante :
"clac", "clac"..... alléluia
CA MARCHE !!!!!!!
voici le résultat du sniffeur DCC
reste à voir si mes indications seront expliquées plus dans le detail par les spécialistes.
j’espère avoir été suffisamment clair dans mes explications.
à bientôt, Jérôme.
chose promise chose due.
voici comment je me suis débrouillé pour trouver ma solution.
Postula de départ : commander un aiguillage commandé par un décodeur roco 61196 depuis un TCO xpressnet monté sur arduino.
je suis donc parti de la solution établie à partir de différents travaux ( NZIN, UAICF, SAM95 ).
malheureusement cela ne fonctionnait pas chez moi.
hier soir j'ai donc utilisé un arduino uno pour monter un sniffer DCC.
cela m'a donc permis de voir le résultat suivant:
Citer
depuis la multimaus => droit
Acc 23 6:2 1 On 10000110 11111101
Acc 23 6:2 0 On 10000110 11110101
-
depuis la multimaus => dévié
Acc 23 6:2 1 Off 10000110 11111100
Acc 23 6:2 0 Off 10000110 11110100
-
depuis le TCO => position A de l'interrupteur
Acc 23 6:2 0 On 10000110 11110101
-
depuis le TCO => position B de l'interrupteur
Acc 23 6:2 0 Off 10000110 11110100
Vous voyez là comment il manque des choses entre la multimaus et le TCO... il manque une ligne à chaque fois.
j'ai donc tenté de changer les adresses de décodeur dans tous les sens, mais rien n'y faisait.
je me suis dit: "il y a peut être une mise à jour de la librairie XpressNet pour arduino.." et c'est le cas.
je suis donc passé de la version 1.8 à la version 1.9.
et là qu'elle n'est pas ma surprise dans le sniffeur...
sans rien changer au code de mon TCO, voici le resultat:
Citer
depuis la multimaus => droit
Acc 23 6:2 1 On 10000110 11111101
Acc 23 6:2 0 On 10000110 11110101
-
depuis la multimaus => dévié
Acc 23 6:2 1 Off 10000110 11111100
Acc 23 6:2 0 Off 10000110 11110100
-
depuis le TCO => position A de l'interrupteur
Acc 7 6:2 0 On 10000110 11110101
-
depuis le TCO => position B de l'interrupteur
Acc 7 6:2 0 Off 10000110 11110100
Tiens donc, je passe d'un accessoire en adresse 23 dans le code à une adresse 7 sur les rails.... pas cool.
voila donc une modification à faire.
à taton, j'ai donc trouvé que l'adresse à mettre dans le code est 99 pour mon décodeur d'aiguillage roco61193 .
donc 99 dans le code TCO = 27 dans le multimauss = 23 dans le sniffer DCC.
"clac" .. ca marche dans un sens, mais pas dans l'autre.
selon comment est positinné l'aiguillage avec la multimaus, le TCO opère, mais l'inverse n'est pas vrai.
je note que les commandes passées ne sont pas les même lors d'une mise en action de l'aiguillage avec la multimauss.
10000110 11111101
10000110 11110101
et
10000110 11111100
10000110 11110100
en simplifiant :
1101
0101
et
1100
0100
le bit de poids 8 semble indiquer l'activation.
le bit de poids 1 semble indiquer le sens de l'aiguille.
c'est peut etre faux , mais c'est mon analyse. ^^
partant de ce principe, j'en conclue que la commande qui vient du TCO est incomplete.
j'ai donc modifié le code que j'utilise ( UAICF ) de la façon suivante :
Citer
// --- Commande pour Boutons à levier --------------------------------------------
for (int i = NbrePoussoirs*2 +1; i < NbrePoussoirs*2 + NbreLevier +1; i++)
{
if (BtEtat != BtEtatAncien)
{
Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
Serial.print(" (Arduino "); Serial.print(Bt); Serial.print(" Adresse : ");Serial.print( Aig, BtEtat );
BtEtatAncien = BtEtat ;
XpressNet.setTrntPos (0x0, Aig-1, BtEtat-8 ); // --- Ajout pour roco61196 + activation du bit de poids 8
delay (10); // --- Ajout pour roco61196
XpressNet.setTrntPos (0x0, Aig-1, BtEtat );
delay (10);
Serial.print("Aiguillage ayant l'adresse DCC "); Serial.print(Aig);
Serial.print(" (Arduino "); Serial.print(Bt); Serial.print(" Adresse : ");Serial.print( Aig, BtEtat );
}
}
"clac", "clac"..... alléluia
CA MARCHE !!!!!!!
voici le résultat du sniffeur DCC
Citer
depuis la multimaus => déviévoila qui est plutot sympa après plus d'un an de recherche... ^^
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 Off 10000110 11111100
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 Off 10000110 11110100
depuis la multimaus => droit
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 On 10000110 11111101
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 On 10000110 11110101
-
depuis le TCO position B => dévié
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 Off 10000110 11111100
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 Off 10000110 11110100
depuis le TCO position A => droit
Accessoire : 23 Adresse : 6:Port : 2 Etat : 1 On 10000110 11111101
Accessoire : 23 Adresse : 6:Port : 2 Etat : 0 On 10000110 11110101
reste à voir si mes indications seront expliquées plus dans le detail par les spécialistes.
j’espère avoir été suffisamment clair dans mes explications.
à bientôt, Jérôme.