Parlons Arduino > Le logiciel DCC++

DCC++ et pilotage d'aiguillage

(1/3) > >>

Dominique38:
Bonjour à tous,
Je viens de passer à DCC (avant j’utilisais CmdrArduino comme beaucoup), j’utilise plutôt une liaison bluetooth en écrivant des programmes android avec app inventor du MIT, même si la solution ethernet m’intéresse, tout cela marche bien pour les locos mais pas pour les aiguilles !

Je souhaite commander mes aiguilles ROCO équipées du décodeur ROCO 61196 et je n’y arrive pas :
- j’ai fait de nombreux essais, mais rien ne bouge, et je ne comprends pas la notion de SUBADDRESS ?
- je mets l’aiguille en mode programmation (en la manoeuvrant manuellement 5 fois), elle entre bien dans ce mode, je définis avec < T ID ADDRESS SUBADDRESS >, puis j’essaye de manoeuvrer avec < T ID THROW > et rien ne se passe.
Merci pour votre aide.
Bien cordialement

Dominique38

bobyAndCo:
Dominique,

Des précisions sur SUBADDRESS sont disponible dans le fichier SerialCommand.cpp ligne 70. Pour autant, il semble que tu as bien renseigné ce paramètre.



--- Code: --- case 'a':       // <a ADDRESS SUBADDRESS ACTIVATE>
      /*
            turns an accessory (stationary) decoder on or off

            ADDRESS:  the primary address of the decoder (0-511)
            SUBADDRESS: the subaddress of the decoder (0-3)
            ACTIVATE: 1=on (set), 0=off (clear)

            Note that many decoders and controllers combine the ADDRESS and SUBADDRESS into a single number, N,
            from  1 through a max of 2044, where

            N = (ADDRESS - 1) * 4 + SUBADDRESS + 1, for all ADDRESS>0

            OR

            ADDRESS = INT((N - 1) / 4) + 1
            SUBADDRESS = (N - 1) % 4
--- Fin du code ---

Y a t'il des réponses avec d'autres messages < T > par exemple ? En principe, ce message doit permettre de voir si l'aiguillage est bien crée et si c'est juste un problème de fonctionnement.

Le message < s > renvoi aussi des informations plus globales dont les aiguillages.

Dominique38:
Rebonjour
- merci pour les précisions sur subadress, je comprends mieux maintenant ...
- j'ai bien eu des réponses avec <T> qui m'indiquaient que l'aiguillage était créé, mais je n'ai regardé tout en détails donc je vais ré-essayer en fin de journée et voir tout cela de manière plus précise.

Et je posterais les résultats de mes essais bien sûr, concluants ou non.

Je précise que j'utilise une carte UNO avec shield motor arduino également

A suivre donc...

Dominique38:
Bonsoir,
j'ai fais les manips suivantes :
- j'ai vérifié que mon aiguillage Roco et son décodeur Roco 61196 fonctionnaient bien, avec le booster Roco et la MultiMaus : c'est bien le cas, avec l'adresse 1  ;D
- j'ai pour commencer testé la commande DCC++ directe, sans "définir" l'aiguillage : <a 1 0 0> et <a 1 0 1> : aucun effet (à noter que ADRESS 1 et SUBADRESS 0 donnent bien l'adresse 1 avec la formule de SerialCommand.cpp indiqué par bobyAndCo) ;
- j'ai "défini" mon aiguillage avec <T 1 1 0>, sur l'ID 1 donc, retour OK de DCC++
- j'ai vérifié avec <T> que mon aiguille était définie : OK !
- j'ai testé la commande directe <T 1 1> et <T 1 0> et rien ne se passe.

Bref : échec pour l'instant  :'( :'( :'(

Mes pistes de travail, pour demain :
- aller prendre l'air ;
- faire un programme automate (avec processing) pour tester des valeurs ADRESS et SUBADRESS différentes...

une question :
- j'ai fait tout cela sur la ligne principale : est-ce que cela peut marcher sur la ligne programmation ???

Sur ce, bonne nuit.

Dominique38

Dominique38:
Suite de l'histoire :
- j'ai fait mon automate et il n'a pas eu le temps de tester toutes les possibilités, l'aiguille avec le code 1 (programmé avec multimaus) c'est déclenchée avec ADRESS=0 et SUBADRESS=0, et j'ai regardé avec une aiguille avec le code 2 (multimaus toujours) qui s'est déclenchée avec ADRESS=0 et SUBADRESS=1.

avec uniquement ces 2 cas, la formule semble donc être : N = (ADDRESS) * 4 + SUBADDRESS + 1 mais il faudrait tester avec plus d'adresse décodeur bien sûr.

En tout cas cela marche et je vais donc continuer mes bricolages...
A bientôt

PS : donc cela marche bien en reprenant l'adresse du décodeur programmé avec la centrale ROCO, mais je n'ai pas vu comment "programmer" l'adresse d'un décodeur, comme le CV d'une locomotive : quelqu'un a une idée ?

dominique38

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique