• accueil
  • réseaux à l'échelle 0
    • réseau jouet ancien
      • présentation
      • catalogue LR
      • photos du matériel roulant
    • réseau jouet moderne
      • présentation
      • quelques videos
      • matériel roulant
      • 131T ETS et fumigènes
      • portique intermodal
    • réseau modulaire
      • présentation
      • photos
      • vidéos
      • exploitation du réseau
      • matériel roulant
      • le parc d'attractions
      • le pont tournant
  • réseaux de monorails
    • introduction
    • histoire des monorails
    • maquettes de monorails gyroscopiques
    • principes de la levitation magnétique
    • monorail jouet à sustentation magnétique
    • maquette de lévitation électromagnétique
  • train de jardin
    • présentation
    • Matériel roulant
    • 030T CDN
    • autorail de Dion
    • autorail Billard
    • Mallet LGB
    • BB400 des CP
    • Vapeur vive Emma
    • Vapeur vive Millie
    • Vapeur vive MIKADO
    • Loco vapeur 031T ACO
    • Exploitation du réseau
    • Rétrosignalisation
    • Wagon dételeur
    • Liens
  • techniques
    • électronique
      • présentation
      • alimentation pwm
      • Détecteur de passage infra rouge
      • Commande d'une plaque tournante
      • Comment réaliser un oscillo pas cher
      • Utilisation d'un servomoteur
      • Commande d'aiguille par décharge capacitive
      • Commande d'un fumigène pulsé par un décodeur ESU Loksound
    • informatique
      • généralités
      • port parallèle
      • port série
      • port USB
      • Qbasic et Freebasic
      • Visual Basic
      • Exploitation d'un réseau en Visual Basic
      • Commande d'un réseau par manette de jeu
      • Commande vocale d'un réseau
    • ARDUINO
      • introduction
      • Sonorisation d'une locomotive
      • Radiocommande et sonorisation d'une loco sans DCC
      • Module de sonorisation d'un réseau
      • Applications du BLUETOOTH au modélisme ferrovaire
    • Fumigènes
    • dcc
      • Introduction
      • Structure des paquets DCC
      • ARDUINO et DCC
      • Utilisation d'un ampli audio comme booster
      • Création d'un signal DCC avec un PC
      • Contrôle d'un signal DCC
      • Rétrosignalisation
      • Détecteurs d'occupation
      • Utilisation du LokProgrammer
      • SPROG II
      • DCC transmis par radio
      • Présentation du programme CARTO-DCC
      • Commande d'un réseau DCC en WiFi
      • programmation des locos MTH
      • Régulateur DCC à commande vocale en Français
      • Commande des aiguilles en DCC
      • Les décodeurs sonores
  • Contact




  • Interface XpressNet avec une centrale LENZ


    Connecter un Arduino à une centrale LENZ en XpressNet est assez compliqué. Le protocole XpressNet est basé sur une liaison RS485, sur du câble téléphonique à 6 fils (RJ12). De plus, XpressNet est un protocole série 9 bits a 62.5 kbit/s. Le SDK Standard d’Arduino ne propose pas de bibliothèque série 9 bits. Cependant quelqu’un l’a fait sur un Arduino mega 2560 Vous trouverez une description de ce système en cliquant ici.

    Une approche plus simple consiste à utiliser un module LENZ LI101F et à relier un ARDUINO UNO au connecteur série du module LI101F.
    Le module utilise un protocole à 8 bits connu de l'ARDUINO. Le débit est de 19200 bauds.
    Malheureusement, le module LI101F n'est plus commercialisé et il est de plus en plus difficile d'en trouver d'occasion.

    1.Interface avec LI101F et ARDUINO UNO

    1.1 Montage

    Le schéma de connexion de l'ARDUINO au module LI101F est donné ci-dessous.



    Comme on peut le voir, le montage est très simple. Il n'y a que trois fils à relier au connecteur série du module LI101F.
    Il faut inverser le signal entre la sortie TX de l'ARDUINO et l'entrée TX (broche 3) de l'interface série du module LI101F.
    Pour inverser le signal, on peut utiliser un circuit CD4011 (porte NAND).
    L'entrée RTS (broche 7) de l'interface série du module LI101F doit être reliée au +5V de l'ARDUINO.
    Voici l'affectation des broches à utiliser sur le connecteur série du module LI101F.



    1.2 Logiciel

    Les données échangées entre l'ARDUINO et le module LI 101F sont conformes à la norme XPRESSNET et sont constituées d'une suite de 6 octets. Le premier octet a pour valeur 228.
    Pour commander une loco d'adresse inférieure à 100 avec l'ARDUINO, il faut envoyer trois types d'instructions:

    Commande de la vitesse et du sens de marche



    Commande des fonctions du groupe 1 (F0 à F4)



    Commande des fonctions du groupe 2 (F5 à F8)



    Le débit doit être fixé à 19200 bauds avec l'instruction Serial.begin(19200);

    Pour les adresses longues supérieures à 100, les octets 2 à 5 ont les valeurs indiquées dans le tableau ci-dessous.



    L'octet 6 est un octet de controle obtenu en faisant un OU Exclusif des octets précédents.

    Les octets 3 et 4 transmettent l'adresse longue et les valeurs AH et AL sont données par les relations suivantes:
    Si l'adresse est inférieure à 100, alors AH=0 et AL=adresse
    Si l'adresse est supérieure ou égale à 100 alors:
    AH = int(adresse/256) + 192
    AL = adresse - int(adresse/256) X 256

    Commande des accessoires.

    numag est le numéro de l'accessoire et posag est la valeur (0 ou 1).
    Les commandes à envoyer sont données ci-dessous.


    2. Interface avec ARDUINO MEGA 2560

    2.1 Description du montage

    Le montage à réaliser est constitué de deux éléments:
    - une carte d'interface entre l'ARDUINO et le connecteur XpressNet à base d'un circuit MAX 485
    - un module ARDUINO MEGA 2560
    Le shéma de la carte d'interface entre l'ARDUINO et le connecteur XpressNet est donné ci-dessous:



    Les pattes du circuit intégé MAX 485 sont à relier aux éléments suivants:
    1: broche RX1 de l'ARDUINO
    2: broche 5 de l'ARDUINO
    3: broche 5 de l'ARDUINO
    4: broche TX1 de l'ARDUINO
    5: masse de l'ARDUINO et du connecteur XpressNet
    6: entrée A du connecteur XprssNet (broche 4)
    7: entrée B du connecteur XprssNet (broche 3)
    8: broche +5V de l'ARDUINO

    Il faut placer une résistance de 1,5 K entre le +5V et la broche 6 et une autre résistance de 1,5 K entre la broche 7 et la masse.

    2.2 Le programme ARDUINO


    Pour pouvoir communiquer avec l'ARDUINO, il faut installer la librairie Xpressnet.
    Cette librairie permet de commander une locomotive ainsi que les accessoires.
    Il y a trois instructions à utiliser.

    Commande loco: vitesse et sens de marche
    XpressNet.setLocoDrive (Adr_High, Adr_Low, Steps, Speed);
    Steps=0 ==> 14 crans de vitesse
    Steps=1 ==> 27 crans de vitesse
    Steps=2 ==> 28 crans de vitesse
    Steps=3 ==> 128 crans de vitesse
    MAV Speed=vitesse + 128
    MAR Speed=vitesse

    Commande loco: fonctions
    XpressNet.setLocoFunc (Adr_High, Adr_Low, val, fkt);
    val=0 ==> fonction off
    val=1 ==> fonction on
    fkt= numéro de la fonction (entre 0 et 28)

    commande des aiguilles
    XpressNet.setTrntPos (AdresDccH, AdresDccB, pos);
    AdresDccH=0
    AdresDccB = numag - 1 (numag est l'adresse de l'aiguillage)
    pos = 8 ==> aiguille direct
    pos = 9 ==> aiguille déviée

    Chaque commande envoyée par le PC est constituée d'une suite de 4 octets :

    Commande de vitesse et sens de marche
    octet1= Adresse_High
    octet2= Adresse_Low
    octet3= 10+bl
    avec bl=0 ==> 14 crans de vitesse
    bl=1 ==> 27 crans de vitesse
    bl=2 ==> 28 crans de vitesse
    bl=3 ==> 128 crans de vitesse
    octet4=vitesse si MAR
    octet4=vitesse+128 si MAV

    Commande de fonction
    octet1=Adresse_High
    octet2= Adresse_Low
    octet3=0 ==> fonction off
    octet3=1 ==> fonction on
    octet4= numéro de fonction entre 0 et 28

    Commande d'accessoires
    octet1=0
    octet2=numag-1
    octet3=22
    octet4=8 ==> aiguille direct
    octet4=9 ==> aiguille déviée

    Calcul de Adresse_High et Adresse_Low
    Si l'adresse est <= 100 alors:
    Adresse_High = 0
    Adresse_Low = adresse
    Si l'adresse est > 100 alors:
    b=partie entière (adresse/256)
    Adresse_High = 192 + b
    Adresse_Low = adresse - b x 256

    2.3 Programme de commande PC avec le logiciel PROCESSING.


    Ce programme écrit avec le logiciel PROCESSING est un petit régulateur qui permet de piloter une loco avec la centrale LENZ.
    Voici une copie d'écran du logiciel:



    Avant d'utiliser ce logiciel, il faut lui indiquer le numéro du port COM de l'ARDUINO en modifiant la ligne de code ci-dessous:
    myPort = new Serial(this,"com10", 9600);
    Remplacer com10 par le port COM de l'ARDUINO.

    2.4 Téléchargement des programmes


    Vous pouvez télécharger le dossier intitulé arduino_xpressnet en cliquant ici.

    Ce dossier comprend:
    - la librairie XpressNet
    - le programme pour ARDUINO MEGA
    - le régulateur PROCESSING

    Retour page Arduino DCC


    Retour page d'accueil