LOCODUINO

Passage à niveau géré par Arduino

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

La détection de l’approche des trains

.
Par : Christian

DIFFICULTÉ :

Cet article est le premier d’une série de cinq (voir les titres dans l’encadré) présentant un projet de passage à niveau automatisé conçu par étapes successives et particulièrement adapté au réseau Train’ In Box vendu par LR-Modélisme. Bien évidemment, le PN réalisé ici peut aussi convenir à des réseaux plus grands qui permettront d’ailleurs de mieux reproduire la réalité alors que certaines concessions ont dû être faites pour le réseau TIB. Mais la série d’articles est aussi l’occasion d’un tuto pour les débutants expliquant comment on conçoit un projet complexe et comment on choisit les solutions technologiques.

JPEG - 284.8 kio
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 l’article Comment concevoir rationnellement votre système. Mais ce projet-ci a été conçu pour être facilement monté sur des réseaux déjà terminés en ne nécessitant aucun travail sur les voies ou le décor. Cela nous a amenés à adopter des solutions technologiques simples, parfaitement adaptées à ceux qui débutent alors que d’autres choix auraient pu se révéler plus judicieux. Comme vous le verrez, cette simplicité n’a rien cédé à la fiabilité. Ce premier article explique comment repérer l’approche d’un train pour protéger le passage à niveau, une étape capitale puisque tout le reste en dépend.

Que se passe-t-il lorsqu’un train approche un passage à niveau ?

Le train doit être détecté très en amont du PN afin de laisser du temps pour les différentes actions à faire dans l’ordre :

  • Sonnerie et clignotement des feux routiers
  • Attendre un certain délai (de l’ordre de 8 secondes)
  • Abaissement et fermeture des barrières
  • Arrêt de la sonnerie alors que les feux continuent à clignoter

Quasiment aussitôt que le train est passé, on observe simultanément l’arrêt du clignotement des feux routiers et l’ouverture des barrières.

La vidéo suivante montre un PN à deux barrières (PN SAL 2) :

Cas d’une voie unique parcourue dans un seul sens

La figure 1 montre un PN avec une voie unique que nous supposerons parcourue dans un seul sens, de la gauche vers la droite. Afin de laisser du temps pour réaliser les différentes actions, la zone sur laquelle on doit détecter l’arrivée du train n’est pas symétrique par rapport au PN, comme le montre la figure 1.

Figure 1
Figure 1
Zone de détection à consommation de courant

Tant que le moindre essieu est sur la zone, le PN doit rester fermé ; dès qu’il n’y a plus d’essieu sur la zone, le PN peut s’ouvrir. La zone n’est pas symétrique pour que le PN s’ouvre dès que le train est entièrement passé.

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. Le cinquième article évoquera l’utilisation de détecteurs de consommation comme une amélioration possible de ce montage.

Pour 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. Ces moyens de détection sont des capteurs IR, des ILS (Interrupteur à Lames Souples) ou bien des détecteurs à effet Hall. Ces deux derniers composants nécessitent la pose d’un aimant sous la locomotive et seule celle-ci est réellement détectée ; il faut donc tenir compte des wagons qui suivent alors que leur présence n’est pas vue par les détecteurs. Les trois moyens de détection sont utilisables aussi bien en analogique qu’en numérique. De façon générale, nous appellerons capteur ces moyens de détection et un capteur délivre un signal électrique lorsqu’il détecte la locomotive d’un train.

Cas d’une voie unique banalisée

La figure 2 montre un PN avec une voie unique banalisée, c’est-à-dire pouvant être parcourue dans les deux sens. La zone sur laquelle il faut détecter les trains (en rouge) est cette fois symétrique. Des capteurs sont posés sur cette voie à la frontière de la zone ; lorsqu’ils sont déclenchés par une locomotive, rien ne nous permet de savoir si celle-ci entre ou sort de la zone. Cependant, si on connaît l’état antérieur de la zone (libre ou occupée), on peut en déduire s’il s’agit d’une entrée ou d’une sortie.

Figure 2
Figure 2
Voie unique banalisée

Examinons la figure 2 et supposons que le train se déplace de A vers B. La zone est libre et lorsque le train arrive sur le capteur C1, celui-ci se déclenche. Il y a bien franchissement de la frontière de la zone et comme celle-ci était jusqu’alors libre, on peut en déduire que le train entre dans la zone qui devient alors occupée. Lorsque le train arrive au capteur C2, celui-ci déclenche et comme la zone était occupée, on en déduit que le train sort de la zone et qu’elle devient à nouveau libre.

Le raisonnement serait le même pour un train se déplaçant de B vers A. On comprend alors que tout déclenchement de capteur fait basculer l’état de la zone (de libre vers occupée ou réciproquement). Il est donc important de lancer le programme de surveillance avec les bonnes conditions initiales, par exemple, si on décide que les conditions initiales sont zone libre, alors il faut mettre en route le programme en absence de train sur la zone. On peut aussi décider que les conditions initiales sont zone occupée et dans ce cas, il faut démarrer le programme en présence d’un train sur la zone.

Supposons maintenant qu’un train se déplace de A vers B, la zone étant initialement libre. En arrivant sur le capteur C1, celui-ci déclenche et la zone devient occupée. Supposons que le train s’arrête et reparte en marche arrière (il refoule) : lorsque la locomotive repasse le capteur C1, celui-ci déclenche et la zone devient libre. Le train est sorti de la zone par où il est rentré et l’automatisme a fonctionné quand même. Le refoulement est pris en compte.

Pour les dimensions de la zone, la distance PN-frontière doit être supérieure à la longueur du plus grand train roulant ; ainsi, lorsque la locomotive ressort de la zone, l’ensemble du convoi est bien passé et le PN peut s’ouvrir (voir figure 2).

Cas de deux voies parcourues dans un seul sens

La figure 3 montre un PN avec deux voies, chacune étant parcourue dans un seul sens avec des trains qui roulent à gauche (cas général de la SNCF). On peut augmenter la largeur de la zone pour inclure les deux voies. Il faudra alors disposer deux autres capteurs C3 et C4 sur la deuxième voie.

Figure 3
Figure 3
PN à deux voies

La zone étant libre, un train arrive sur la voie 1 de A vers B ; il déclenche C1 et la zone devient occupée. Peu de temps après, un deuxième train se déplace sur la voie 2 de B vers A ; il déclenche C4 et la zone redevient libre alors qu’elle est en réalité occupée par les deux trains ! On voit que le système protégeant le PN ne fonctionne pas.

Pour s’affranchir de cette difficulté, on peut supposer que C1 et C4 sont des capteurs entrant (vu le sens de circulation des trains) alors que C2 et C3 sont des capteurs sortant. Le déclenchement d’un capteur entrant fait que la voie devient occupée et le déclenchement d’un capteur sortant fait que la voie devient libre ; on parle alors des voies et non de la zone. La zone est libre si les deux voies sont libres et elle est occupée dès qu’une des deux voies est occupée. Le système de protection du PN fonctionne mais la spécialisation des capteurs (entrant ou sortant) fait que le refoulement n’est plus pris en compte : si un train passe par C1, la zone devient occupée et le PN se ferme mais si le train ressort par C1 après refoulement, le déclenchement de ce capteur fait que la zone reste occupée et que le PN reste fermé alors que plus aucun train n’occupe la zone.

Cette solution n’est donc pas suffisante. 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.

Figure 4
Figure 4
PN à deux voies avec protection complète

Cette solution permet la circulation de trains dans n’importe quel sens sur n’importe quelle voie et peut aussi être extrapolée à un nombre de voies quelconque. Elle prend aussi en compte des bifurcations (aiguilles) situées en amont ou en aval du PN ; il suffit de bien définir les sous-zones pour chaque voie munie ou non d’aiguilles. Les capteurs doivent être positionnés suffisamment loin du PN pour que la préparation des feux et des barrières ait le temps de se faire et ceci n’est pas toujours facile à réaliser sur de petits réseaux comme TIB (Train’In Box) vendu par LR-Modélisme.

Cas général de faisceaux de voies

La figure 5 montre une configuration de voies avec aiguilles en amont ou en aval (ce cas correspond à la figure 9 de l’article Etude d’un passage à niveau multivoies). On y voit deux sous-zones Z1 et Z2 et 6 capteurs C1 à C6. C1 et C2 concernent la zone Z1 et C3 à C6 la zone Z2. L’automatisme fonctionne pour tous les sens de circulation et prend en compte le refoulement possible des trains.

Figure 5
Figure 5
PN avec convergence de voies

Mise en œuvre

Voici le cahier des charges à respecter :

  • Pour chaque zone ou chaque sous-zone, les capteurs peuvent être mis en parallèle sur une même entrée d’Arduino (une entrée par sous-zone) puisque leur rôle est identique (détecter un franchissement de la frontière de la zone ou sous-zone).
  • Chaque zone ou sous-zone a un état qui est une variable booléenne (par exemple, false pour libre et true pour occupé).
  • Tout déclenchement de capteur fait basculer l’état de la zone ou sous-zone concernée.
  • Le programme doit être lancé en respectant les conditions initiales (absence ou présence de train suivant que l’état initial est libre ou occupé).
  • Si une zone est constituée de sous-zones, toutes celles-ci doivent être libres pour que la zone soit libre.
  • Dès que la zone de protection du PN est occupée, le PN doit se fermer et le rester (sonnerie, feux, barrières). Lorsque la zone devient libre, le PN s’ouvre.
La fait de mettre tous les ILS de la zone sur une seule entrée n’est pas fait uniquement pour simplifier le montage ; ce choix permet une évolution du projet pour un PN à deux voies. En effet, si une zone est constituée de deux sous-zones (cas de la figure 4), celles-ci peuvent et doivent être surveillées par les entrées 2 et 3 de la carte Uno qui permettent une interruption externe. Ceci impose une modification du programme car tout ce qui est fait pour la première zone doit être répété pour la deuxième. Ensuite le programme doit faire un petit traitement logique des conditions de chaque sous-zone pour déterminer si la zone globale est occupée ou non.

Application au coffret Train’In Box (TIB)

Comme il n’y a qu’un seul train qui circule sur le réseau TIB, nous pouvons nous contenter de délimiter qu’une seule zone pour protéger le PN. La première chose à faire est de déterminer l’emplacement des capteurs ; ceux-ci doivent se trouver suffisamment loin du PN pour laisser le temps pour la manœuvre des barrières et aussi pour tenir compte de la longueur du plus long train qui circule sur le réseau. Sur un grand réseau, ce n’est pas difficile, mais sur un petit réseau comme TIB, c’est plus délicat. La figure 6 montre où placer les capteurs qui sont des ILS sur le réseau TIB (repérés par des points jaunes) ; ceux-ci divisent le réseau en deux portions quasiment identiques, ce qui fait que les barrières ne sont pas plus souvent fermées qu’ouvertes (dans la réalité, les barrières sont plus souvent ouvertes que fermées). Les ILS se trouvent à 0,65 m de part et d’autre du PN ce qui donne une longueur de voies surveillées de 1,30 m soit 47% de la longueur totale du circuit (approximativement 2,75 m pour la voie intérieure). Pour une vitesse "raisonnable" de la locomotive, les essais de circulation ont montré que le délai entre la détection et l’arrivée du train juste avant le PN est compris entre 2,5 et 4 secondes (ce qui est peu mais TIB est un petit réseau de début qui peut imposer quelques concessions : pas de trop grands trains, pas de délai entre le début de sonnerie et la fermeture des barrières, vitesse de roulement pas trop élevée pour les trains, etc.).

Figure 6
Figure 6
Emplacement des capteurs ILS sur le réseau TIB

Une fois positionnés, ces quatre ILS sont reliés à la carte Arduino Uno selon le schéma de la figure 7. Sur le réseau TIB, un seul train peut circuler à la fois, donc il n’y a pas besoin d’envisager des sous-zones et tous les ILS peuvent être reliés à la même entrée d’Arduino ; nous choisissons l’entrée numérique 2 car elle a la particularité de pouvoir provoquer une interruption.

Figure 7
Figure 7
Schéma pour relier les ILS à la carte Arduino Uno

Le programme suivant allume la LED L (LED_BUILTIN) reliée à la sortie 13 de la carte Uno chaque fois que la zone PN est occupée et permet de vérifier que nos trains sont bien détectés. Si la carte Arduino est reliée à un ordinateur, le programme affiche également dans le moniteur de l’IDE trois données :

  • un numéro de survol d’un ILS
  • l’heure de ce survol (en ms)
  • le temps écoulé depuis le survol de l’ILS précédent (en ms)
    Cet affichage n’est pas indispensable mais permet d’avoir le temps de parcours de la zone du PN et peut se révéler utile pour vérifier qu’il n’y a pas de déclenchement intempestif d’ILS [1] ; le programme fonctionne même si la carte Arduino n’est pas reliée à un ordinateur.
Le fait de faire apparaître le moniteur de l’IDE provoque un RESET de la carte Arduino ; il faut veiller à ce qu’un train soit sur la zone de protection du PN puisque cette zone est supposée occupée lors de l’initialisation.

Une routine d’interruption (changeEtat()) est exécutée chaque fois que l’entrée 2 passe de HIGH à LOW (front descendant) mais pour éviter que le même ILS déclenche deux fois de suite (rebond, problème de positionnement de l’aimant par rapport à l’ILS, etc.), on ne prend pas en compte un front descendant qui arriverait moins de deux secondes après le front descendant déjà pris en compte. Cela revient à dire que si la routine d’interruption est exécutée deux fois en moins de deux secondes, seule la première aura un effet pour changer l’état de la zone entre false (zone libre) et true (zone occupée). En fait, l’utilisation d’une interruption permet de ne pas louper l’approche d’un train par rapport à un ILS et la temporisation de deux secondes permet à la locomotive de dégager l’ILS pour ne pas avoir plusieurs déclenchements sur le même événement.

La fonction millis() ne s’incrémente plus à l’intérieur d’une routine d’interruption (ISR), aussi quand on l’utilise pour dater l’événement (survol ILS), elle renvoie la dernière valeur qu’elle avait avant l’exécution de l’ISR ; ceci n’est pas bien gênant car la précision recherchée n’est pas à ce point.

La boucle principale reprend l’état de la zone pour allumer ou éteindre la LED de la carte Uno, puis procède à l’affichage des trois données chaque fois qu’il y a survol d’un ILS.

/********************************************************************************
 * PN_TIB_survey.ino
 ********************************************************************************
 * Ce programme est dans le domaine public. Il surveille la zone du PN
 * Dernière mise a jour : 27 mai 2020 
 * pour eviter que ILS declenche deux fois lors du meme survol
 *******************************************************************************/
const byte ILS=2; // Entree commune pour tous les ILS
unsigned int compteur = 1;  // compteur d evenements (survol ILS)

volatile static boolean etatZonePN = true; // Initialiser avec trains en gare sur TIB
volatile static unsigned long old_top_debutISR;  // Date anterieure d appel ISR
unsigned long old_top = 0;  // variable pour afficher donnees utiles

void changeEtat() { // routine d'interruption (ISR)
  unsigned long top_debutISR = millis();  // date appel ISR
  if((top_debutISR - old_top_debutISR) > 2000) {
    // 2 secondes au moins entre execution ISR
    etatZonePN = !etatZonePN; // etat passe a etat oppose
    old_top_debutISR = top_debutISR;  // initialisation date anterieure d appel ISR
  }
} // fin de ISR

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200); // Communication avec le moniteur
  pinMode (ILS, INPUT_PULLUP);
  pinMode (LED_BUILTIN, OUTPUT);
  // changeEtat est la routine d'interruption sur l'entree ILS
  // elle est declenchee par un front descendant
  attachInterrupt (digitalPinToInterrupt(ILS), changeEtat, FALLING);
  digitalWrite (LED_BUILTIN, LOW);
} // fin de setup

void loop() {
  // put your main code here, to run repeatedly:
  if(etatZonePN == false) {digitalWrite (LED_BUILTIN, LOW);}
  if(etatZonePN == true) {digitalWrite (LED_BUILTIN, HIGH);}
  if(old_top_debutISR != old_top) { // Affichage pour chaque nouveau survol ILS
    Serial.print(compteur);
    Serial.print("     ");
    Serial.print(old_top_debutISR);
    Serial.print("     ");
    Serial.println(old_top_debutISR - old_top);
    old_top = old_top_debutISR; 
    compteur = compteur + 1;   
  }
} // fin de loop

Nous étudierons à la fin de cette série d’articles différentes possibilités pour améliorer la détection des trains.

Maintenant que nous savons détecter l’approche d’un train, il ne reste plus qu’à rajouter les autres actions à faire pour reproduire le comportement d’un passage à niveau automatique, comme par exemple ouvrir ou fermer les barrières en conséquence. Mais n’allons pas trop vite et continuons à travailler par étapes successives. Dans le prochain article, nous nous occuperons de faire clignoter les feux du PN.

[1La locomotive a parcouru 100 fois le tour du réseau TIB sans aucune erreur de lecture d’ILS.

8 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 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 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 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 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 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

Réagissez à « Passage à niveau géré par Arduino (1) »

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

Rubrique « Projets »

Les derniers articles

Les articles les plus lus