Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Bochets34

Pages: [1] 2
1
Bonjour,

super tuto comme on aimerait en voir encore plus, bravo :)

j’ai reçu un Arduino UNO (mon 4ème) et 2 afficheurs OLED pour la fete des pères…
en effet mon fils était avec moi a Dreux lors de l’expo de novembre 2021 et on avait vu ce montage en demo sur un stand, qui m’avait plu :)

j’avais oublié mais lui avait gardé ca comme idée cadeau : sympa

mon fils n’étant pas electronicien il a commandé des afficheurs OLED un peu différents (AZDelivery) , notamment le chipset qui est un SH1106 (au lieu du SSD1306 du montage).
Deux soucis : une seule ligne s’affichait et pas de réglage de l’adresse…

1er souci résolu avec la bibliothèque OLED SSD1306 - SH1106 de Fabio Durigon
2eme souci en ajoutant un Mux TCA9548A, qui dédouble en plusieurs bus I2C

Cela fonctionne nickel et m’a donné des idées pour ajouter d’autres afficheurs, en gare ou pas !

Le source requiert peu de modifications, voici le code modifié:
/*********************************************************************
  Programme de gestion d'un ecran monochrome OLEDs sur une base SSD1306 drivers
 **** adapté pour => SH1106
  pour l'affichage de la gare d'Aurillac.

*********************************************************************/
// Ce qui suit sert a initialiser le compilateur et à definir les applications a utiliser
#include <avr/pgmspace.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_SH1106.h> // edit 2022
#define OLED_RESET 4
// ajout OC juin 2022 => MUX I2C
void TCA9548A(uint8_t bus)
{
  Wire.beginTransmission(0x70);  // TCA9548A address is 0x70
  Wire.write(1 << bus);          // send byte to select bus
  Wire.endTransmission();
}
// creation de deux afficheurs
Adafruit_SH1106 display1(OLED_RESET);// edit 2022 appel biblio différent
Adafruit_SH1106 display2(OLED_RESET);

// génération des tables de variables (c'est ici que vous devrez modifier vos écrans
// tables des départs
const char depart_0[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         3";
const char depart_1[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         305h54 CLERMONT FR   2";
const char depart_2[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1";
const char depart_3[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2";
const char depart_4[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2O8h46 TOULOUSE      1";
const char depart_5[]PROGMEM = "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   3";


const char depart_6[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2";
const char depart_7[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1";
const char depart_8[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   3";
const char depart_9[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   2";
const char depart_10[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   21Oh49 BRIVE         3";
const char depart_11[]PROGMEM = "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  5";


const char depart_12[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   2";
const char depart_13[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         3";
const char depart_14[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  5";
const char depart_15[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      1";
const char depart_16[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      113h28 NEUSSARGUES   3";
const char depart_17[]PROGMEM = "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   2";


const char depart_18[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      1";
const char depart_19[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   3";
const char depart_20[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   2";
const char depart_21[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      1";
const char depart_22[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      117h1O BRIVE         3";
const char depart_23[]PROGMEM = "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   2";


const char depart_24[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      1";
const char depart_25[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         3";
const char depart_26[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   2";
const char depart_27[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        3";
const char depart_28[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        319h18 NEUSSARGUES   2";
const char depart_29[]PROGMEM = "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        3";


const char depart_30[]PROGMEM = "HEURE    DEPART     V---------------------18h32 FIGEAC        3";
const char depart_31[]PROGMEM = "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   2";
const char depart_32[]PROGMEM = "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        3";
const char depart_33[]PROGMEM = "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        321h46 BRIVE         1";


// Initialisation de la table (attention il doit y avoir le même nombre de départ que dans les lignes au-dessus en faisant bien attention à la syntaxe)
const char*const depart_table[]PROGMEM = {depart_0, depart_1, depart_2, depart_3, depart_4, depart_5, depart_6, depart_7, depart_8, depart_9, depart_10, depart_11, depart_12\
                                          , depart_13, depart_14, depart_15, depart_16, depart_17, depart_18, depart_19, depart_20, depart_21, depart_22, depart_23, depart_24, depart_25, depart_26, depart_27, depart_28\
                                          , depart_29, depart_30, depart_31, depart_32, depart_33
                                         };


// table des arrivées
const char arrivee_0[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2";
const char arrivee_1[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5";
const char arrivee_2[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3";
const char arrivee_3[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2";
const char arrivee_4[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2O8h23 CLERMONT FR   1";
const char arrivee_5[]PROGMEM = "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        3";


const char arrivee_6[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2";
const char arrivee_7[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1";
const char arrivee_8[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        3";
const char arrivee_9[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   2";
const char arrivee_10[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   21Oh45 BRIVE         3";
const char arrivee_11[]PROGMEM = "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  1";


const char arrivee_12[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   2";
const char arrivee_13[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         3";
const char arrivee_14[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  1";
const char arrivee_15[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      2";
const char arrivee_16[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      214hO6 BRIVE         3";
const char arrivee_17[]PROGMEM = "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   2";


const char arrivee_18[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      2";
const char arrivee_19[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         3";
const char arrivee_20[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   2";
const char arrivee_21[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         3";
const char arrivee_22[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         316h32 TOULOUSE      2";
const char arrivee_23[]PROGMEM = "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   1";


const char arrivee_24[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         3";
const char arrivee_25[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      2";
const char arrivee_26[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   1";
const char arrivee_27[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        3";
const char arrivee_28[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        319hO8 CLERMONT FER  2";
const char arrivee_29[]PROGMEM = "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        319hO8 CLERMONT FER  22OhO1 BRIVE         3";


const char arrivee_30[]PROGMEM = "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  2";
const char arrivee_31[]PROGMEM = "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         3";
const char arrivee_32[]PROGMEM = "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         321h17 FIGEAC        3";
const char arrivee_33[]PROGMEM = "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         321h17 FIGEAC        321h4O TOULOUSE      1";


// Initialisation de la table (attention il doit y avoir le meme nombre d'arrivees que dans les lignes au-dessus en faisant bien attention a la syntaxe)
const char*const arrivee_table[]PROGMEM = {arrivee_0, arrivee_1, arrivee_2, arrivee_3, arrivee_4, arrivee_5, arrivee_6, arrivee_7, arrivee_8, arrivee_9, arrivee_10, arrivee_11, arrivee_12\
                                           , arrivee_13, arrivee_14, arrivee_15, arrivee_16, arrivee_17, arrivee_18, arrivee_19, arrivee_20, arrivee_21, arrivee_22, arrivee_23, arrivee_24, arrivee_25, arrivee_26, arrivee_27, arrivee_28\
                                           , arrivee_29, arrivee_30, arrivee_31, arrivee_32, arrivee_33
                                          };
//Definition du buffer
char buffer[170];

//Creation d'un sous-programme d'initialisation des afficheurs
void initaffichage()
{
  // Initialisation de l'afficheur 1
  // Vider le buffer.
  display1.clearDisplay();
  // choix de la taille
  display1.setTextSize(1);
  // choix de la couleur
  display1.setTextColor(WHITE);
  // initialisation du début d'affichage
  display1.setCursor(0, 0);

  // Initialisation de l'afficheur 2
  // Vider le buffer.
  display2.clearDisplay();
  // choix de la taille
  display2.setTextSize(1);
  // choix de la couleur
  display2.setTextColor(WHITE);
  // initialisation du début d'affichage
  display2.setCursor(0, 0);
}
//fin du sous-programme d'initialisation des afficheurs


void setup()
{
  // initialisation de la vitesse de la liaison serie
  Serial.begin(9600);
  Wire.begin();
  // par défaut nous allons générer une tension de 3.3v
  // initialisation de la liaison ID2C avec l'adresse 0x3D (Mux = 0x3C)
  TCA9548A(1); // edit 2022
  display1.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  // initialisation de la liaison ID2C avec l'adresse 0x3C
  TCA9548A(2);// edit 2022
  display2.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  // fin de l'initialisation
}

void loop()
{
  int tempo; //creation d'une variable tempo
  // creation d'une boucle for
  for (int i = 0; i < 34; i++)
  {
    initaffichage();
    strcpy_P(buffer, (char*)pgm_read_word(&(depart_table[i])));
    display1.println(buffer);
    TCA9548A(2);// edit 2022
    display1.display();
    Serial.println(String("i:") + i );// edit 2022
    if (i == 5 || i == 11 || i == 17 || i == 23 || i == 29 || i == 33)
      tempo = 4000;
    else tempo = 20;

    initaffichage();
    strcpy_P(buffer, (char*)pgm_read_word(&(arrivee_table[i])));
    display2.println(buffer);
    TCA9548A(1);// edit 2022
    display2.display();
    delay(tempo);
  }
}

en savoir plus sur le multiplexeur:
https://riton-duino.blogspot.com/2021/02/tca9548a-multiplexer-le-bus-i2c.html

Olivier

2
Présentez vous ! / Re : Nouveau participant
« le: décembre 13, 2021, 03:28:32 pm »
Bonjour et merci pour les encouragements,

en fait ma station Dcc est en cours de finalisation, j'en suis à la mise en boitier...

c'est ça le plus long, mais j'ai résolu tous mes soucis de voies principale/programmation, je sais modifier ms CVs  :D

J'ai aussi réussi à me connecter par NodeJS, CmdRail et JMRI sans souci , grace aux nombreux tutoriaux présents ici

 8)

Olivier

3
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 25, 2021, 05:50:22 pm »
bonsoir,

décodeur JOUEF/HORNBY R8249, pas de tension max indiquée dans la doc
décodeur TAMS (celui qui fonctionne en ce moment) LD G 42, est indiqué 12-24V

j'ai hésité à utiliser cette alimentation 20V et ai eu surement tort ...d'ou la commande d'une version 18V qui semble utilisée assez souvent, notamment dans l'article "Une station DCC complète, polyvalente et économique avec JMRI"

voici une photo de mon labo, pas rangé...

4
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 25, 2021, 04:34:59 pm »
Bonjour,

j'ai une alimentation 20V (stabilisée, 19,7V mesurés), j'en recois une 18V lundi, peut etre une piste ?
elle n'est peut etre pas si bien régulée que ça après tout...je ne touche plus à rien et je la change lundi.

coté connexions, non j'ai bien fait attention au cablage, testé au multimètre etc
j'ai fait de la maintenance en labo d'electronique dans ma jeunesse, j'ai encore quelques bases !

on ne peut pas écarter  la malchance du (re)débutant, la loi de Murphy and so on
par exemple, lors de mes manips en croisant les composants, une carte LMD18200 a explosé, condensateur chimique à l'envers, imparable, ils sont farceurs ces chinois.

les locos ont plus de 40 ans mais le circuit est neuf, ma concentration et ma vue a 60 ans passés n'aident pas non plus  ???

Olivier

5
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 25, 2021, 03:39:06 pm »
merci à tous pour les réponses, la sagesse me dicte donc de figer cette configuration pour "rouler" et de monter une station de programmation à part, j'ai de quoi la faire en plus, j'ai tous les composants.

étrangement, la lecture des CVs est 'tombé en marche' j'arrive à lire avec <r CV x y> adresse, ID etc... étrange, je n'ai rien touché, juste refait mon câblage loco (plus)  au propre : un mauvais contact ? si c'est ça, mon CAP d'electronicien d'équipement est à revoir  ;D

Serial et Autotest tournent (enfin ils s'executent, car c'est ma loco de test qui tourne, le circuit est rond pour le moment) donc comme dirait nos amis italiens "va bene" 8)

demain après-midi, direction Dreux (en voiture, pas pratique en train de chez moi et on débarque à trois)

A bientot,

Olivier

6
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 25, 2021, 01:58:22 pm »
Bonjour,

en attendant la réception des nouveaux composants, j'ai réussi à redémarrer ma station et compris ce qui clochait...

c'est en fait mes 2 décodeurs d'essai que j'ai flingués, j'en ai reçu depuis 2 autres, d'une autre marque et c'est reparti je sais commander le déplacement de la motrice, allumer/éteindre les feux,  8) donc la vie est belle, sauf que ...

j'ai édité la configuration pour basculer du mode 'normal' en mode 'programmation'

// DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 3, A0);

et la motrice s'affole (elle part en trombe), du coup je l'arrete en catastrophe car je ne pense pas que cela soit normal, (en mode programmation la loco est statique ?) et je pense que c'est comme ça que j'ai détruit mes premiers décodeurs.

j'ai donc une question: faut il forcément avoir deux boosters pour programmer les locos? (je pensais pouvoir basculer d'un mode à l'autre en recompilant)

je suis toujours en Arduino Mega + LMD18200 (x1) + Max471 (x1) (du coup je l'avais testé, il fonctionne parfaitement, la tension évolue bien suivant la consommation) + le programme serial de base exemple de la bibliothèque

je ne touche plus à rien avant de comprendre comment lire & écrire les CVs sans détruire mes décodeurs ... ::)

A bientot...
Olivier

7
Présentez vous ! / Re : Nouveau participant
« le: novembre 24, 2021, 09:42:24 am »
super merci, ca ne sera pas tout de suite, quand je serai 'mur'  ;)

comme LOCODUINO sera présent a l'expo de Dreux ,
je vais y faire un tour vendredi après-midi, je ne suis pas très loin, sur Rambouillet, j'en profiterai pour faire coucou

Olivier

8
Présentez vous ! / Re : Nouveau participant
« le: novembre 24, 2021, 08:27:20 am »
bonjour,
ravi de faire partie de cette communauté de passionnés.

suite à mes recherches et questions dans ce forum, j'aurais une suggestion:
égoïstement c'est le sujet 'centrale' qui m'interresse, car comme beaucoup je pense, je suis arrivé chez Locoduino en 'googlant' Arduino + DCC ;D

je trouve qu'un sujet dédié (dans le forum, ou sur le site meme si c'est déja couvert à plusieurs endroits) à la création d'une configuration de base, validée par les membres (chacun décrivant sa configuration) et surtout avec des composants disponibles et fiables.
Il n'y a qu'à saisir MAX471 en recherche pour se convaincre de cette nécessité, car le sujet est abordé un peu partout...
En fait j'ai réussi, rapidement et principalement par les infos Locoduino et LA bibliothèque DCCpp à tester ma 1ere motrice numérisée, mais suite à une panne de MAX 471 , je souffre pour repartir et je n'ai plus confiance dans ce composant.
donc je cherche une solution de remplacement (on trouve des infos, mais on tourne rapidement en rond car abordé dans trop de sujets)
évidemment j'ai envie de contribuer or actuellement je suis parti du sujet 'bibliothèques' , mais le 'problème' est plus électronique que logiciel, me semble-t-il

je lis et relis assidument "Débuter / Re : Une station DCC complète, polyvalente et économique avec JMRI", une vraie mine d'or, sujet qui mériterait (AMHA) d'etre allégé en Débuter: une station de base économique basée sur la bibliothèque DCCpp
ARDUINO+L9110S+(INA169  ACS712 ou autre)+alim+librairie DCCpp...bah c'est tout..., avec le code commandes <xx> par le serial et basta une sorte de tuto de démarrage

évidemment le sujet bibliothèque DCCpp de Thierry est hyper complet et de référence, cependant pour débuter cela peut rebuter certains (pas moi...)

après libre à chacun d'aller plus loin, Ethernet/wifi, node js, JMRI etc il y a la matière sur le site!

Si vous avez des groupes de travail pour élaborer les articles, je veux bien participer à quelque chose de ce genre, dans 6 mois la retraite, donc un beau sujet pour moi  :o

encore très sincèrement chapeau pour le travail accompli, je reste humble face vos oeuvres messieurs

A bientot,
Olivier

9
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 23, 2021, 10:58:49 am »
merci pour la remarque sur la différence de puissance, j'allais commander le mauvais module !

je ferai des essais prochainement et ne manquerai pas de donner les résultats ici!

Olivier

10
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 22, 2021, 10:35:40 pm »
merci beaucoup pour le lien, donc utilisation d'un 9110s avec INA169?

les modules 9110S semblent plus petits en 'googlant' et le schéma indique toujours MAX 471 (coquille?)


https://www.amazon.fr/L9110S-H-bridge-Stepper-Driver-Controller/dp/B07KFLZKP1/ref=sr_1_6?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=l9110S&qid=1637616359&sr=8-6

en tout cas, ces composants semblent disponible facilement, ceci mérite d'etre approfondi

le montage a été validé depuis ?

olivier

11
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 22, 2021, 09:59:51 pm »
Bonsoir,

merci pour le conseil, en fait en parcourant ce forum plus attentivement il est clair que le MAX471 est surement le coupable, je vais vérifier demain, j'en avais approvisionné plusieurs par précaution ...

la (non) fiabilité de ces composants risque de poser des problèmes de maintenance sur le long terme, je regarderai plus tard d'autres solutions n'utilisant pas LMD18200 & MAX 471, qui sont, en plus, pas évidents à approvisionner.

je pense que nous recherchons tous une solution pérenne, j'ai beau être électronicien de formation, ma vraie passion actuelle et à venir ce sont les convois à l'échelle HO! (a 60 ans je suis moins 'souple' à jouer du fer à souder)

Olivier

12
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 22, 2021, 07:09:58 pm »
bonsoir,

j'ai compris depuis que la lecture des CV  n'est possible que par mesure du courant consommé par le moteur.

le moteur n'étant plus alimenté, je suis bloqué.

j'ai changé d'Arduino(non convaincu), le LMD 18200(semblait une meilleure piste), de décodeur, de loco, rien n'y fait!
il reste bien le Max471 mais je vois pas pourquoi il permettrait la commandes des feux et pas du moteur, bref je je suis bloqué, les moteurs des locos fonctionnant en 12V une fois débranchés des décodeurs.
Du coté logiciel, DCCpp est piloté par l'exemple serial, on ne peut pas utiliser plus simple.
j'ai cassé mon jouet et je ne sais plus trop ou chercher, la moindre piste serait appréciée...

Olivier

13
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 19, 2021, 11:24:50 am »
Bonjour,

à force de faire des essais ma motrice RTG avec un decodeur Jouef/Hornby s'est emballée et le moteur ne tourne plus.
j'ai regardé au scope rien, et mis une led avec R de 1k: plus de vie

les commandes <t 1 3 50 1> ou <t 1 3 50 0> changent bien les LEDs de sens, mais le moteur ne bronche plus

a priori le décodeur fonctionne car j'allume/eteins les feux avec  <f 3 144> & <f 3 128> et je ne pense pas avoir grillé le moteur mais peut etre le décodeur... (j'ai la flemme de dessouder le moteur pour le tester)

j'ai décider de paramétrer le code  pour passer en mode programmation
ma config est Mega + LMD18200 + MAX471 et le programme SerialDcc...

j'ai donc modifier :

// DCCpp::beginMain(UNDEFINED_PIN, DCC_SIGNAL_PIN_MAIN, 3, A0);
  DCCpp::beginProg(UNDEFINED_PIN, DCC_SIGNAL_PIN_PROG, 3, A0);

les commandes <t xxx> et < f ...> ne fonctionnent plus et les feux clignotent: je suppose que c'est normal?
 
  du coup j'esaye de lire les CV et/ou de reseter le décodeur  avec la commande <W 8 8 5 5>
  DCCpp me répond
  W command
   iter : 0, max : 1
    <r5|5|8 8>

en lecture avec <R 8 5 5>  j'obtiens

readCVraw : start reading cv 8
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
 iter : 0, max : 1
<r5|5|8 -1>
end reading

Les feux et ma LED de debug sur le moteur clignotent, ce qui semblerait indiquer que la sortie décodeur pour le moteur répond
 
  j'ai commandé d'autres décodeurs pour continuer les essais bien sur, mais en attendant je m'entraine sur celui-la pour étudier le mode programmation
 
  d'après ce que j'ai lu, dans la réponse <5|5 8 -1> -1 indique une erreur ?
 
la moindre piste serait la bienvenue !

  Olivier

14
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 16, 2021, 06:50:40 pm »
Bonsoir Antoine,

ca ne donne rien, la commande semble ne pas etre prise en compte.

par contre à 126 mon RTG fonce comme un TGV!

olivier

15
Bibliothèques / Re : Bibliothèque DCCpp
« le: novembre 16, 2021, 03:17:05 pm »
Bonjour,

finalement j'ai laissé tomber "Autotest" pour essayer avec 'SerialDcc'

j'ai du ajouter   DCCpp::powerOn(); dans le setup et depuis que du bonheur!

ma motrice d'essai (une vénérable RTG de fin des années 70 achetée quand j'étais ado) avance, recule, s'allume ! (je l'ai numérisée moi meme donc)
pour le moment je trouve la motorisation à cardan suffisante, sur certains forums beaucoup ont changé la motorisation car bruyante, moi ca me rappelle ma jeunesse ::)

bravo pour cette librairie que je vais utiliser à présent pour la suite

Olivier

Pages: [1] 2