LOCODUINO

Passage à niveau géré par Arduino (1)

La détection de l’approche des trains

. Par : Christian

Mise à jour le 19 avril 2025 pour donner un programme de PN à deux voies Le passage à niveau commandé par Arduino, sur base Auhagen, installé sur le réseau Train’ In Box. Locoduino a déjà présenté des projets de passage à niveau dans les articles Un automatisme de Passage à Niveau et Etude d’un passage à niveau universel ainsi que dans (…)

Retourner à l'article

Vous répondez à :

Passage à niveau géré par Arduino (1) 2 novembre 2020 14:12, par Christian

Titres des articles en encadré
Vous l’avez remarqué, les titres n’apparaissent pas dans l’encadré puisque les autres articles ne sont pas encore publiés.
Voici donc les sujets qui seront traités :

La détection de l’approche des trains
Les feux lumineux clignotants
Commande du mouvement des barrières
La sonnerie
Amélioration et résolution des problèmes

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.)

10 Messages

  • Article très intéressant mais comme dit dans le texte même : "Le mieux pour détecter des essieux est d’utiliser des détecteurs de consommation et d’avoir des wagons avec essieux graphités ou bien consommateurs de courant (éclairage par exemple). Cette solution qui est possible pour l’analogique comme pour le numérique, requiert néanmoins des coupures dans le rail qui sont souvent difficiles à réaliser si le réseau existe déjà et n’a pas été conçu dans ce sens.

    C’est pourquoi, dans la suite de cet article, nous évoquerons des moyens de détection qui peuvent être ajoutés facilement à un réseau existant sans avoir à modifier celui-ci."

    Il n’est pas si compliqué de créer des zones isolées même sur un réseau existant, et certains d’entre nous peuvent en être encore qu’à la création de leur réseau et n’avoir donc aucune contrainte à priori.
    Si la détection de consommation est l’idéal pourquoi l’exclure de l’article et ne pas présenter également les solutions à appliquer ?
    Il appartiendra ensuite à chacun de choisir la façon de procéder en fonction de ses possibilités techniques ou choix personnels.

    A moins que cela soit inclus dans la phrase finale : "Nous étudierons à la fin de cette série d’articles différentes possibilités pour améliorer la détection des trains." mais cela mériterait d’être précisé.

    Bonne journée à tous.

    Répondre

    • Passage à niveau géré par Arduino (1) 2 novembre 2020 13:55, par Christian

      Merci d’avoir réagi à cet article.
      C’est vrai que "Il n’est pas si compliqué de créer des zones isolées", mais tout de même, cela peut faire peur à des modélistes débutants (la clientèle de TIB par exemple). Si vous saviez le nombre de modélistes qui ont peur de faire des soudures !
      C’est donc pourquoi cet article propose une solution qui ne demande pas de modifier le réseau que vous avez déjà monté. Bien sûr, si vous en êtes à la pose de voie, il peut être intéressant de créer dès le départ ces sections isolées qui pourront recevoir des détecteurs d’occupation. J’en parle dans le cinquième article qui passe en revue les améliorations possibles et le dépannage des dysfonctionnement éventuels, et je vais, suite à votre remarque, rajouter une petite note pour bien le préciser. Et c’est vrai que la détection d’occupation est plus fiable.
      Mais pour l’instant, l’ensemble des articles est écrit pour permettre de monter un PN sur un réseau déjà monté en ayant le moins de travail possible (comme le réseau TIB par exemple ou tout autre réseau), d’où la solution de capteurs rajoutés sur la voie. Et aussi pour montrer que la conception d’un projet doit se faire par étapes progressives.

      Répondre

  • Passage à niveau géré par Arduino (1) 2 novembre 2020 14:12, par Christian

    Titres des articles en encadré
    Vous l’avez remarqué, les titres n’apparaissent pas dans l’encadré puisque les autres articles ne sont pas encore publiés.
    Voici donc les sujets qui seront traités :

    La détection de l’approche des trains
    Les feux lumineux clignotants
    Commande du mouvement des barrières
    La sonnerie
    Amélioration et résolution des problèmes

    Répondre

  • bouble portes de rotonde 23 juin 2024 00:17, par Mick012

    Bonsoir je voudrais savoir si n’importe quel type de capteurs effet hall peu fonctionner, pour un passage à niveau et des double portes de rotonde, qui commandent avec une carte Arduino des servomoteurs SG90, j’ai différents type de capteurs à effet hall comme : des 3144318 des 3144336 j’ai des HW 477-V02 et j’ai des 49E325BG.
    Cordialement Mick

    Répondre

    • bouble portes de rotonde 23 juin 2024 10:06, par Christian

      Bonjour Mick,
      Je ne connais pas ces capteurs mais bien évidemment ils peuvent être utilisés. Lorsqu’un capteur à effet Hall réagit à un champ magnétique, il envoie un signal (numérique ou analogique, comme l’explique l’article sur les capteurs à effet Hall). Le programme doit donc être conçu pour réagir à ce signal, et faire les tâches associées (ouverture de portes par exemple avec un servomoteur).
      La première chose que vous pouvez faire est déjà de tester les capteurs pour allumer la LED du module Arduino lorsqu’il y a détection. Cette partie de programme vous servira par la suite en remplaçant le traitement de la LED par le traitement du servomoteur. C’est d’ailleurs ce que nous avons fait dans le premier opus de cette série d’articles : la détection du train sur la zone PN se manifestait par l’allumage de la LED_BUILTIN, puis cela a été remplacé par le traitement pour ouvrir les barrières. Avec cette méthode, on avance progressivement vers le but final à atteindre : par étapes.

      Répondre

  • Hall-sensor 3144336 23 juin 2024 14:13

    bonjour même le dimanche je m’acharne sur mes projets, avec une Led que j’ai installé. Le capteur fonctionne, le capteur lui même possède une mini led qui s’éclaire quand l’aimant le rend actif, ma led installée s’allume.
    Par contre le servo lui ne fonctionne pas. j’ai branché le du servo sur 3.3 volts et puis sur 5 volts, le servo ne fonctionne toujours pas. Ou alors le code est faut, ou encore le capteur n’est pas assez puissant pour une carte Arduino uno. Je ne trouve pas sur le net les caractéristiques de ses capteurs

    Sur le pin 13 le capteur reste allumé ?

    J’ai changé le pin 13 par le 10 et aussi en analogique A0 rien n’y fait, bien sur j’ai modifié le code.
    Peut être que l’alimentation du capteur et du servo c’est trop pour l’arduino ?.
    Peut être en alimentant le servo par une tension extérieur ?.
    Code du servo

        #include <Servo.h>
    
    int servo = 3 ; // Déclaration de la servo en broche 3
    int SENSOR = 10 ; // Déclaration du capteur en broche 10 sur le 13 le capteur reste allumé mais rien ne se passe.
    int val ; // Déclaration d'une variable numérique ça m'intrigue
    void setup ()
    {
    pinMode (servo, OUTPUT) ; // Définition de la broche servo en tant que sortie
    pinMode (SENSOR, INPUT) ; // Définition du capteur en tant qu'entrée.
    }
    void loop ()
    {
    val = digitalRead (SENSOR) ; // et aussi digitalanalogln pour A0 & A1 
    if (val == LOW) //  le capteur détecte un aimant,
    {
    digitalWrite (servo, HIGH);
    }
    {
    digitalWrite (servo, LOW);
    }
    
    }
    
              Petit code avec la led  qui fonctionne
    
    int Led = 13 ; 
    int SENSOR = 10 ; 
    int val ;
    void setup ()
    {
    pinMode (Led, OUTPUT) ; 
    pinMode (SENSOR, INPUT) ; 
    }
    void loop ()
    {
    val = digitalRead (SENSOR) ; 
    if (val == LOW) s’allume
    {
    digitalWrite (Led, HIGH);
    }
    {
    digitalWrite (Led, LOW);
    }
    }

    Répondre

    • Hall-sensor 3144336 23 juin 2024 17:46, par Christian

      Effectivement, vous voulez brûler les étapes.
      Avant de vouloir faire ses propres projets, il faut déjà apprendre le B-A-BA d’Arduino et ce site contient plein d’exemples pour commander une LED, un servomoteur, un écran LCD, un moteur pas à pas, etc.
      Pour comparer avec une langue étrangère, ce n’est pas parce que vous avez appris à dire bonjour et au revoir que vous êtes capable de tenir une conversation.
      Donc, au lieu de s’acharner, il vaut mieux prendre son temps et comprendre que chaque composant se commande d’une certaine manière, soit avec les fonctions d’Arduino, soit avec les bibliothèques fournies.
      Nous sommes passés par là nous aussi.
      Enfin, il y a une procédure pour demander de l’aide pour réaliser un projet : cet espace est réservé pour poser des questions sur l’article.
      Je vous invite donc à prendre connaissance de nos articles qui décrivent tout cela dans le but d’aider les débutants à démarrer. Merci de votre compréhension.

      Répondre

  • Passage à niveau géré par Arduino (1) 23 juin 2024 15:28, par Jean-Luc

    Bonjour,

    Ça ne marche pas du tout comme ça un servo. Regardez d’abord un des exemples de la bibliothèque Servo.Vous avez aussi un article ici : La bibliothèque Servo et ici vous avez la description de la bibliothèque SlowMotionServo : La bibliothèque SlowMotionServo

    Répondre

  • Passage à niveau géré par Arduino (1) 18 avril 14:57, par François Constant

    Bonjour, j’ai réalisé le projet comme décrit, et il fonctionne parfaitement, pour une voie, mais pour deux voies vous avez indiquer qu’il fallait ajouté du code pour gérer l’état d’occupation du PN, mais je ne comprend pas ce qu’il faut faire exactement, je comprends qu’il faut ajouter des capteurs sur une autre sortie de l’arduino, mais pour le reste je suis perdu.
    pouvez-vous m’aider

    Répondre

    • Passage à niveau géré par Arduino (1) 19 avril 00:05, par Christian

      Bonjour François,

      Visiblement, vous savez le faire pour une voie. S’il y a deux voies, on peut considérer que la zone PN est constituée de deux sous-zones (Z1 et Z2) constituées d’une seule voie. Vous savez faire la détection pour chaque sous-zone Z1 et Z2.
      La zone totale du PN est libre si Z1 est libre ET Z2 est libre.
      La zone totale du PN est occupée si Z1 est occupée OU Z2 est occupée (et à fortiori si les deux sont occupées).

      Pour citer l’article :
      Le mieux est de considérer que chaque voie est banalisée (deux sens de circulation possibles même si un sens est imposé) et dispose de sa propre zone de protection de PN (comme étudié dans le paragraphe précédent). La zone Z de protection du PN est alors constituée de deux sous-zones Z1 et Z2 et pour être libre, les deux sous-zones doivent être libres. Dès qu’une sous-zone est occupée, la zone de protection du PN doit être considérée comme occupée. C’est ce que montre la figure 4.

      Il suffit de définir une variable d’occupation pour Z1 et une pour Z2 et de tester la condition donnée plus haut.

      Est-ce que c’est plus clair maintenant ?
      Cdlt.

      Répondre

Rubrique Projets

Les derniers articles

Les articles les plus lus