Bonsoir,
Un excellent moment de partage modèlistique avec une brillante démonstration de CDM-rail. J'ai hâte de voir le réseau achevé!
Merci à Alain pour son programme testeur de Dcc que je compte bien faire fonctionner au plus tôt.
Jean-Pierre,
Pourrais tu expliciter un peu plus la remise a zéro que Lenz n'effectue jamais (Je dois refaire un shield avant de venir te voir!) ?
J'utilise la bibliothèque
DCC_Decoder et je pense que le soucis est dans ce sous programme:
void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data) {
// Convert Dcc address to human comprehensible (numérotation Lenz / décalage de 4 pour Roco)
address -= 1;
address *= 4;
address += 1;
address += (data & 0x06) >> 1;
boolean enable = (data & 0x01) ? 1 : 0;
int msg=data;
String Msg;
if (LastMsg != msg) {
LastMsg = msg;
DccAction = millis();
switch (Mode) {
case 0: // Mode de fonctionnement normal une fois l'adresse du décodeur configurée et sauvegardée en Eeprom.
for(int i=0; i<maxfunctions; i++) {
if( address == gAddresses[i].address ) {
if (i==0) {
previousMillis[0] = millis();
}
if( enable ) {
gAddresses[i].output = 1;
} else {
gAddresses[i].output = 0;
}
}
}
break;
case 1: // Affichage de l'adresse pour configurer le décodeur et la sauvegarder en Eeprom
Msg = "Dcc Detected : ";
Msg += String(address);
Serial.println(Msg);
Msg = Cmd_DccAdress;
Msg += String(address);
Msg += " pour sauvegarder !";
Serial.println(Msg);
break;
}
}
}
Amicalement,
Xavier