Les barrières des chemins de fer, aussi appelées passages à niveau, servent à sécuriser la traversée des voies ferrées par les véhicules et les piétons. Leur fonctionnement repose sur un ensemble de capteurs, de signaux lumineux et sonores, ainsi qu’un système de commande automatique ou manuel.
Principe de fonctionnement :
1- Détection du train
Des capteurs placés à une certaine distance du passage détectent l'approche du train (souvent par des circuits de voie ou des balises RFID).
Cette détection déclenche automatiquement le processus de fermeture des barrières.
2- Activation des signaux d'avertissement
Avant la fermeture des barrières, un signal lumineux rouge clignotant et une sonnerie avertissent les usagers de l’arrivée d’un train.
Sur certains passages, des feux clignotants sont aussi placés à l'approche du passage pour informer les conducteurs bien en amont.
3- Fermeture des barrières
Après quelques secondes d'avertissement, les barrières descendent progressivement pour bloquer l’accès à la voie.
Selon le type de passage à niveau, il peut y avoir une barrière simple (côté entrée) ou double (barrières des deux côtés pour empêcher tout franchissement).
Un dispositif de verrouillage empêche la réouverture tant que le train n'est pas passé.
3- Passage du train
Le train traverse le passage à niveau pendant que les barrières restent fermées.
Certains passages sont équipés de détecteurs qui s’assurent que personne ne reste coincé sur la voie.
4- Réouverture des barrières
Une fois le train passé et après un court délai de sécurité, les barrières se lèvent automatiquement.
Les signaux lumineux s'éteignent et la sonnerie s'arrête, permettant la reprise normale de la circulation.
Types de passages à niveau :
Automatique à barrières complètes : Deux barrières se ferment de chaque côté de la voie, empêchant tout passage.
Automatique à barrières semi-complètes : Une seule barrière par voie empêche les véhicules d’entrer, mais ne bloque pas entièrement la route.
À signalisation lumineuse seule : Présence de feux clignotants rouges et d’une alarme sonore, mais sans barrière physique (rare et souvent sur des routes peu fréquentées).
Manuel : Actionné par un opérateur sur place ou à distance (plus rare aujourd’hui).
Ce projet utilise une carte Arduino UNO pour commander deux barrières ferroviaires en fonction de la détection d’un train avec deux capteurs ultrasoniques HC-SR04. Les barrières sont actionnées par deux servomoteurs et des LEDs assurent la signalisation.
Le système repose sur la détection du train grâce aux capteurs ultrasoniques :
Capteur HC-SR04-1 (avant le passage à niveau) : détecte l'arrivée du train et déclenche la fermeture des barrières.
Capteur HC-SR04-2 (après le passage à niveau) : détecte que le train a quitté le passage et déclenche l'ouverture des barrières.
deux Servomoteurs : actionnent les barrières en les levant ou les baissant.
LED Rouge :Indique que la barrière est fermée (train en approche ou en passage).
Carte Arduino UNO
L’Arduino UNO est le cœur du système. Il lit les distances mesurées par les capteurs HC-SR04, prend des décisions logiques et commande les servomoteurs et les LEDs.
Capteurs ultrasoniques HC-SR04 (x2)
Les capteurs HC-SR04 mesurent la distance entre eux et le train.
Capteur 1 (arrivée) : détecte l'approche du train et déclenche la fermeture des barrières.
Capteur 2 (départ) : détecte que le train a quitté le passage et déclenche l'ouverture des barrières.
Servomoteurs SG90 (x2)
Les servomoteurs actionnent les barrières en les levant ou en les abaissant.
0° → Barrières ouvertes
90° → Barrières fermées
LEDs de signalisation
LED Rouge : Indique que la barrière est fermée (passage interdit).
Module d’alimentation 3.3V/5V
Il Fournit une alimentation stable de 5V et 3.3V aux composants (capteurs, servomoteurs, LEDs).
Breadboard :
Elle permet de connecter facilement tous les composants sans soudure.
Fils de connexion :
Ils sont utilisés pour relier les composants entre eux.
Pour le premier capteur sonore HC-SR04 on connecte :
la broche VCC à la broche 3.3V de l’Arduino
la broche Trig à la broche 3 de l’Arduino
la broche ECHO à la broche 4 de l’Arduino
la broche GND à la broche GND de l’Arduino
Pour le deuxième capteur sonore HC-SR04 on connecte :
la broche VCC à la broche 3.3V de l’Arduino
la broche Trig à la broche 8 de l’Arduino
la broche ECHO à la broche 9 de l’Arduino
la broche GND à la broche GND de l’Arduino
Pour le premier servomoteur on connecte :
fil rouge : fil de l’alimentation à relier à la borne 5V du module de l’alimentation
fil marron : fil à relier à la broche GND de l’Arduino
Jaune : fil de signal de positionnement branché à la broche 3 de l’Arduino
Pour le deuxième servomoteur on connecte :
fil rouge : fil de l’alimentation à relier à la borne 5V du module de l’alimentation
fil marron : fil à relier à la broche GND de l’Arduino
Jaune : fil de signal de positionnement branché à la broche 7 de l’Arduino
Pour les LEDs on connecte :
les bornes (-) des LEDs à GND de l’Arduino
la borne(+) du premier LED rouge à la broche 2 de l’Arduino
la borne(+) du deuxième LED rouge à la broche 7 de l’Arduino
Voici le programme permettant d’automatiser le système :
Vous devez importer cette bibliothèque HCSR04
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
#include <HCSR04.h> #include <Servo.h> Servo monServomoteur1; Servo monServomoteur2; const int LED1=2; const int servo1Pin=3; const int trig1Pin = 4; const int echo1Pin = 5; const int LED2=6; const int servo2Pin=7; const int trig2Pin = 8; const int echo2Pin = 9; int position1 = 90; int position2=90; // initialisation du 1er capteur avec les broches utilisees. UltraSonicDistanceSensor distanceSensor1(trig1Pin, echo1Pin); // initialisation du 2eme capteur avec les broches utilisees. UltraSonicDistanceSensor distanceSensor2(trig2Pin, echo2Pin); void setup(){ monServomoteur1.attach(servo1Pin); monServomoteur2.attach(servo2Pin); pinMode(LED1,OUTPUT); //règle la borne numérique numéro 7 de la carte Arduino en mode sortie pinMode(LED2,OUTPUT); //règle la borne numérique numéro 8 de la carte Arduino en mode sortie } void loop(){ if((((distanceSensor1.measureDistanceCm()+1)<6)&&(distanceSensor1.measureDistanceCm()+1)>0)) {// Si le capteurs HC-SR04 détecte l'arrivee du train digitalWrite(LED1,HIGH); // La LED rouge s'allume while (position1>0){ monServomoteur1.write(position1); // la barrière s'ouvre position1--; delay(10); } }else { digitalWrite(LED1,LOW); // La LED rouge s'eteint while (position1<90){ monServomoteur1.write(position1); // la barrière s'ouvre position1++; delay(10); } } if((((distanceSensor2.measureDistanceCm()+1)<6)&&(distanceSensor2.measureDistanceCm()+1)>0)) {// Si le capteurs HC-SR04 détecte l'arrivee du train digitalWrite(LED2,HIGH); // La LED rouge s'allume while (position2>0){ monServomoteur2.write(position2); // la barrière s'ouvre position2--; delay(10); } }else { digitalWrite(LED2,LOW); // La LED rouge s'eteint while (position2<90){ monServomoteur2.write(position2); // la barrière s'ouvre position2++; delay(10); } } } |
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info