LOCODUINO

Une barrière infrarouge

Simple mais avec de multiples possibilités grâce à l’Arduino

.
Par : Dominique

DIFFICULTÉ :

Pour détecter le passage des trains, plusieurs solutions sont possibles. La plus populaire est la détection de courant car elle est invisible mais elle nécessite de couper un rail.

Mais la barrière infrarouge a tout de même ses avantages :

  • Pas de coupure de rail,
  • Pas de chute de tension d’alimentation des rails (c’est indépendant)
  • On détecte la tête et la queue du train à un point précis du circuit !

Commençons par un exemple. Le schéma est simple.

Les ingrédients :

  • Un diode émettrice SFH415, émettant une lumière infrarouge de longueur d’onde 950 nano-mètre (nm pour les intimes). Il est important de noter cette longueur d’onde car le récepteur doit être accordé sur cette même valeur. Il est aussi préférable de choisir un diode dont l’angle d’ouverture est assez faible pour éviter d’influencer d’autres récepteurs. Cette diode est alimentée exactement comme une diode LED à lumière visible, avec une résistance série de 470Ω soit un courant de 10 mA sous 5V. Voir à ce propos « Fonctionnement et pilotage d’une DEL ».
  • Une diode réceptrice SFH205 dont la plage de réception est centrée sur 950 nm. Cette diode est montée en inverse et en série avec un résistance de forte valeur (220 KΩ). En présence de lumière infrarouge, un effet d’avalanche permet le passage d’un faible courant (25 micro-ampères) qui ne peut être détecté que par l’intermédiaire d’un amplificateur, ici un simple transistor.
  • N’importe quel transistor NPN devrait faire l’affaire. J’en ai profité pour utiliser mes fonds de tiroirs.
  • Une résistance de 2,2KΩ alimente le collecteur du transistor. C’est là qu’on récupère le signal de détection.
  • Une capacité de 10 microFarad stabilise le 5V au plus près du montage. N’oublions pas que nous sommes dans un milieu fortement parasité.
  • Un bornier à 3 points : +5V, Gnd et signal. On aurait pu aussi souder un de ces câbles à 3 conducteurs avec une prise femelle 3 points à un extrémité, qui servent beaucoup en radiocommande.

Voici un exemple de réalisation de 2 détecteurs dont j’ai monté les composants discrets sur une plaque pastillée. Les diodes sont soudées sur les connecteurs 2 points et raccordées au montage avec des fils assez longs pour pouvoir les placer facilement dans le décor en passant par des trous aménagés à cet effet.

On place les diodes IR émettrice et réceptrice de chaque coté des rails, de sorte que l’émettrice arrose la réceptrice. Ici le faisceau de l’émettrice est émis dans l’axe de la diode (son bout bombé sert de lentille convergente). La surface sensible de la réceptrice est la face bombée.

Il faut lire attentivement les fiches caractéristiques pour trouver ces détails primordiaux (sinon ça ne marche pas !).

Bien entendu, il faudra cacher ce détecteur dans le décor. Pour la diode réceptrice, j’ai confectionné une petite cabine technique de bord de voie avec une ouverture coté voie pour la réception de la lumière infrarouge. La diode émettrice est intégrée dans les buissons et les arbres du décor.

Astuce : Pour savoir si la diode émettrice fonctionne bien, on utilise un smartphone en mode appareil photo. La lumière infrarouge est visible par la caméra du smartphone et on la voit allumée.

La gestion du capteur par l’Arduino

Raccordons le signal sur une entrée digitale (il faut une entrée par capteur).

Un programme simple permet de tester le bon fonctionnement du capteur :

const int IRDetectorPin = 2;
const int ledPin =  13;

void setup() {
  pinMode(ledPin, OUTPUT);      
  pinMode(IRDetectorPin, INPUT);     
}

void loop(){
    digitalWrite(ledPin, digitalRead(IRDetectorPin));  
}

Ce programme se contente de recopier l’état du détecteur sur la led : celle-ci s’allume quand la barrière est interrompue.

La détection sophistiquée de la tête et la queue du train

Avec une dose plus importante de logiciel, on peut faire des miracles : Ce morceau de programme va :

  • valider la détection de début et de fin de convoi après une petite temporisation pour éliminer les détections parasites (moustique passant pas hazard)
  • éliminer les "trous" entre voitures ou wagons, par une autre temporisation

Ce croquis est tiré de l’exemple « Debounce » de l’IDE :

// constantes (car elles ne changent pas)
const int IRDetectorPin = 2; // pin du detecteur IR
const int ledPin = 13;       // pin de la LED

// Variables (car elle changent)
int ledState = LOW;      // led eteinte
int IRState;             // etat courant du detecteur IR
int lastIRState = LOW;   // etat precedant du detecteur IR (pour detecter un changement)

// variable de temps en millisecondes
long lastDebounceTime = 0;   // derniere fois que le detecteur a change
long debounceDelay = 1000;   // delai d'une seconde pour valider un changement

//------------------- SETUP ----------------
void setup() {
  pinMode(IRDetectorPin, INPUT);
  pinMode(ledPin, OUTPUT);

  // initialisation de la led
  digitalWrite(ledPin, ledState);
}

//-------------------- LOOP ----------------
void loop() {
  // lecture du detecteur IR dans une variable locale
  int reading = digitalRead(IRDetectorPin);

  // si le faisceau est coupe (reading == HIGH ou 1)
  // on attend assez longtemps pour ignorer les detections parasites
  // et en particulier les intervalles entre wagons 

  // le detecteur a-t-il change
  if (reading != lastIRState) {
    // armement du timer
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    // si le delai est atteint, le changement est valide
    // sinon le changement est ignore (parasite ou inter-wagon)

    // changement valide
    if (reading != IRState) {
      IRState = reading;
      // on repercute le changement sur le led
      ledState = IRState;
      digitalWrite(ledPin, ledState);
      
      // si IRState est HIGH, il s'agit de la tete du train
      // *** appeller ici le traitement de tete de train
      // par exemple : l'entree du train dans un canton
      
      // si IRSate est LOW, il s'agit de la queue du train
      // *** appeller ici le traitement de queue de train
      // par exemple : la sortie effective du canton 
      }
    }
   // on sauve l'etat du detecteur pour le tour de loop suivant
  lastIRState = reading;
  // ainsi, le moindre changement avant la fin du delai debounceDelay
  // va reinitialiser ce delai

}

Autre astuce, pour la maintenance des détecteurs

J’utilise une entrée analogique de l’Arduino. Ainsi, je peux faire, par logiciel, soit une mesure analogique (0..1023), soit une mesure digitale (0 ou 1) de la sortie du détecteur.

En effet, comme les diodes émettrices sont équipées d’une lentille convergente qui donne un faisceau très étroit, et comme on ne voit rien à l’oeil nu, il peut être difficile de réaliser un bon alignement de la led IR et du capteur. En faisant une lecture analogique, on obtient une valeur qui dépend de l’alignement. Cette valeur doit être la plus faible possible quand les 2 diodes se voient. Cela doit correspondre au niveau 0 logique.

Quand la lumière ne passe pas, la valeur est maximum, ou alors une lumière parasite vient perturber le capteur !

Dans ma réalisation, j’ai divisé la valeur analogique (0..1023) par 100 et je l’affiche sur un afficheur à 7 segments ou un LCD dans un mode calibrage. Je bouge alors la diode émettrice pour trouver une valeur inférieure ou égale à 2. Ainsi, je suis certain que la lecture digitale ensuite sera correcte.

Cette astuce va s’avérer très utile car les diodes sont parfois chahutées pendant la construction du décor et il faut permettre une maintenance facile des capteurs.

71 Messages

  • Une barrière infrarouge 24 mars 2015 11:59, par Savignyexpress

    Merci pour cet article très intéressant, en particulier pour l’astuce de la lecture analogique pour calibrer le système.

    En parlant de lumière parasite, quel est l’impact de la lumière ambiante, qui contient aussi des IR, sur ce système ?

    Ne devrait-on pas prévoir une modulation de la diode IR / démodulation du signal reçu pas la photodiode pour trier le signal utile de la lumière ambiante ?

    Répondre

    • Une barrière infrarouge 16 décembre 2019 06:11, par DUFOURMONT

      Bonjour, je trouve cela hyper intéressant.
      Je réfléchis actuellement à un système identique mais pulsé (pour des raisons d’autonomie) pour détecter le courrier.
      Sinon, avez vous exploré la piste de l’effet hall avec le composant A3211 ?

      Répondre

      • Une barrière infrarouge 16 décembre 2019 08:34, par Dominique

        Oui l’effet hall est consideré sur Locoduino comme les ILS, mais on ne détecte pas le courrier (le courant oui) en modélisme ferroviaire ;)

        Répondre

        • Une barrière infrarouge 16 décembre 2019 09:09, par DUFOURMONT

          Merci de votre réponse, mais bien évidemment l’effet Hall que je soumettais était pour détecter l’arrivée de courrier, mais indirectement, c’est à dire par manœuvre du volet (métallique) de la boîte aux lettres par le facteur.
          En fait je voulais juste savoir si vous aviez exploré le comportement du composant que je vous indiqué afin d’avoir éventuellement du Retour d’EXpérience.
          En tous cas merci encore.

          Répondre

          • Une barrière infrarouge 16 décembre 2019 09:26, par Dominique

            Pour votre application. Lisez la datasheet et testez avec un prototype. Voir une recherche sur le forum Arduino.

            Répondre

  • Une barrière infrarouge 24 mars 2015 12:29, par dominique

    Merci Savignyexpress,

    Cette question sur la lumière parasite est bien légitime. Mais avec l’expérience j’ai trouvé que ce qui compte c’est le choix du couple de diodes émettrices et réceptrices, bien centrées sur la même fréquence. Jusqu’à présent je n’ai jamais eu de détection parasite même en exposition avec des halogènes et des flashs de visiteurs.
    Et pourtant j’utilise ces détecteurs avec le bloc systéme et je n’ai jamais vu d’accident à cause de cela !

    il faut néanmoins prendre quelques précautions de bon sens :

    • s’arranger pour que la diode réceptrice tourne le dos aux sources parasites.
    • utiliser plusieurs systèmes de détection et un peu de redondance, le logiciel faisant le tri ensuite.

    Bien sur, en cas de problème, on peut utiliser une modulation avec un code, ce qui complique un peu, mais pas trop.

    Répondre

  • Une barrière infrarouge 24 mars 2015 13:27, par Francis8

    Avez-vous essayé d’utiliser la réflexion sous les voitures (ou wagons) afin de disposer les diodes, non pas de chaque côté de la voie, mais sous la voie avec une orientation vers le haut.

    Ainsi, lorsqu’un train ou voiture passe, la lumière IR rebondie sous le véhicule et vient ’alimenter’ la diode réceptrice.

    Cela permet d’avoir une détection par voie au lieu par tronçon (cas d’une double voie ou la détection proposée n’est pas très commode).

    Reste à savoir le niveau reçu suivant les locomotives, voitures et/ou wagons. A tester je pense.

    Répondre

    • Une barrière infrarouge 24 mars 2015 18:12, par dominique

      C’est une excellent suggestion.

      Mais cela me semble difficile étant donné que le dessous des locos et des wagons est très tarabiscoté. Ça doit donner moultes détections aléatoires, d’autant que le dessous est souvent noir donc peu favorable aux réflexions.

      On trouve par contre des système de détection à code barre : une mini-étiquette blanche avec des barres noires est collée sous une loco et un détecteur IR à réflexion fonctionne comme tu l’écris.

      Mais un nouveau détecteur IR à réflexion vient de sortir : le QRE1113 chez Sparkfun qui mesure moins de 4 mm de côté et contient l’émetteur et le récepteur.

      Je compte bien le tester un de ces jours.

      Répondre

  • Une barrière infrarouge 24 mars 2015 14:52, par DDEFF

    Merci pour cet article où l’on apprend encore des choses utiles alors que le sujet paraissait simple.

    Mention spéciale pour la simplicité du calibrage.

    On oppose souvent la détection par conso de courant et les autres méthodes car elles ne verraient pas les pertes de wagons.
    Si on complique un peu ta méthode, ne pourrait-on pas compter les espaces de wagons et en déduire qu’on en a perdu ?

    Répondre

    • Une barrière infrarouge 24 mars 2015 17:54, par dominique

      J’adore ce genre de contribution !
      Nous disposons d’une richesse de capteurs largement sous-exploitée.

      Ce que tu suggères existe à la SNCF : certains systèmes comptent les essieux en début de canton et en fin de canton, pour vérifier qu’il ne manque aucun wagon.

      Ce n’est pas très facile de positionner une barrière au niveau des essieux, surtout en N.

      En mettant la barrière plus haut, on peut compter les wagons.

      Dans mon premier réseau je n’y avait pas pensé, je voulais seulement "voir" un convoi sur toute sa longueur, d’où le debouncing pour masquer les intervalles entre wagon et aussi la barrière en biais pour les eviter ou les réduire.

      Mais dans mon réseau en cours de construction, je ne vais pas manquer de compter les wagons par endroits (surtout les zones cachées).

      Les barrières infrarouges servent aussi à encadrer un détecteur RFID, pour déterminer le sens de roulement d’une part, et pour limiter l’émission du capteur RFID aux seuls passages de train, ce qui permet de placer plusieurs capteurs RFID dans le réseau (car une émission permanente interdit plus d’un seul capteur).

      Là on a déjà un exemple de coopération entre capteurs.
      Je suis partisan d’utiliser plusieurs types de capteurs en même temps (consommation de courant, IR, RFID, Hall), chacun pouvant compléter utilement les autres, nos Arduinos étant capables de gérer tout cela.

      J’aurai l’occasion d’y revenir avec des exemples concrets.

      Répondre

      • Une barrière infrarouge 25 mars 2015 08:56, par DDEFF

        Merci
        Une autre piste : la fibre optique.
        Quand on éclaire une fibre d’un côté, la lumière ressort de l’autre, assez puissante si la fibre n’est pas trop coudée (c’est important). Et il faut être bien en face.
        Mais une FO, ça se planque facilement.
        Ceci dit, l’alignement doit être délicat.
        Surtout si on fait pareil avec le récepteur ... :-)

        Répondre

  • Une barrière infrarouge 24 mars 2015 22:41, par Jean-Claude papybricolo

    Alors ça c’est SUPER j’y vois déjà des utilisations :

    gare cachée

    tunnels

    déclenchement de barrière de PN ....ainsi que les sons

    etc...

    Répondre

  • Une barrière infrarouge 24 mars 2015 23:59, par Dominique

    Merci Jean-Claude,

    ... et c’est très fiable avec une détection garantie : aucun train n’y échappe, alors que d’autres capteurs (ILS, RFID, Hall) peuvent rater un passage trop rapide.

    On remarquera le "vieux" transistor BC172A qui traine encore en quantité dans mes tiroirs, qui serait avantageusement remplacé par un BC54x plus moderne.

    Répondre

    • Une barrière infrarouge 23 août 2015 14:07, par Béraud Henri

      Bonjour et merci pour cet article Oh combien intéressant !
      Je cherche désespérément un équivalent au BC172A ou BC54x.
      Pouvez-vous m’éclairer ?

      Avec mes remerciements par avance.

      Henri Béraud

      Répondre

  • Une barrière infrarouge 10 mai 2015 14:55, par railyrabbit

    J’ai trouvé un autre montage en fouillant sur la toile. Je n’ai pas encore essayé mais ça semble encore plus simple !
    Peut-être moins précis avec l’omission du transistor ?

    Voir en ligne : Ardutrain - Train Detector Module with IR V2

    Répondre

  • Une barrière infrarouge 10 mai 2015 19:57, par Dominique

    Oui ce circuit semble très simple et il faut faire des tests de portée (distance de détection) qui doit varier en fonction de la matière et de la peinture des locos et wagons.

    En tout cas la description est très claire. Merci pour ce lien.

    J’ai peur que l’économie d’un transistor et surtout de la coupure du faisceau complique sérieusement le logiciel. Mais des tests sont à faire.

    J’espère qu’un volontaire nous fera part des résultats !

    Répondre

  • Une barrière infrarouge 23 août 2015 14:29, par dominique

    Le choix du transistor n’est pas du tout critique vu les conditions d’utilisation. Je dirai que n’importe quel transistor bipolaire NPN standard et courant devrait faire l’affaire. Comme le 2N2222.
    Il y en a plein les catalogues de Selectronic et Conrad. Vous en avez sûrement dans vos tiroirs ou ceux des voisins bricoleurs.

    Le plus important est le choix du couple diode émetteur/récepteur, avec la même fréquence lumineuse.

    Quand au mode réflectif, il faut bien faire des essais :)

    Répondre

  • Une barrière infrarouge 19 janvier 2016 14:59, par Gerard31

    {}Bonjour,

    Je suis au moins intéressé par la réalisation de ce projet mais je n’arrive pas à trouver de fournisseurs (parmi ceux que je connais ) qui puissent me fournir des sfh415.

    Une adresse ? Une idée ?

    D’avance merci

    Gérard

    Répondre

  • Une barrière infrarouge 19 janvier 2016 16:21, par Dominique

    Farnell, Digikey, Conrad en ont, d’après une rapide recherche sur le net.

    Vous pouvez essayer aussi des équivalents, pourvu que les diodes émettrices et réceptrices soient bien centrées sur la même fréquence.

    j’espere que vous allez trouver rapidement

    dominique

    Répondre

  • Une barrière infrarouge 19 janvier 2016 23:27, par Gerard31

    Merci à tous les deux ; je vais consulter dés demain ces adresses

    Bonne nuit

    Répondre

  • Une barrière infrarouge 19 février 2016 22:02, par Gerard31

    Bonsoir,
    On progresse et j’ai monté un premier détecteur sur un CI maison.
    Les diodes utilisées sont sur 940nm mais l’angle est trop large +-20deg.
    J’ai repris l’article depuis le début mais je me pose une question pour le test avec le premier programme.
    Je sais que la diode emission fonctionne (vérifié au "smartphone")avec une alimentation indépendante.
    Pour le test peut-on utiliser le 5v de l’Arduino ou doit-on utiliser une alim indépendante en n’oubliant pas de raccorder les masses ?
    Merci pour votre aide et amitiés arduinesques
    Gérard31 éternel béotien en éléctronique

    PS j’ai bien trouvé les SFH205 et 415 sur Conrad en Allemagne mais j’ai trop peu d’accointance avec la langue de Goethe. Je verrai les autre sites.

    Répondre

  • Une barrière infrarouge 19 février 2016 22:22, par dominique

    Oui on peut utiliser le 5v de l’Arduino, c’est même fait pour ça, à condition de ne pas dépasser l’intensité maxi décrite dans l’article sur le UNO.

    Pour une diode émettrice sur le 5v essayez avec une résistance de 470 ohm soit environ 10 mA

    Répondre

  • Une barrière infrarouge 20 février 2016 22:14, par Gerard31

    Bonsoir Dominique,

    Voici les derniers résultats : ça fonctionne.
    J’ai eu peu de mal au début avec l’IDE 1.0.5 pour la compil mais le passage en 1.6.7 a tout remis dans l’ordre.
    Au début pas de fonctionnement car j’avais laissé les diodes verticalement ; heureusement le smartphone m’a montré la lentille de la diode et après un coup de pince adéquat la diode le l’Arduino s’allume au rythme de l’obstacle passé entre elles.
    Voici le cliché

    Amitiés

    Gérard

    Répondre

  • Une barrière infrarouge 20 février 2016 22:19, par dominique

    Et bien en attendant le cliché, je vous dis bravo !!

    C’est vrai que ce n’est pas l’endroit idéal pour envoyer une image. Sur le forum, c’est prévu pour cela :)

    Répondre

  • Une barrière infrarouge 20 février 2016 22:22, par dominique

    Sinon envoyez-moi votre image et, si elle est sympa, je l’ajoute en fin d’article !

    Répondre

  • Une barrière infrarouge 23 février 2016 09:09, par Dominique

    Gérard,

    Voilà votre image est maintenant dans votre post

    Amicalement

    Répondre

    • Une barrière infrarouge 23 février 2016 14:40

      Bonjour Dominique,

      Merci pour cette insertion.
      Les diodes utilisées sont en émission SFH4546 et BPV10NF en réception, avec un angle trop large, mais suffisantes pour valider l’expérimentation.
      Y a plus qu’à ! Test sur un anneau en N et mise en service sur du HO sur une plus grande surface.

      J’encourage d’autres "curieux" à s’intéresser à ce sujet qui est très simple à mettre en œuvre.
      Amitiés.

      Gérard

      Répondre

  • Une barrière infrarouge 15 mai 2016 22:36, par Cyril

    Bonsoir,

    Je n’ai pas réussi à trouver vos références de led infrarouge chez Selectronic, je n’ai trouvé que :

    • LED infrarouge IR333-A
    • Phototransistor PT334-6C
      Est ce que cela fonctionnera malgré tout ?
      D’avance merci, sinon pouvez m’indiquer quelles références chez selectronic utiliser.

    Répondre

  • Une barrière infrarouge 16 mai 2016 18:37, par dominique

    Bonjour,

    J’ai regardé rapidement des fiches caractéristiques de ces composants.
    1) ils sont tous les 2 centrés sur la même fréquence 940 nm donc ça devrait marcher
    2) l’émetteur a besoin de 20 mA au moins, ce qui n’est pas rien, mais c’est mieux que la sfh415
    IR333 : intensité lumineuse 20 mW/sr à 20 mA
    SFH415 : intensité lumineuse 25 mW/sr mais à 100 mA
    3) les récepteurs
    SFH205 : λ=950nm,Ee =1mW/cm2,VR =5V IP =60μA
    PT334 : λ=950nm,Ee =1mW/cm2,VR =5V IP =3500μA (plus sensible)

    Je pense donc que ce couple de diode/phototransistor est meilleur que celui que j’ai utilisé.
    Le principal reproche serait la transparence du plastique du récepteur, donc sans filtre IR rouge, qui peut être perturbé par la lumière ambiante.
    Je n’ai rien vu sur l’angle de réception (+/- 60° pour le SFH205) qui peut limiter la lumière parasite.

    Il ne vous reste plus qu’à essayer puisque vous les avez achetés :)
    Dites nous ce que vous en pensez.

    Merci d’avance

    Répondre

  • Une barrière infrarouge 18 juin 2016 10:33, par Cyril

    Bonjour,
    J’essaye de faire fonctionner ce montage en utilisant les interruptions mais cela ne fonctionne pas, y a t il quelque chose de particulier à faire ou bien ce n’est pas compatible ? j’utilise un arduino Méga. D’avance merci :)

    Répondre

    • Une barrière infrarouge 18 juin 2016 12:10, par Dominique

      Bonjour Cyril,

      C’est un peu court pour diagnostiquer ce qui ne va pas !
      Je vous propose d’ouvrir un fil sur le forum pour décrire votre montage et le programme que vous avez écrit.
      On verra ensuite ce qu’il faut faire.

      A priori il n’y a pas d’impossibilité à utiliser les interruptions.

      Merci d’avance.

      Répondre

  • Une barrière infrarouge 25 juillet 2017 19:54, par Falcon

    Bonjour pourriez vous faire une schema detaillé avec l’arduino

    je possède les diodes IR émettrices et réceptrices, un transistor
    je voudrais avoir la diode réceptrice sur l’arduino et la diode émettrice indépendante avec une pile 9v
    Comment faire ?
    Merci d’avance

    Répondre

    • Une barrière infrarouge 26 juillet 2017 10:03, par Dominique

      Votre question contient la réponse !
      Il suffit de séparer la diode émettrice et sa résistance de limitation de courant du schéma donné dans l’article.
      Vous pouvez alors l’alimenter avec un 5 V séparé.
      Le reste ne change pas : 3 fils reliés à l’Arduino (5V, GND et S relié à la pin de votre choix) ne nécessite pas vraiment un schéma.
      Si vos composants ne sont pas les même que ceux de l’article, consultez leur datasheet pour y trouver les adaptations nécessaires.
      Bon courage.

      Répondre

  • Une barrière infrarouge 22 janvier 2019 07:21, par Francois Constant

    Bonjour,
    Tout cela est très intéressant, et je vous en remercie.
    Ma question est la suivante :
    comment piloter un relais 12 volt a partir de ce signal et au travers de l’arduino,et quel est le code.
    D’avance merci

    Répondre

  • Une barrière infrarouge 22 janvier 2019 08:59, par Dominique

    Vous avez ce genre de circuit tout fait :
    relai 12v commandé par Arduino

    qui vous montre l’interface entre l’Arduino et le relai.

    et un très bon article Relais électromagnétique

    Répondre

  • Une barrière infrarouge 24 février 2019 12:21, par Serge

    Bonjour
    J´aimerai commander par IR un servomoteur ( aiguillage ) avec arduino UNO.
    Est-ce possible ?
    Pourrai-je avoir un exemple de programmation.
    D´avance merci

    Répondre

    • Une barrière infrarouge 24 février 2019 13:31, par Dominique

      Bonjour Serge,

      Faites un peu de recherche sur le site et vous trouverez facilement que c’est possible ainsi qu’une multitude d’exemples.

      Bon courage

      Répondre

  • Une barrière infrarouge 26 février 2019 10:28, par Serge

    Merci Dominique,
    J’ai déjà fait pas mal de recherches et je ne trouve pas... . Je débute avec Arduino et je sais juste faire clignoter quelques leds... Si quelqu´un peut me donner un petit coup de main, merci...
    A+
    Serge

    Répondre

    • Une barrière infrarouge 26 février 2019 13:53, par Dominique

      Vous n’avez pas beaucoup cherché :

      Commencez par une recherche générale sur Google "commande servomoteur infrarouge arduino", ça donne plus de 4 millions de réponses.

      La première contient votre réponse à mon avis :
      https://forum.arduino.cc/index.php?...

      Comme vous êtes débutant, la suivante est un cours sur OpenClassRoom qui vous serait utile.

      Locoduino n’apparait pas dès le début de la recherche car il n’est pas très courant de commander un servo (un aiguillage) par IR en modélisme ferroviaire.

      J’espère vous avoir aidé.

      Répondre

  • Une barrière infrarouge 7 octobre 2019 22:31, par Gab

    Bonjour,
    Est-ce que ce sketch serait applicable à une detection par courant sur une voie bidirectionnelle pour detecter le sens de marche ?
    Merci et bravo pour l’article !

    Répondre

  • Une barrière infrarouge 8 octobre 2019 10:30, par msport

    Le sketch ne fait qu’éliminer des rebonds et assimilés. Ça peut être utile pour une détection par consommation de courant. Mais pour la détection du sens de marche, ça reste à faire.

    Répondre

  • Une barrière infrarouge 15 mai 2020 15:34, par Antoine

    Bonjour,
    Je souhaite réaliser un dispositif équivalent pour déclencher un chronomètre quand une bille glisse sur un plan incliné.
    Est-ce que cela pourrait fonctionner ? Je me demande si la vitesse de la bille ne peut pas être un frein à la détection (surtout à l’arrivée quand la bille aura acquis de la vitesse !). typiquement je ne dépasserai pas les 3m/s.
    Merci pour votre réponse !
    Antoine

    Répondre

  • Une barrière infrarouge 15 mai 2020 19:21, par Dominique

    Bonjour,
    s’agit-il d’un projet ferroviaire ?
    car un modèle réduit à 3m/s, c’est délirant ;)
    sinon pour savoir si ça marche le mieux est d’essayer, c’est très simple à faire.

    Répondre

    • Une barrière infrarouge 15 mai 2020 22:37, par Antoine

      Pour le moment non c’est pas un projet ferroviaire ! J’attends que ma cave soit finie pour faire une pièce pour mes trains lego 9V des années 90.
      Là pour le moment c’est pour illustrer une expérience en cours (je suis prof de physique), pour calculer la vitesse d’une bille qui descend une pente. Et la vitesse à l’arrivée est de l’ordre de 3m/s, donc je me demande si ce dispositif saura détecter une telle vitesse !

      Répondre

      • Une barrière infrarouge 16 mai 2020 12:40, par Jean-Luc

        Bonjour,
        Au doigt mouillé, la période d’échantillonnage de l’entrée avec juste deux digitalRead pour deux capteurs (1 au début de la trajectoire, 1 à la fin) est inférieure à 20µs. Vous n’avez pas besoin de debounce. Donc l’erreur sur l’instant est de 20µs. Donc avec deux barrières, les deux pires cas sont

        • une lecture du premier capteur juste après que la bille soit entrée dans le champ et le second 20µs après que la bille soit entrée dans le champ. Donc une mesure du temps de 20µs trop long
        • l’inverse. Donc une mesure du temps de 20µs trop court.
          vous avez donc une erreur de ±20µs
          À 3m/s, en 20µs, la bille parcoure 0,06mm. Je vous laisse estimer l’erreur de mesure. On peut également voir que pour qu’un capteur rate la bille (16mm de Ø) en supposant qu’il soit aligné sur son centre, il faudrait que sa vitesse soit telle qu’elle parcoure plus de 16mm en 20µs, soit 800m/s (je fais abstraction de la capacité de l’électronique du capteur ceci dit, c’est certainement beaucoup moins)

        Répondre

        • Une barrière infrarouge 16 mai 2020 13:30, par Antoine

          Pas mal comme étude !
          Donc en gros ca devrait marcher correctement et je devrai avoir une reproductibilité assez correcte !
          Je vais commander le matériel !

          Répondre

  • Une barrière infrarouge 15 mai 2020 22:54, par Dominique

    Je reitère donc mon conseil : pour savoir si ça marche pourquoi ne pas essayer ? l’investissement est très minime.
    Car je n’en suis pas certain, sauf si les détections sont assurées (rapides) par un peu de matériel qui compenserait la lenteur éventuelle du logiciel. Mais s’il ne fait que cela il devrait y arriver. Mais je ne garanti rien.
    Comme on sort des applications ferroviaires, je vous conseille de consulter le forum Arduino, fait pour cela.

    Répondre

    • Une barrière infrarouge 15 mai 2020 22:58, par Antoine

      Je vais commander et essayer !
      En tout cas je vais consulter le site car je suis passionné de train, et je rêve de bidouiller de l’arduino pour fermer des passages à niveau quand le train approche !

      Répondre

  • Une barrière infrarouge 15 mai 2020 23:01, par Dominique

    Merci pour vos encouragements et invitez vos élèves à commencer un réseau : c’est très riche d’enseignement !

    Répondre

    • Une barrière infrarouge 16 mai 2020 13:29, par Antoine

      Ahhh je doute qu’ils soient réceptifs à ce genre de chose malheureusement ! Malheureusement aujourd’hui, à part s’abrutir sur un téléphone, regarder des vidéos de youtubeurs au qi inférieur à celui d’une huitre, pas grand chose ne les intéresse...
      Mais je garde le réseau de train pour mes enfants ! Mon plus grand (3 ans) joue déjà avec mes trains lego 9V. Je pense commencer le HO dans quelques temps c’est plus réaliste et plus beau !

      Répondre

  • Une barrière infrarouge train module 73379 21 mai 2021 17:21, par borzeix

    Bonjour

    Je voulais savoir si il est possible de faire fonctionner un servo moteur avec cette barrière et une carte arduino uno
    Je n y arrive pas je dois avoir un problème de branchement de fils sur le module

    Sos

    Merci très cordialement

    Répondre

    • Une barrière infrarouge train module 73379 21 mai 2021 17:38, par Dominique

      Oui c’est certain que c’est possible.
      Peut-être devriez-vous vous familiariser avec la carte UNO et la commande d’un servomoteur dont il y a quantité d’informations et d’exemples sur ce site.

      Répondre

  • Une barrière infrarouge 21 mai 2021 19:04

    Merci de confirmer ce que je pensais

    Je sais piloter un servo avec une télécommande infrarouge,

    Mais je n’arrive pas à piloter unservo avec le module 73379

    si vous pouviez me dire comment je dois brancher les fils de sortie du module j ai essayé un sur le ground et l autre sur une pin et vice versa cela ne fait rien
    Je lance un sos
    très cordialement borzeix

    Répondre

  • Une barrière infrarouge 21 mai 2021 19:15, par Dominique

    Je ne connais pas ce module 73376 de Conrad (barrière infrarouge ???) mais je vous conseille ce qui est décrit dans l’article et qui fonctionne bien.

    Répondre

  • Une barrière infrarouge 22 mai 2021 10:28, par msport

    Bonjour,
    comme il s’agit d’un dépannage, passez sur le forum. (inscription nécessaire)

    Voir en ligne : Une barrière infrarouge

    Répondre

  • Une barrière infrarouge 31 mai 2023 08:45, par Bob_M

    Vous paraît il possible de combiner la barrière infrarouge avec une fibre optique afin de conduire la lumière à un endroit précis ?
    Application visée : compteur d’essieux
    - L’idée serait de percer un rail juste au-dessous du plan de roulement et de conduire (depuis l’extérieur de la voie) la lumière IR émise à travers ce trou (de même diamètre que la fibre optique) et de la détecter par le récepteur placé entre les rails (également au-dessous du plan de roulement) de telle sorte que le boudin de roue soit détecté lorsqu’il fait écran.
    - pour fiabiliser le comptage, on pourrait doubler le dispositif à une distance assez courte pour que le boudin de la même roue occulte simultanément les 2 barrières : ainsi, on pourrait déterminer le sens de passage de l’essieu en analysant la séquence d’apparition des 2 signaux

    Que pensez-vous de cette idée ?
    (peut-être la fibre optique serait inutile si on pouvait placer le même émetteur très près des 2 trous (à l’extérieur du rail) et s’il avait un angle d’émission suffisant pour influencer 2 récepteurs placés intérieurement aux 2 rails, ce qui permettrait une double détection à faible distance)

    Répondre

    • Une barrière infrarouge 12 septembre 2023 17:21, par Frederic Delattre

      Bonjour Bob_M, j’ai la même idée depuis quelques mois ; en cherchant du côté des détecteur encodeur (du type détection IR de passage d’une roue crantée), il y a des solutions si on considère le rail comme ... une roue crantée de rayon infini ! la limite reste l’intégration, et l’écart par rapport au besoin d’un capteur sans impact sur la voie (pas de perçage, pas de coupure).

      Donc, oui l’utilisation de fibres optiques pour amener l’émission et la détection au plus près est une bonne idée ; entailler le rail du diamètre de la fibre au lieu de percer le rail sous le champignon est peut être plus facile en "post-installation" et permet d’éviter le problème potentiel de hauteurs de boudin insuffisantes ; on doit pouvoir intégrer le couple de fibres E/R (Emetteur / Recepteur) dans un appareil de voie fictif tel que une pédale d’appel ou autre dispositif réaliste ; peut-être aussi intégrer un couple d’E/R à distance ultra précise pour mesurer la direction, compter les roues (avec double comptage), mesurer la vitesse (avec moyenne sur plusieurs essieux pour limiter l’incertitude).

      bref, avez-vous fait des essais de votre idée depuis votre post ?

      Répondre

  • Une barrière infrarouge 31 mai 2023 20:02, par Dominique

    Bonjour,
    Je trouve que c’est une idée très intéressante à tester et à présenter ensuite dans un article ou un projet. Un trou dans un rail pour le passage de la fibre me semble plus réaliste que pour une diode IR, surtout en N ou Z !!

    Répondre

  • Une barrière infrarouge 9 août 2023 11:04, par ABEL

    bonjour,
    Je vous remercie pour la documentation que vous pouvez apporter à tout ceux qui balbutient en programmation et dont je suis. Merci aussi d’avoir rétabli le site qui me manquait en attendant.
    J’ai réalisé le montage le retrosignalisation qui fonctionne et informe bien mon ESU de la situation d’un canton. Cependant, ayant opté pour une détection IR par mise à la masse du signal à la rupture du faisceau IR, je bute sur le fait que l’information est inverse. Mon ESU indique canton occupé quand le faisceau n’est pas interrompu et inversement.
    Que puis-je faire pour inverser l’information ? Modifier le montage des détecteurs ou rajouter une ligne de code sur le programme MEGA_S88 ?
    Merci pour votre aide, bien cordialement, Louis.

    Répondre

  • Une barrière infrarouge 9 août 2023 15:32

    Bonjour,

    comment faites-vous le lien avec le programme MEGA-S88 ?

    sinon, dans celui du détecteur, vous pouvez inverser le résultat en remplaçant la ligne

    digitalWrite(ledPin, ledState);

    par
    digitalWrite(ledPin, !ledState);

    avec le ! qui inverse la valeur de ledstate.

    ou chercher comment inverser les entrées dans l’ESU (ici je ne sais pas)

    Répondre

    • Une barrière infrarouge 9 août 2023 20:31, par ABEL

      Bonsoir,
      Merci pour réponse rapide. Même en vacances le service est bien là ! Bravo.
      J’ai repris le programme du projet rétrosignalisation téléversé sur MEGA avec la bibliothèque S88, mais préféré la détection par IR à la consommation de courant : pas de coupure à prévoir et donc une mobilité des capteurs faciles au cas où ...
      Et tout marche bien sur mon ECOS, à part l’allumage des cantons occupés quand le faisceau n’est pas interrompu, donc en l’absence de train. Je vais suivre votre conseil dès demain, chercher et modifier la ligne du code et vous rends compte du résultat.
      Merci, bonne soirée,
      Louis

      Répondre

    • Une barrière infrarouge 9 août 2023 23:15, par Jean-Luc

      Bonsoir,

      J’ai plutôt l’impression que c’est la première ligne du loop qu’il faut changer de :

      int reading = digitalRead(IRDetectorPin);

      en

      int reading = ! digitalRead(IRDetectorPin);

      Répondre

      • Une barrière infrarouge 10 août 2023 09:37, par ABEL

        Bonjour,
        Merci pour votre intervention et conseil. Cependant, la ligne que vous me proposez de modifier fait partie du code "barrière IR" que je n’utilise pas !
        J’utilise le code proposé dans le projet "rétrosignalisation" de Jean-Claude et ne sais quelle(s) ligne(s) modifier. A moins de refaire tous mes détecteurs, et il y en a 46 !
        Merci.

        Répondre

  • Une barrière infrarouge 10 août 2023 20:52, par Louis

    C’est bien ça. Projet du 21/12/15 de JP Claude
    Bonne soirée

    Répondre

    • Une barrière infrarouge 11 août 2023 00:41, par Jean-Luc

      D’accord. Je pense que dans le code à la fin de loop :

            if (!digitalRead(i)) {
              bitSet(sensors,i-4);
            }

      il suffit de retirer le !

      Répondre

  • Une barrière infrarouge 11 août 2023 11:14, par Louis

    Bonjour Jean-Luc,
    Un grand merci ! J’ai modifié la ligne 165 du code et ça marche très bien sur le premier module. Reste à brancher les suivants pour voir, mais il n’y a pas de raison pour que ça ne suive pas.
    Bravo et merci.
    Louis

    Répondre

Réagissez à « Une barrière infrarouge »

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