La génèse d’un réseau 100% Arduino
De l’architecture matérielle à l’informatique ferroviaire en objet C++
Vous répondez à :
Mais votre intrusion est tout à fait positive !
Vous pouvez construire votre centrale DCC pour piloter 2 trains en partant des nombreux articles que vous trouverez en tapant « centrale DCC » dans la recherche en haut à droite de la page d’acceuil de Locoduino.
Le choix ne manque pas ! Votre question ressemble plus à “ comment commander la centrale pour 2 trains » . Il faut choisir l’interface utilisateur qui vous convient : je répondrai plus en détail ensuite.
Maintenant si votre question concerne la programmation des adresses des locos, avec DCCpp ou DCC++, vous pouvez le faire.
11 Messages
-
La génèse d’un réseau 100% Arduino 10 mars 2016 12:44, par Christian
Bravo à tous les deux pour cet article passionnant : c’est du très lourd !
Je suis pour ma part bien convaincu qu’un seul Arduino pour gérer tout un réseau est insuffisant. Le concept d’en utiliser plusieurs et de les faire communiquer permet une mise au point plus facile et permet de rajouter d’autres "cartes fonction" comme le démontre cet article.
Je vais m’empresser de lire la suite et j’aurais certainement des questions. Mais avant de les poser, je dois avoir une connaissance globale du sujet. A plus.
-
Tout s’est illuminé pour moi quand j’ai compris comment faire fonctionner le gestionnaire du réseau, avec sa modélisation.
De toute façon, un seul Arduino sera limité par :
- son nombre de pattes
- sa mémoire flash, ram et EEPROM
- ses performances
- ses limites en périphériques SPI
- la complexité du câblage.
Donc il faut répartir !
Mais pour le gestionnaire ça doit rester transparent.
Dominique
-
-
La génèse d’un réseau 100% Arduino 17 novembre 2018 13:05, par Philippe
Excusez mon intrusion, j’ai compris le principe énoncé-ci dessus mais étant débutant je voudrais commencer par piloter 2 trains ensemble su le même réseau et donc commencer par affecter deux adresses différentes à mes deux locos : et je ne trouve pas sur Locoduino !
Pouvez-vous me guider ?
Merci-
Mais votre intrusion est tout à fait positive !
Vous pouvez construire votre centrale DCC pour piloter 2 trains en partant des nombreux articles que vous trouverez en tapant « centrale DCC » dans la recherche en haut à droite de la page d’acceuil de Locoduino.
Le choix ne manque pas ! Votre question ressemble plus à “ comment commander la centrale pour 2 trains » . Il faut choisir l’interface utilisateur qui vous convient : je répondrai plus en détail ensuite.
Maintenant si votre question concerne la programmation des adresses des locos, avec DCCpp ou DCC++, vous pouvez le faire.
-
-
Faire circuler 2 trains en même temps 19 novembre 2018 14:35, par Philippe
Dominique,
j’ai bien lu tous vos articles mais je ne trouve pas de réponse a deux questions !
J’ai une carte Arduino Uno que j’ai relié comme expliqué à un booster LMD 18200, j’ai équipé une loco avec un décodeur LokPilot V4.0 et le tout fonctionne sur mon réseau Fleischmann en "N" (sauf que le point arrêt est difficile à trouver).
Je voudrais faire circuler sur le même réseau une deuxième loco avec un deuxième décodeur LokPilot V4.0 qui a la même adresse par défaut (3) ;
Est-ce possible ? si oui ou puis-je trouver un exemple pour faire circuler deux trains en même temps ? (j’ai essayé de nommer deux loco dans le programme mais ça plante !)
Comment changer l’adresse du deuxième décodeur (j’ai passé plusieurs nuit sur les modes d’emploi mais je n’ai pas trouvé !!!
Merci-
Difficile de vous répondre si je ne connais pas les détails de la centrale DCC++ faite d’après un article de Locoduino et lequel, pour savoir ce que vous pouvez faire, notamment programmer l’adresse des locos.
Deux locos DCC ayant la même adresse ne peuvent pas être commandées individuellement. Il faudrait qu’elles aient des adresses différentes pour avoir des comportements différents. C’est le principe du DCC, chaque loco à sa propre adresse.
-
-
La génèse d’un réseau 100% Arduino 20 novembre 2018 09:46, par Philippe Savoyat
Bonjour,
Voici le sketch que j’utilise (ci-dessous) comment ajouter une deuxième loco ? :de plus, j’ai bien compris qu’il faut deux adresses différentes, ma question est : comment changer l’adresse d’une loco sachant que les décodeurs sont livrés avec la même adresse ?
Merci encore de vos réponses/********************
* Creates a minimum DCC command station from a potentiometer connected to analog pin 0,
* and a button connected to ground on one end and digital pin 4 on the other end. See this link
* http://www.arduino.cc/en/Tutorial/A...
* The DCC waveform is output on Pin 9, and is suitable for connection to an LMD18200-based booster directly,
* or to a single-ended-to-differential driver, to connect with most other kinds of boosters.
* The Differential DCC waveform is output on Pins 9 and 10.
********************/#include <DCCPacket.h>
#include <DCCPacketQueue.h>
#include <DCCPacketScheduler.h>DCCPacketScheduler dps ;
unsigned int analog_value ;
char speed_byte, old_speed = 0 ;
byte count = 0 ;
byte prev_state = 1 ;
byte F0 = 0 ;void setup()
Serial.begin(115200) ;
dps.setup() ;//set up button on pin 4
pinMode(4, INPUT) ;
digitalWrite(4, HIGH) ; //activate built-in pull-up resistor
void loop()
//handle reading button, controls F0
byte button_state = digitalRead(4) ; //high == not pushed ; low == pushed
if(button_state && (button_state != prev_state))
//toggle !
F0 ^= 1 ;
Serial.println(F0,BIN) ;
dps.setFunctions0to4(3,DCC_SHORT_ADDRESS,F0) ;
prev_state = button_state ;//handle reading throttle
analog_value = analogRead(0) ;
speed_byte = (analog_value >> 2)-127 ; //divide by four to take a 0-1023 range number and make it 1-126 range.
if(speed_byte != old_speed)
if(speed_byte == 0) //this would be treated as an e-stop !
if(old_speed > 0) speed_byte = 1 ;
else speed_byte = -1 ;
Serial.print("analog = ") ;
Serial.println(analog_value, DEC) ;
Serial.print("digital = ") ;
Serial.println(speed_byte, DEC) ;
dps.setSpeed128(3,DCC_SHORT_ADDRESS,speed_byte) ;
old_speed = speed_byte ;
dps.update() ;++count ;
-
Vous utilisez un logiciel maintenant obsolete mais dont on garde les articles pour des raisons didactiques : des versions plus récentes sont ici Réalisation de centrales DCC avec le logiciel libre DCC++ (1), Réalisation de centrales DCC avec le logiciel libre DCC++ (2), Réalisation de centrales DCC avec le logiciel libre DCC++ (3). Maintenant on utilise aussi la Bibliothèque DCCpp
Vous trouverez dans DCC++ et DCCpp des commandes de programmation des CVs des locomotives, dont l’adresse.
Pour la suite, merci de discuter de votre projet sur le Forum. -
Bonjour
Pour changer l’adresse d’un décodeur, on peut utiliser JMRI. Dans JMRI il y a une application DecoderPro qui permet de le faire.
Pierre
-
Bien évidement... je n’utilise que cela.
Ouvrir DecoderPro3
Deux cas : c’est un nouvelle loco (qui a, en usine, le CV1=3)
Dans le tableau des locos (le premier écran qui arrive) on crée une fiche "faire Nouvelle en haut à gauche" et l’on indique le CV que l’on veut (c’est vrai pour tous les CV)
Autre cas : si la loco est déjà répertoriée il y a un un tableau avec tous les CV que l’on peut modifier à sa guise
Le principe est simple : chaque loco a une fiche que l’on peut modifier.
On peut véifier si cela marche en actionnant le régulateur (bas à droite sur la fiche)-
Merci beaucoup, je vais essayer !
-
-
-