LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mercredi 26 juin 2019

8 visiteurs en ce moment

Bibliothèque DCCpp

Encore un DCC++ ? Mais à quoi ça sert ?

. Par : Thierry

Pourquoi une bibliothèque ? Nous sommes devant le cas typique d’un projet dont une bonne partie du code doit pouvoir être ré-utilisée dans d’autres projets. C’est le but d’une bibliothèque, et c’est ce que j’ai décidé de faire après avoir vu tout le monde ici s’en servir, et l’avoir moi-même utilisé dans au moins deux projets différents : Bibliothèque (...)

Retourner à l'article

Vous répondez à :

Bibliothèque DCCpp 31 décembre 2017 18:35, par BobyAndCo

Ma petite contribution à ce formidable travail. J’ai pu tester la bibliothèque de Thierry en mode TEXTCOMMAND, en Ethernet avec le LMD18200 et aussi le POLOLU MC33926 Motor shield.

 

Je n’ai rencontré aucun problème, que ce soit en pilotage sur la voie Main ou en programmation, sur la voie Prog avec l’une et l’autre des cartes moteur.

 

Il ne faut pas oublier de modifier le fichier DCCpp comme cela est indiqué dans l’article (lignes 310 et 312 à décommenter)

  1. /**Comment this line to avoid using and compiling Serial commands.*/
  2. #define USE_TEXTCOMMAND
  3. /**Comment this line to avoid using and compiling Ethernet shield using Wiznet 5100 chip (Arduino Shield v1).*/
  4. #define USE_ETHERNET_WIZNET_5100

 

mais vous serrez rapidement rappelé à l’ordre en cas d’oubli au moment où vous chercherez à téléverser le programme sur l’Arduino.

 

Pour cela, dans le menu Exemples de l’IDE d’Arduino, on choisit EthernetDCC. Si vous utilisez un LMD18200, vous n’aurez rien à modifier, sauf une petite erreur qui est juste dans l’exemple (pas dans l’article). Sur la voie Main, la broche pour le PWM est la 3 et non la 11 (la 11 étant celle de la voie Prog)

 

Voici le code modifié et complété :

 

  1. // Configuration for my LMD18200. See the page 'Configuration lines' in the documentation for other samples.
  2. DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  3. DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 11, A1);

En cas d’utilisation d’un Pololu, le code à ajouter est celui-ci :

 

  1. // Configuration for my POLOLU MC33926 Motor shield.
  2. DCCpp::beginMain(POLOLU_DIRECTION_MOTOR_CHANNEL_PIN_A, DCC_SIGNAL_PIN_MAIN, POLOLU_SIGNAL_ENABLE_PIN_MAIN, POLOLU_CURRENT_MONITOR_PIN_MAIN);
  3. DCCpp::beginProg(POLOLU_DIRECTION_MOTOR_CHANNEL_PIN_B, DCC_SIGNAL_PIN_PROG, POLOLU_SIGNAL_ENABLE_PIN_PROG, POLOLU_CURRENT_MONITOR_PIN_PROG);

 

Bravo encore.

 

Christophe

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

50 Messages

Rubrique Bibliothèques

La bibliothèque Servo

Bibliothèque SoftWare Serial

Bibliothèque Serial

Bibliothèque EEPROM

Bibliothèque Wire : I2C

Bibliothèque LCD

La bibliothèque ScheduleTable

Bibliothèque MemoryUsage

Bibliothèque EEPROMextent

La bibliothèque SlowMotionServo

Bibliothèque Commanders

Bibliothèque DCCpp

Bibliothèque DcDccNanoController

Bibliothèque Accessories (1)

Bibliothèque Accessories (2)

Un décodeur d’accessoires universel (1)

Un décodeur d’accessoires universel (2)

Un décodeur d’accessoires universel (3)

Bibliothèque LcdUi (1)

Bibliothèque LcdUi (2)

Les derniers articles

La bibliothèque SlowMotionServo


Jean-Luc

Bibliothèque DCCpp


Thierry

Bibliothèque DcDccNanoController


Thierry

Bibliothèque LcdUi (2)


Thierry

Bibliothèque LcdUi (1)


Thierry

Bibliothèque Accessories (2)


Thierry

Bibliothèque Accessories (1)


Thierry

Bibliothèque Commanders


Thierry

Bibliothèque MemoryUsage


Thierry

Bibliothèque Wire : I2C


Dominique, Guillaume

Les articles les plus lus

Bibliothèque Wire : I2C

Bibliothèque EEPROM

La bibliothèque Servo

Bibliothèque DCCpp

Bibliothèque DcDccNanoController

Bibliothèque LCD

Bibliothèque Commanders

Bibliothèque Serial

Bibliothèque EEPROMextent

Un décodeur d’accessoires universel (1)