Bonsoir à tous,
J’ai fait une version des décodeurs S88 pour Arduino Nano en plus du Uno initialement.
Le Nano ne dispose que de 15 broches disponibles pour les détecteurs contre 16 par exemple pour un Uno mais il est petit et économique.
La détection du type de carte se fait automatiquement quand vous téléchargez le programme sur la carte
#if defined(ARDUINO_AVR_NANO)
const byte sensorInPin[ ] = {4, 5, 6, 7, 8 ,9 ,10, 11, 12, 14, 15, 16, 17, 18, 19, 13 };
#elif defined(ARDUINO_AVR_UNO)
const byte sensorInPin[ ] = {4, 5, 6, 7, 8 ,9 ,10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
#endif
Le code complet est ici sur Github
Voici ce que donne le montage en prototype
On utilise un « level converter » car les sortie de l’Arduino sont en 5v et les entrées de l’ESP ne supportent pas cette tension.
Le converter réalise très simplement cette conversion des tensions de signaux. On en trouve chez Ali à 30 cts d’€ :
Pour la passerelle sur un ESP32, j’ai aussi publié le code sur Github :
J’ai fait le choix d’avoir un autre ESP pour la rétro signalisation S88 pour que les tâches soient bien distinctes. De ce fait, l’ESP offre de nombreuses broches disponible qui permettent d’envisager de relier plusieurs bus S88 comme c’est par exemple le cas sur un Link s88.
Dans Rocrail, les réglages sont les suivants où l’on voit maintenant les deux passerelles, une avec l’IP 192.168.1.207 qui fait le lien avec la MS2+Gleisbox et l’autre avec l’adresse IP 192.168.1.208 pour le S88. Les deux utilisent bien sur le protocole Marklin qui chez Rocrail porte le nom de mbus.
Christophe