Parlons Arduino > JMRI et Arduino

Pas de communication avec décodeur

<< < (2/10) > >>

Jeje_12_34:
Il ne faut pas shunter ni enlever le max471, c'est lui qui permet la communication avec les décodeurs :)
 
Il faut le tester (plusieurs sujets traitent de cette problématique sur le forum) et le remplacer par un autre composant s'iol est foireux . La aussi,  tu as quelques discussions sur ce sujet .

JMRI t'indique qu'il ne reconnait pas tes locos. C'est que le max471 ne fait pas son travail et/ou que le sketch est mal configuré.

Si  tu veux utiliser la bibliothèque DCCpp, il ne faut plus utiliser DCC++ .
Le sketch devient tres court.

Je te montre mon sketch en connexion USB mais que je n'ai utilisé que pour le test  (enfin, il fonctionnait il y a quelques mois, mais je ne peux plus le tester, tout est démonté chez moi)


--- Code: ---/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Serial Controller sample>
*************************************************************/

#include "DCCpp.h"

#ifndef USE_TEXTCOMMAND
#error To be able to compile this sample,the line #define USE_TEXTCOMMAND must be uncommented in DCCpp.h
#endif

void setup()
{
Serial.begin(115200);
 Serial.println("le setup est lancé");

DCCpp::begin();
  Serial.println(" DCCPP est lancé");
 
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else
 

  DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 11, A0);
#endif
}

void loop()
{
DCCpp::loop();
}
--- Fin du code ---

Par contre, il FAUT modifier la bibliothèque DCCpp pour l'adapter à ta configuration.
Cela se fait par une simple éditeur de texte.
le DCCpp que tu as téléchargé ne peut pas fonctionner avec ta config si te ne le personnalises pas.
Tout cela est tres bien renseigné par l'auteur :)
Je ne vais pas pouvoir t'aider plus, je ne me souviens plus des modifs a faire. Il me semble que cela se joue au niveau des #define au tout début

Et je te montre aussi le sketch de ma configuration qui est la même que la tienne, mais avec un  shield ethernet (V2, ;) ) en plus.


--- Code: ---/*************************************************************
project: <Dc/Dcc Controller>
author: <Thierry PARIS>
description: <Dcc Ethernet Controller sample>
*************************************************************/

#include "DCCpp.h"

#if !defined(USE_TEXTCOMMAND) || !defined(USE_ETHERNET)
#error To be able to compile this sample,the lines #define USE_TEXTCOMMAND and #define USE_ETHERNET must be uncommented in DCCpp.h
#endif

// the media access control (ethernet hardware) address for the shield:
uint8_t mac[] = {0xBE, 0xEF, 0xBE, 0xEF, 0xBE, 0xEF };
//the IP address for the shield:
uint8_t ip[] = { 192, 168, 0, 200 };

EthernetServer DCCPP_INTERFACE(2560);                  // Create and instance of an EthernetServer

void setup()
{
Serial.begin(115200);
 
  DCCpp::begin();
 
  // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
#if defined(ARDUINO_ARCH_ESP32)
  DCCpp::beginMain(UNDEFINED_PIN, 33, 32, 36);
#else
DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 11, A0);
#endif
  DCCpp::beginEthernet(mac, ip, EthernetProtocol::TCP);


}
void loop()
{
DCCpp::loop();
 
}
--- Fin du code ---

Tu vois, ce ne sont que quelques lignes. C'est la bibliothèque  appelée au tout début du sketch qui fait tout.  :)

msport:
Bonsoir,

vérifications à faire :

Avec un voltmètre en alternatif la tension carrée doit être présente sur les deux voies.

En connexion USB (celle qui a permis la programmation de l'Arduino) et avec la loco sur la voie de programmation, envoyer <R 8 123 123> au serial monitor (vitesse et port adhoc).
Cette séquence lit le CV8 qui contient le code constructeur.
La réponse est par exemple <r 123 123 99>. En cas d'anomalie la réponse est <r 123 123 -1>
C'est l'occasion de vérifier que la loco tressaute et donc que la liaison électrique jusqu'au moteur de la loco est bonne (voie et roues propres).
Le -1 c'est quand la réponse de la loco n'a pas été comprise. (problème de MAX471 ou connexion au A1 défectueuse)
avec <R 1 123 123>, on aurait l'adresse de le loco.

Si la loco ne tressaute pas, c'est la centrale qu'il faut vérifier : Je n'ai pas compris si les trains roulaient ?

Si les trains roulent , ce sera la configuration JMRI qu'il faudra vérifier.

En attendant, envoyer <t 1 03 20 1> au serial monitor, ce qui fait partir la loco adresse 03 en avant à la vitesse 20 sur la voie principale. Après mise sous tension avec <1>
Voir https://github.com/DccPlusPlus/BaseStation/wiki/Commands-for-DCCpp-BaseStation

Si la loco tressaute, remplacer le MAX471 par un module à INA169 et sa résistance de 0.1 ohm comme présenté dans le fil :
https://forum.locoduino.org/index.php?topic=843.msg13879#msg13879
Ce que je n'ai pas testé, c'est la modification pour utilisation avec des courants plus importants.

Ce que j'ai testé , c'est la BaseStation standard (DCCpp_UNO.ino) avec INA169 qui n'a pas besoin d'être personnalisée pour faire fonctionner ce montage avec un UNO et le module à L9110. (# Mega) : DCC++ BASE STATION COPYRIGHT (c) 2013-2016 Gregg E. Berman
Fonctionne pour les voies principale et de programmation.
https://github.com/DccPlusPlus

Attention les décodeurs pour le N peuvent ne pas apprécier quand la centrale est alimentée en 18V. (On retrouve ~18V en signal carré sur les voies). Et certains décodeurs HO (Laisdcc) ne sont spécifiés que pour 15V.

JLuc:
Bonjour Jéjé

Désolé, je ne suis pas assez calé en programmation pour pouvoir te suivre.

Bonjour MSPORT

Je suis reparti de zéro en retéléchargeant DCCpp et la bibliothèque. J'ai reconfiguré comme dans l'article.
J'ai suivi tes essais. Rien ne fonctionne.

Je vais commander un ACHS-7122 de chez Polulu

A suivre

Dominique:
Préférez l'INA 169  :D

Dominique:
Si on est certain de ne pas faire de court-circuit, on peut se passer du Max471 en attendant l'arrivée de l'INA 169 : cela permet de tester tout le reste (sauf la programmation ni la lecture des CVs)

Navigation

[0] Index des messages

[#] Page suivante

[*] Page précédente

Utiliser la version classique