La signalisation ferroviaire SNCF est l’un des éléments les plus fascinants à reproduire en modélisme ferroviaire.
Bien plus qu’un simple décor lumineux au bord des voies, elle donne du réalisme, structure l’exploitation du réseau miniature et permet de comprendre la logique de circulation des trains : arrêt, ralentissement, protection d’un itinéraire, gestion des aiguillages ou espacement des convois.
Sur un réseau miniature, mettre en œuvre une signalisation inspirée de la SNCF consiste donc à trouver le bon équilibre entre fidélité au réel, simplicité de câblage, lisibilité pour l’utilisateur et compatibilité avec les automatismes choisis.
L’objectif est de vous guider pas à pas dans la compréhension des principaux signaux français. L’UAICF Nevers-Vauzelles a conçu une carte électronique utilisant un Arduino NANO pour permettre une mise en oeuvre concrète au modélisme ferroviaire, que votre réseau fonctionne en analogique, en digital DCC ou avec une automatisation plus avancée.
Sommaire
- Signalisation lumineuse SNCF
- Principe de gestion des signaux lumineux
- Programme Arduino pour la gestion des signaux lumineux
- Tester le fonctionnement avec Wokwi
- Circuits électroniques
- Signaux cible
- Paramétrage avec l’application Processing
- Tous les fichiers source
Signalisation lumineuse SNCF
Dans le cadre du modélisme ferroviaire, il n’est pas toujours nécessaire de reproduire l’intégralité de la réglementation SNCF. L’objectif est plutôt de construire une signalisation cohérente, lisible et crédible, capable d’expliquer visuellement ce qui se passe sur le réseau : un canton libre, un train arrêté, une aiguille en déviation, une entrée de gare protégée ou une manœuvre en cours.
Voici une présentation de la signalisation lumineuse qui pourra être mise en oeuvre avec la carte Arduino et le programme associé développé par l’UAICF Nevers-Vauzelles.
Voie Libre

La voie libre est l’indication la plus simple à comprendre : elle autorise le train à poursuivre sa marche normale si rien ne s’y oppose.
En signalisation lumineuse SNCF, elle est généralement représentée par un feu vert. Sur un réseau miniature, c’est l’indication idéale pour matérialiser un canton libre, un itinéraire établi ou une sortie de gare sans contrainte particulière.
Sémaphore

Le sémaphore est un signal d’arrêt lié à l’espacement des trains. En signalisation lumineuse, il se présente généralement sous la forme d’un feu rouge unique.
Il peut être franchissable sous conditions dans la réalité, après arrêt et marche à vue, mais en modélisme on le traduit le plus souvent par l’occupation du canton suivant.
Carré

Le carré est un signal d’arrêt absolu. En signalisation lumineuse, il est représenté par deux feux rouges.
Il protège une zone dangereuse ou conflictuelle : entrée de gare, aiguille, bifurcation, croisement d’itinéraires, voie occupée ou zone non autorisée.
En modélisme ferroviaire, le carré est le signal à privilégier pour les zones où le train ne doit jamais s’engager tant que l’itinéraire n’est pas correctement établi. Il apporte beaucoup de réalisme à l’entrée ou à la sortie d’une gare.
Carré Violet

Le carré violet est utilisé sur les voies de service, les dépôts, les triages ou les zones de manœuvre. Il est représenté par un feu violet.
Il impose également l’arrêt absolu, mais dans un contexte différent du carré classique, davantage lié aux mouvements de service qu’à la circulation sur voie principale.
Sur un réseau miniature, il est très pertinent dans un dépôt, une zone industrielle, une remise locomotive ou un faisceau de triage.
Avertissement

L’avertissement indique au mécanicien qu’il doit se préparer à rencontrer un signal fermé plus loin, par exemple un sémaphore ou un carré.
En signalisation lumineuse, il est représenté par un feu jaune fixe. Pour le modéliste, c’est l’un des signaux essentiels pour reproduire une exploitation en cantonnement.
Ralentissement

Le ralentissement annonce qu’un train devra réduire sa vitesse pour franchir une zone particulière, souvent une aiguille prise en déviation.
En signalisation lumineuse, il est représenté par deux feux jaunes horizontaux :
- Fixes, ils correspondent à un ralentissement à 30 km/h ;
- Clignotants, ils indiquent un ralentissement à 60 km/h.
Rappel de ralentissement

Le rappel de ralentissement confirme au mécanicien que la limitation annoncée précédemment doit être appliquée à l’endroit où il se trouve, généralement au franchissement de l’aiguille ou de la zone concernée.
En signalisation lumineux, il est représenté par deux feux jaunes verticaux :
- Fixes, ils correspondent au rappel 30 ;
- Clignotants, au rappel 60.
Oeilleton

L’œilleton n’est pas un signal principal de circulation, mais un petit feu blanc placé sur certaines cibles.
Son rôle est d’aider à distinguer un sémaphore d’un carré dont un feu rouge serait défectueux.
Il est allumé avec certaines indications comme le sémaphore, l’avertissement ou la voie libre, et éteint lorsque le signal présente un carré, un carré violet.
En modélisme, il apporte une finesse très appréciée sur les cibles lumineuses SNCF, surtout pour les réseaux où l’on souhaite reproduire fidèlement l’apparence des signaux.
Feu Blanc

Le feu blanc autorise une marche de manœuvre.
Il ne correspond pas à une circulation normale en ligne, mais à un mouvement encadré dans une gare, un dépôt, une voie de service ou un triage.
Feu Rouge clignotant

Le feu rouge clignotant est une indication particulière qui permet, dans certains cas réels, d’éviter un arrêt complet en imposant une marche très prudente.
Il ne correspond pas à une circulation normale en ligne, mais à un mouvement encadré dans une gare, un dépôt, une voie de service ou un triage.
Feu Vert clignotant

Le feu rouge clignotant est une indication de préannonce utilisée sur les lignes où certains trains circulent à plus de 160 km/h.
Pour les trains limités à 160 km/h ou moins, il équivaut globalement à une voie libre. Pour les trains plus rapides, il impose de réduire la vitesse à 160 km/h avant le signal suivant.
Feu Jaune clignotant

Le feu jaune clignotant est une indication avancée qui annonce au mécanicien qu’il devra être particulièrement vigilant, car il approche d’une zone où la signalisation va devenir plus restrictive.
Il permet notamment d’anticiper une succession de signaux rapprochés ou une situation où le train devra bientôt réduire fortement sa vitesse, voire se préparer à l’arrêt.
Principe de gestion des signaux lumineux
Pour piloter les feux de signalisation, un programme spécifique a été développé sur la base d’une carte Arduino Nano.
Cette solution permet de gérer automatiquement l’affichage des signaux en fonction de l’état du réseau : occupation des cantons, position des aiguillages ou encore état du signal suivant.
Le système fonctionne de manière autonome et ne nécessite pas d’ordinateur pour gérer la signalisation.
Le programme Arduino a été conçu pour rester simple à mettre en œuvre sur un réseau miniature. Il ne pilote pas directement la vitesse des locomotives : il ne ralentit pas le train et ne commande pas la traction. Son rôle est uniquement de choisir et d’afficher la bonne indication lumineuse sur les signaux. Cela le rend compatible aussi bien avec un réseau analogique qu’avec un réseau digital DCC.
Une logique en 2 temps…
Le principe de fonctionnement repose sur une logique en deux temps.
- Dans un premier temps, le programme vérifie si le train peut s’engager ou non. Si l’itinéraire est interdit, si le canton protégé est occupé, si une aiguille n’est pas dans la bonne position ou si une zone doit être protégée, le signal affiche une indication d’arrêt : carré, carré violet ou sémaphore, selon le type de voie et la situation choisie par le modéliste.
- Dans un second temps, si le passage est autorisé, le programme détermine quelle indication doit être présentée. Le train peut avancer, mais cela ne signifie pas forcément que le signal doit afficher uniquement la voie libre. Selon le contexte, il peut être nécessaire d’afficher un avertissement, un ralentissement, un rappel de ralentissement, un vert clignotant, un rouge clignotant, un blanc clignotant ou toute autre indication prévue dans le paramétrage.
L’idée est donc de séparer clairement deux questions : le train a-t-il le droit de passer ? puis, si oui, dans quelles conditions doit-il passer ?
Cette méthode facilite beaucoup la mise en œuvre, car elle permet de raisonner comme sur le réseau réel tout en gardant une logique compréhensible pour nous modéliste. Il suffit de définir, pour chaque signal, les cas où le passage est autorisé, puis les cas particuliers où le passage est autorisé avec une indication spécifique. Lorsque aucun cas particulier n’est actif, le signal présente la voie libre.
Exemples de gestion de signaux lumineux

| Commande du signal N°2 : Cas A et B, Itinéraire 2 vers 3 si… – Canton 3 non occupé |
| Commande du signal N°2 : Cas C, Itinéraire 2 vers 3 si… – Aiguillage en position droite – ET Canton 3 non occupé |
| Commande du signal N°4 : Cas D, Itinéraire 4 vers 3 avec configuration Rappel Ralentissement si… – Aiguillage en position déviée – ET Canton 3 non occupé – ET Feu N°3 Voie libre |
| Commande du signal N°4 : Cas E, Itinéraire 4 vers 3 avec configuration Rappel Ralentissement + Avertissement si… – Aiguillage en position déviée – ET Canton 3 non occupé – ET Feu N°3 Sémaphore |
Programme Arduino pour la gestion des signaux lumineux
Chaque carte Arduino Nano peut gérer deux signaux complets. Ce module autonome est facile à intégrer dans un réseau miniature existant ou dans une nouvelle installation. L’objectif n’est pas de reproduire toute la complexité de la signalisation réelle SNCF, mais de proposer une logique fiable, cohérente et suffisamment réaliste pour enrichir l’exploitation d’un réseau miniature.
Deux versions du programme Arduino ont été prévues :
- une version destinée aux signaux simples, avec un maximum de trois feux par signal : vert, rouge, jaune, ou selon les besoins blanc et violet pour les zones de manœuvre ou les voies de service ;
- une version plus complète et permet de gérer l’ensemble des indications présentées précédemment (8 feux) : voie libre, avertissement, sémaphore, carré, ralentissement, rappel de ralentissement, feu blanc, feu violet, œilleton et combinaisons associées.
Des entrées pour analyser l’état du réseau
Selon la version utilisée, la carte dispose de 7 à 13 entrées permettant de recevoir les informations nécessaires pour déterminer l’état du signal. Ces entrées peuvent, par exemple, être reliées à des contacts de détection, des relais, des modules d’occupation, des interrupteurs ou des contacts d’aiguillage.
2 signaux pour 2 sens de circulation
Le programme prend en compte le sens de circulation. Deux sens peuvent être définis : le sens normal, identifié par la valeur 0, et le sens inverse, identifié par la valeur 1. Cette logique permet de gérer les signaux associés à un même canton en fonction du sens dans lequel le train circule.
La carte peut aussi gérer deux signaux pour deux cantons différents. Elle peut donc être utilisée soit pour piloter deux signaux liés au même canton, soit pour gérer deux cantons indépendants du réseau.
Les numéros d’itinéraire sont utilisés dans le paramétrage pour faciliter la configuration. Ils permettent d’identifier plus clairement chaque situation possible : ils évitent de raisonner uniquement avec des combinaisons d’entrées, et rendent la configuration plus lisible lorsque le réseau comporte plusieurs aiguillages ou plusieurs scénarios de circulation.
Des fonctionnalités
En DCC uniquement, une fonctionnalité est proposée pour activer le sémaphore à distance, même lorsque l’itinéraire est correctement établi. Cette option permet de forcer une indication d’arrêt ou de protection dans certains cas particuliers : arrêt d’un train en gare, gestion manuelle de l’exploitation ou scénario spécifique. Le signal peut donc afficher le sémaphore non pas parce que l’aiguille est mal positionnée, mais parce que l’on demande de retenir le train.
La carte permet également de gérer sous une tension de 5 Volts les LED des signaux selon deux types de câblage : commun anode (+) ou commun cathode (-). Ce choix est très utile, car tous les signaux du commerce ou réalisés artisanalement ne sont pas câblés de la même manière. Le programme peut donc être adapté au type de signal utilisé, sans imposer une seule méthode de montage. Cela facilite l’intégration avec des signaux déjà existants sur un réseau.
Pour augmenter le nombre de sorties disponibles, le montage nécessite une carte d’extension I2C PCF8575. Cette carte permet de gérer jusqu’à 16 sorties, soit 2 groupes de 8 LED, en utilisant seulement deux broches de l’Arduino. Les deux broches A4 et A5 servent à la communication I2C, ce qui libère des broches pour la gestion des entrées de la carte Arduino Nano pour recevoir les informations du réseau : occupation de canton, position d’aiguillage ou état du signal suivant.
La carte Arduino commande 2 relais bistables afin de transmettre une information d’état aux autres cartes du réseau. Dans ce cas, le relais ne sert pas directement à allumer les feux du signal, mais à indiquer une situation logique simple et exploitable par d’autres modules : circulation autorisée ou circulation interdite.
Cette information peut ensuite être reprise par une autre carte Arduino, par un module de gestion de canton, par une logique d’itinéraire ou par un système d’automatisation plus large. L’intérêt est de créer une communication simple entre plusieurs cartes, sans nécessiter de liaison informatique complexe. Chaque carte peut ainsi recevoir une information claire sur l’état d’un signal ou d’un canton voisin.
Le choix du relais bistable présente aussi un avantage électrique : il ne consomme du courant qu’au moment du changement d’état. Une impulsion permet de basculer le relais, puis celui-ci conserve sa position sans alimentation permanente.
Option de gestion d’un module BM1 en DCC
Pour les réseaux fonctionnant en digital ou DCC, une option est prévue pour piloter un module de type BM1 (système ABC) via les relais bistables. Ce type de module est utilisé pour créer une zone d’arrêt compatible avec certains décodeurs de locomotives, selon le principe de freinage asymétrique.
Dans cette configuration, la carte Arduino ne se contente plus d’afficher l’indication lumineuse : elle peut aussi fournir une information de commande destinée au module BM1. Lorsque le signal est fermé, par exemple au carré, au carré violet ou au sémaphore, le module BM1 est activé afin de provoquer l’arrêt de la locomotive équipée d’un décodeur compatible et configuré.
Cette fonction reste optionnelle. Elle dépend du matériel DCC utilisé, des décodeurs installés dans les locomotives et de la manière dont les zones d’arrêt sont câblées sur le réseau. Elle permet toutefois d’aller plus loin dans le réalisme, en associant l’aspect visuel de la signalisation à une réaction concrète du train sur la voie.
Une solution pensée pour les modélistes
L’un des grands avantages de cette solution est qu’elle ne nécessite pas de connaissances avancées en programmation Arduino. Le programme est déjà préparé : il suffit de le téléverser dans la carte Arduino Nano.
Le paramétrage de chaque signal est ensuite réalisé à l’aide d’un programme développé avec Processing par la section Modélisme de l’UAICF Nevers-Vauzelles. Cette application permet de configurer la carte de manière plus accessible, sans avoir à modifier directement le code Arduino. On peut ainsi définir les caractéristiques de chaque feu, les conditions d’allumage, les itinéraires possibles et les cas particuliers à prendre en compte.
La partie la plus importante n’est donc pas la programmation, mais la préparation logique de la signalisation. Il faut faire preuve de rigueur pour identifier correctement les situations possibles : quel canton est protégé, quelle aiguille conditionne l’itinéraire, quel signal est situé en aval, quelle indication doit apparaître selon chaque combinaison. C’est cette étape de réflexion qui garantit une signalisation crédible et fiable.
Tester le fonctionnement avec Wokwi
Avant de câbler la carte sur le réseau, il est possible de comprendre et de tester le principe de fonctionnement grâce au simulateur en ligne Wokwi. Cet outil permet de visualiser le comportement d’une carte Arduino virtuelle, de simuler des entrées et d’observer la réaction des sorties.
Pour un modéliste, Wokwi est particulièrement utile : il permet de se familiariser avec la logique du programme, de vérifier les combinaisons de signaux et de mieux comprendre le rôle de chaque entrée avant de passer au montage réel. C’est une étape rassurante, notamment pour les personnes qui découvrent Arduino ou qui souhaitent valider leur projet avant de réaliser le câblage définitif..
Wokwi est une plateforme en ligne qui permet de simuler des circuits électroniques, notamment avec des microcontrôleurs comme Arduino, ESP32 ou Raspberry Pi Pico, directement dans le navigateur.
Gestion des Feux avec 2 x 3 sorties
A l’aide du switch, la modification de l’état des bornes D9 et D10 permet de changer l’état des signaux.
- Feu Vert pour le signal 0.
- Feu Vert pour le signal 1.
Circuits électroniques
Carte de gestion 3 ou 8 feux
Deux versions de carte électronique ont été prévues en fonction du type de signaux commandés.
2 x 3 feux

La carte est destinée à la gestion de 2 × 3 feux.
Elle permet de piloter deux signaux simples, composés chacun de trois indications maximum. Les LED peuvent être raccordées directement sur la carte, ce qui reste la solution la plus logique pour cette configuration.
Une liaison via bus I2C reste possible, mais elle présente peu d’intérêt dans ce cas, car le nombre de LED à gérer reste limité.
2 x 8 feux

La carte est prévue pour une gestion complète de la signalisation.
Elle utilise une carte d’extension PCF8575, reliée en I2C, afin de piloter jusqu’à 8 LED pour les signaux les plus élaborés.
Cette solution devient particulièrement intéressante lorsque l’on souhaite gérer des cibles plus complexes : carré, sémaphore, avertissement, ralentissement, rappel de ralentissement, feu blanc, feu violet, œilleton ou indications clignotantes.
Chaque carte intègre également l’emplacement des diodes nécessaires à la commande de 2 modules BM1 pour l’utilisation de la fonction ABC des décodeurs, lorsque cette option est utilisée en DCC. Ce montage permet d’associer l’état du signal à une zone d’arrêt ou de freinage compatible avec les décodeurs prenant en charge le freinage asymétrique.
Si la fonction ABC n’est pas utilisée, les diodes correspondantes n’ont pas besoin d’être montées. Dans ce cas, il suffit de ne pas installer les 10 diodes prévues pour cette option ainsi que les 10 borniers pour connecter les voies.
Carte PCF8575 pour la gestion jusqu’à 16 LED

La carte PCF8575 est une carte d’extension d’entrées/sorties pilotée par le bus I2C. Dans ce projet, elle est utilisée comme module d’extension pour augmenter le nombre de sorties disponibles sur l’Arduino Nano. Elle permet de commander jusqu’à 16 sorties, tout en n’utilisant que deux broches de l’Arduino : une pour le signal SDA et une pour le signal SCL.
Deux versions de câblage sont prévues afin de s’adapter au type de signaux utilisés :
Version pour signaux à cathode commune
Dans cette configuration, les cathodes des LED sont reliées ensemble. La commande se fait donc côté positif, en envoyant le courant vers la LED à allumer.
Cette version est adaptée aux signaux dont le commun est relié au moins. Elle peut convenir à certains montages réalisés artisanalement ou à des signaux conçus spécifiquement pour une commande par sortie positive.
Version pour signaux à anode commune
Dans cette configuration, les anodes des LED sont reliées ensemble. La commande se fait alors côté négatif : la LED s’allume lorsque la sortie correspondante vient établir le retour vers le moins.
Cette version est adaptée aux signaux dont le commun est relié au plus. C’est une configuration fréquente pour des signaux miniatures du commerce.
Signaux : cibles
Des circuits imprimés spécifiques ont été prévus pour réaliser des cibles lumineuses de 2, 3 ou 4 feux, et pour les indications de ralentissement et de rappel de ralentissement. Ces platines permettent de créer des signaux compacts et faciles à raccorder. Les signaux peuvent être câblés avec l’anode ou cathode commune en fonction de la configuration nécessaire.





Les signaux sont conçus pour être raccordées directement sur les connecteurs de la carte PCF8575.

Des feux pratiques pour les tests
Ces signaux sont particulièrement utiles lors des phases de mise au point. Ils permettent de tester rapidement le fonctionnement d’une sortie PCF8575, d’un programme Arduino ou d’une configuration réalisée avec l’application Processing, sans devoir raccorder immédiatement un signal définitif.
Une solution pour les zones cachées du réseau
Ces cibles peuvent également être utilisées comme signaux simplifiés dans les parties non visibles ou peu visibles du réseau. Elles sont pratiques dans les espaces cachés, comme par exemple :
- les tunnels ;
- les gares cachées ;
- les coulisses ;
- les faisceaux de triage ;
- les zones techniques sous le réseau ;
- les modules de test ou de maintenance.
Dans ces secteurs, il n’est pas toujours nécessaire d’installer une reproduction très détaillée d’un signal SNCF. Une cible compacte de 2, 3 ou 4 feux suffit souvent pour visualiser l’état d’un canton, d’un itinéraire ou d’une zone d’arrêt.
Paramétrage avec l’application Processing

Pour simplifier la configuration des cartes Arduino, une application spécifique a été développée avec le logiciel gratuit Processing. Son rôle est de permettre le paramétrage des signaux sans avoir à modifier directement le programme Arduino. On peut ainsi configurer les entrées, les itinéraires et les indications lumineuses à afficher à partir d’une interface graphique plus accessible.
L’application est compatible avec Windows, macOS, Linux et Raspberry Pi.
Principe de compilation de l’application
L’application Processing est fournie sous forme de fichiers sources. Pour l’utiliser, il faut ouvrir le projet dans l’environnement de développement Processing, puis le lancer ou le compiler pour le système d’exploitation utilisé.
Avant la première compilation, une étape importante est nécessaire : installer la bibliothèque graphique utilisée par l’application.
Ajout de la bibliothèque G4P GUI Builder
L’interface de l’application repose sur la bibliothèque G4P et sur l’outil G4P GUI Builder. Cette bibliothèque permet de créer des interfaces graphiques complètes dans Processing : boutons, listes déroulantes, champs de saisie, cases à cocher et fenêtres de configuration.
Pour l’installer dans Processing, il faut procéder de la manière suivante :
- Ouvrir Processing ;
- Aller dans le menu Outils -> Manage Tools ;
- Sélectionner l’onglet Tools ;
- Rechercher G4P GUI Builder 4.4.2P ;
- Installer G4P GUI Builder.
Une fois la bibliothèque installée, le projet peut être ouvert et compilé normalement.
Utilisation dans le projet
L’application Processing sert d’interface entre la logique du réseau et le programme Arduino. Elle permet de définir les paramètres de chaque signal.
Cette étape demande surtout de la méthode : il faut identifier clairement les cantons, les aiguillages, les sens de circulation et les situations possibles. L’application ne remplace pas cette réflexion, mais elle aide à la structurer et à la rendre plus simple à mettre en œuvre.
Tous les fichiers source
Les fichiers sources sont mis à disposition par la section modélisme de l’UAICF Nevers-Vauzelles pour mettre en œuvre le projet complet.
Programmes ARDUINO
Les programmes à téléverser dans les cartes Arduino Nano, selon la version utilisée : gestion de deux signaux simples ou gestion complète.
Circuit PCB pour la carte Arduino
Les schémas et fichiers nécessaires à la réalisation des cartes électroniques associées au programme Arduino, avec les entrées, sorties, borniers et options prévues pour le pilotage des signaux.
Circuit PCB pour la carte PCF8575 pour version 8 feux
Les schémas et fichiers destinés à l’extension I2C PCF8575, permettant de piloter les LED des signaux lorsque la version complète est utilisée.
Circuit PCB pour les 5 modèles de cibles de feux
Les schémas et fichiers pour la création des signaux avec 2, 3, 4 feux ou plus.
Programme Processing
L’application de paramétrage permettant de configurer les feux sans modifier directement le code Arduino. Il facilite l’association entre les entrées, les itinéraires et les indications lumineuses à afficher.

