Réalisation d’un tachymètre pour trains miniatures avec Arduino – Un projet DIY complet !
🧭 1. Introduction et présentation du projet
Ce projet a pour but de construire un tachymètre fonctionnel destiné aux trains miniatures quelque soit l’échelle, à l’aide d’une carte Arduino, de deux capteurs infrarouges et d’un écran OLED. Le système permet de mesurer la vitesse réelle (en km/h) d’un train circulant entre deux points, en tenant compte de l’échelle réduite du réseau.
Ce tutoriel est destiné à tout passionné de modélisme ferroviaire, même débutant en électronique. Il vous guidera pas à pas dans la réalisation de ce projet, depuis l’explication du principe jusqu’à la mise en place complète, avec tests et affichage dynamique. L’objectif est simple : mesurer, afficher et visualiser la vitesse de vos trains comme un vrai compteur ferroviaire !

Le coût de reviens est relativement faible au vu des composants utilisés. Et le câblage très simple alors n’hésitez pas. Lancez-vous !
🧮 2. Calcul de la vitesse
Ici, nous allons mesurer la distance entre les deux capteurs et relever le temps que met le train à franchir cette distance. Pour calculer la vitesse nous utiliseront la formule de base :
Distance
Vitesse = ----------
Temps
Mais dans le cadre du modélisme ferroviaire, la distance entre les 2 capteurs sera multipliée par l’échelle des modèles. Le calcul final intégré dans le code est donc :
Distance (mm) x échelle x 3.6
Vitesse = ---------------------------------
Temps écoulé (ms)
Et dans notre cas d’utilisation au club nous avons les paramètres suivants :
1660 x 87 x 3.6
Vitesse = ------------------
Temps écoulé (ms)
- Distance entre les 2 capteurs : 1660mm
- Échelle : 1/87
La distance qui sépare les 2 capteurs est mesurée en millimètres → distance parcourue sur le réseau miniature
1/87 → conversion de l’échelle HO (le modèle est 87 fois plus petit que la réalité)
Attention : 1mm à l’échelle HO = 87mm en réalité, soit 0,087 m
Le temps écoulé (entre détection 1er capteur et 2nd capteur) est compté en millisecondes => à convertir en heure. 3.6 = conversion de m/s en km/h
🧠 3. Principe de fonctionnement
Le montage repose sur deux capteurs infrarouges positionnés de part et d’autre de la voie ferrée (un à gauche et un à droite). Lorsqu’un train passe devant le premier capteur, le programme Arduino déclenche un chronomètre et affiche une flèche qui indiquera le sens de circulation attendu du train.
Quand le train passe devant le second capteur, l’Arduino arrête le chronomètre, effectue le calcul de vitesse, et affiche la valeur sur l’écran OLED.
En cas de non-détection sur le second capteur dans un délai raisonnable (ici, 45 secondes), le timeout intervient et le système se remet automatiquement en attente pour éviter tout blocage.
Le système fonctionne dans les 2 sens de passage.
🧰 4. Liste du matériel nécessaire
Liste des composants utilisés :
Composants | Référence |
---|---|
1x Carte Arduino Uno | Officielle ou compatible |
2x Capteurs infrarouges * | LM393 |
1x Écran OLED I2C 128×64 | SSD1306 |
1x Carte Breadboard | + Fils Dupont ** mâle/mâle |
1 x Alimentation 5V | USB ou batterie externe |
Gaine de passage de câble | Utilisée en tant que support des capteurs infrarouge |
* Ces capteurs sont souvent moins chers vendus par lot de 10 qu’à l’unité.
** Fils Dupont : De petits câbles idéaux pour tester rapidement un montage en reliant les composants à l’Arduino ou sur une platine d’essai

🧭 5. Schéma de câblage (Fritzing)
Le schéma de câblage réalisé avec « Fritzing » montre la connexion des capteurs aux broches D6 & D7 et de l’écran OLED aux broches A4 (SDA) et A5 (SCL). Ici rien de compliqué. L’Arduino est alimenté par le port USB, notamment durant les phases de chargement du programme. Et par une alimentation 5V externe en utilisation quotidienne.

Le câblage ne posera pas de problème particulier à l’aide d’une carte d’expérimentation et de fils Dupont (mâle/mâle) que l’on trouve facilement.
🧾 6. Principe de fonctionnement du programme Arduino
Le programme est organisé en différentes tâches parmi :
- La déclaration des variables et l’initialisation de l’afficheur
- L’affichage d’un logo (ici « SMCF ») et du nom du projet
- Puis en boucle :
- Se mettre en attente d’un déclenchement d’un capteur
- Au déclenchement se mettre en attente du déclenchement du capteur opposé
- Si le 2nd capteur est déclenché, calcul et affichage de la vitesse
- Sinon « Timeout » et de nouveau attente d’un prochain déclenchement

🔌 7. Variables du programme
Les variables positionnées en tête de programme permettent de définir :
- La distance qui sépare les 2 capteurs
const double distance = 1660.0;
- L’échelle de travail
int echelle = 87;
- La durée d’affichage à l’écran de la mesure (15s est largement suffisant)
int temps_affichage_vitesse = 15000;
- L’intervalle de temps pour déclencher le 2nd capteur avant remise à zéro
int timeout_tempo = 45;
💻 8. Programme Arduino
Le programme est écrit pour l’IDE Arduino, compatible avec toutes les cartes basées sur l’ATmega328P. Il est structuré en plusieurs fonctions simples :
setup()
initialise les broches et l’écranloop()
surveille l’état du systèmeinterrupts()
gèrent les détectionscalculVitesse()
applique la formule
📎 Contactez-nous pour obtenir le code « Arduino » complet.
🖼️ 9. Définir un logo BMP pour l’écran OLED
Pour plus de fun et de personnalisation, le système affiche un petit logo au démarrage. Celui-ci est codé en binaire au format .bmp
(1 bit par pixel). Vous pouvez générer ce logo avec des outils comme image2cpp, en important une image 128×64 monochrome.
🖼️ Vous pouvez insérer un train, un logo personnalisé ou même une animation si vous le souhaitez !
🚂 10. Déroulement des tests et mise en situation
💡 Astuce : les capteurs infrarouges sont très sensibles à la lumière ambiante. Testez votre installation dans l’environnement réel d’utilisation. Il est possible d’ajuster le seuil de détection des capteurs à l’aide du potentiomètre sur celui-ci.
Une fois le système assemblé et chargé, positionnez les capteurs de chaque côté de la voie à 1,66 mètre l’un de l’autre. Lorsque le train passe devant le premier capteur, vous verrez :
- Une flèche indiquant la direction
- Un décompte visible à l’écran
- Et enfin la vitesse s’afficher à la fin du trajet
Testez avec différentes vitesses de train, calibrez vos capteurs si besoin, et profitez d’un affichage dynamique comme sur une vraie ligne ferroviaire !
🎁 11. Idées d’amélioration ou variantes
- Ajouter une LED ou un buzzer si un seuil de vitesse est dépassé
- Mesurer des aller-retours et faire une moyenne
- Connecter un bouton pour réinitialiser manuellement
Ce projet peut évoluer dans plein de directions !
🎥 12. Une vidéo mieux qu’un simple discours
Dans cette vidéo, on retrouve le fonctionnement de notre tachymètre avec présentation et quelques circulations. On remarquera que la rame Corail qui passe à plusieurs reprises obtient à 1 ou 2 Km/h près le même résultat de vitesse.
✅ 13. Conclusion
Ce tachymètre est un petit projet ludique et utile pour tout amateur de modélisme. Il combine électronique, codage et affichage, tout en restant simple à mettre en œuvre. L’affichage des vitesses apporte un vrai plus à votre réseau miniature et donne une dimension réaliste à vos circulations.
⚠️ Bien sûr, ce système n’est pas un outil de mesure professionnel. Il est basé sur des capteurs simples et une logique maison, donc une marge d’erreur est toujours possible, notamment selon la position du train, la lumière ambiante ou le timing des capteurs. Mais dans le cadre du modélisme et du plaisir de bricoler, le résultat est largement satisfaisant !
Alors, à vos fer à souder ! 🚄