Auteur Sujet: Un Arduino par canton  (Lu 21354 fois)

simontpellier

  • Jr. Member
  • **
  • Messages: 82
    • Voir le profil
Re : Un Arduino par canton
« Réponse #45 le: avril 18, 2020, 03:32:14 pm »
Bonjour Jean-Luc,

Désolé de vous solliciter : j'ai commencé à prendre en main le croquis "AlimentationTraction" (très formateur !) que je vais expérimenter par tranches mais je voulais vous signaler une difficulté.

Pour commencer j'ai trouvé votre librairie : https://framagit.org/locoduino.org/CommandInterpreter
mais qui étrangement provoque cette erreur :
"class CommandInterpreter' has no member named 'readUnsignedLong'; did you mean 'readUnsignedInt'?" ;

Par similitude avec l'existant, j'ai donc tenté d'ajouter dans le CommandInterpreter.h cette ligne :
bool readUnsignedLong(unsigned long& result);et dans le .cpp la fonction bool CommandInterpreter::readUnsignedLong(unsigned long& result)
{
  char **endChar;
  char *arg = mBuffer.getArg();
  if (! isANumber(arg)) return false;
  long longResult = strtol(arg, endChar, 0);
  if (**endChar != '\0' || longResult < 0 || longResult > 65535) return false;
  else {
    result = (unsigned long)longResult;
    return true;
  }
}

Ceci m'a permis de compiler (mais pas d'affirmer que le code ainsi bricolé fonctionne...)
J'espère ne pas être hors du sujet de ce fil, dans ce cas j'effacerai ce message, mais que mon retour d'expérience puisse servir.

Bien cordialement
Philippe








Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1609
    • Voir le profil
Re : Un Arduino par canton
« Réponse #46 le: avril 18, 2020, 05:53:34 pm »
Bonjour Philippe,

Effectivement il y avait du code non comité sur mon disque. C'est poussé sur framasoft

Bien cordialement
Cordialement

ramboman

  • Newbie
  • *
  • Messages: 24
    • Voir le profil
Re : Un Arduino par canton
« Réponse #47 le: avril 08, 2021, 11:16:54 am »
Bonjour à tous
Je crains d'avoir raté le train...
Je suis en LGB analogique, j"ai évalué Driving Railway... j'ai tenté Chenevez il y a 50 ans...
Bref... un Arduino par canton et un réseau Can me semble être la solution... mais sans créer une usine à gaz !
Càd pas de PWM... une tension continue "propre" par canton : la pièce manquante.
Pour le reste, l'Arduino du canton peut tout faire
Quelqu'un a-t'il une suggestion ?
Cordialement
Roland

PS: sinon c'est l'arbre à relais et de bons gros transfo LGB
Pour l'nstant c'est un switch par canton "à l'américaine"

msport

  • Hero Member
  • *****
  • Messages: 1295
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Un Arduino par canton
« Réponse #48 le: avril 08, 2021, 12:33:17 pm »
Ne connaissant pas la contrainte sur le PWM, on peut juste suggérer de lisser ce PWM avec une constante de temps bien supérieure aux 550 Hz (si c'est celle utilisée), pour obtenir une tension continue "propre" et piloter avec celle-ci une alimentation programmable linéaire.
Cordialement

Pierre34

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Un Arduino par canton
« Réponse #49 le: avril 29, 2021, 02:19:40 pm »
Bonjour Jean Luc

J'essaie d'utiliser la bibliothèque SyncPWM. Sur les cartes cantons esclaves arduino nano j'ai inclus les deux lignes
#include <SyncPWM.h>
SyncPWM pwmsynchro;

et ces deux là dans le setup
  pwmsynchro.begin(6); // Start a synchronized PWM with sync on pin 6           
  pwmsynchro.analogWrite(30);

à la compilation j'ai ce message d'erreur:

Arduino : 1.8.13 (Mac OS X), Carte : "Arduino Nano, ATmega328P (Old Bootloader)"

In file included from /Users/Pierre/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/io.h:99:0,
                 from /Users/Pierre/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/avr/include/avr/pgmspace.h:90,
                 from /Users/Pierre/Library/Arduino15/packages/arduino/hardware/avr/1.8.3/cores/arduino/Arduino.h:28,
                 from /Users/Pierre/Documents/Arduino/libraries/SyncPWM-master/SyncPWM.h:24,
                 from /Users/Pierre/Documents/Arduino/libraries/SyncPWM-master/SyncPWM.cpp:24:
/Users/Pierre/Documents/Arduino/libraries/SyncPWM-master/SyncPWM.cpp:123:29: error: stray '$' in program
         TIMSK2 = _BV(OCIE2A=$);
                             ^
/Users/Pierre/Documents/Arduino/libraries/SyncPWM-master/SyncPWM.cpp: In member function 'void SyncPWM::begin(byte)':
/Users/Pierre/Documents/Arduino/libraries/SyncPWM-master/SyncPWM.cpp:123:18: error: expected primary-expression before ')' token
         TIMSK2 = _BV(OCIE2A=$);
                  ^
exit status 1
Erreur de compilation pour la carte Arduino Nano

Et là j'avoue que cela dépasse mes compétences.

Ai je oublié d'inclure une bibliothèque?
Dans la bibliothèque avr je n'ai pas de io.h et dans pgmspace.h il n'y a pas de ligne 99 cela s'arrête à la ligne 44

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1609
    • Voir le profil
Re : Un Arduino par canton
« Réponse #50 le: avril 29, 2021, 02:28:31 pm »
Bonjour Pierre

Sans doute une faute de frappe de ma part. Je venais de tester avec l'ATMega32u4 et je suis passé à côté.

Retirez le =$ ligne 123 de manière à ce que vous ayez :

TIMSK2 = _BV(OCIE2A);

Dites moi si c'est ok;
Cordialement

Pierre34

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Un Arduino par canton
« Réponse #51 le: avril 30, 2021, 01:40:39 am »
Merci pour cette réponse rapide.

J'ai fait la modification indiquée et cela compile parfaitement et sur le maitre et sur l'esclave.

Parfait et bravo.

Cordialement

Pierre