Page 1 sur 4

Tachymètre HO

Posté : 01 juin 2026, 20:17
par ramasoft
:hellod:

Je commence un nouveau projet: un affichage de la vitesse d'un train façon radar routier.
Matériel: un Arduino Nano, un écran OLED de 0,91 pouces et deux capteur TTP223, un peu de fil électrique et quelques grammes de PLA soit un investissement d'environ 3,50€ en comptant large.

J'ai fait ça sous forme d'un panneau d'affichage à intégrer au décor:
cap_C0733_00_00_06_01.jpg
cap_C0733_00_00_12_02.jpg
cap_C0733_00_00_21_03.jpg
Les connexions se font sur une plaque à bande qui s'enfiche sur les broches de l'Arduino

IMG_20260531_084123.jpg
IMG_20260531_084526.jpg
IMG_20260531_084533.jpg

L'Arduino a une petite boite avec des oreilles de fixations
IMG_20260531_161522_1.jpg
IMG_20260531_161648.jpg

Et j'ai fait aussi une boite qui intègre l'Arduino et l'écran si on veut mettre ça à côté du réseau mais attention à la longueur du câblage de l'écran qui est en I2C ...
IMG_20260601_145338.jpg
IMG_20260601_145319.jpg
IMG_20260601_145328.jpg
IMG_20260601_145350.jpg
IMG_20260601_145417.jpg
Pour le code, j'avais promis sur YouTube quelque chose de simple et j'ai fait une version 1 minimaliste qui tient en quelques lignes de code. Elle ne fait la mesure que dans un seul sens. Elle affiche la mesure pendant un temps définit, j'ai mis 5 secondes mais on peut mettre plus.
Inconvénient: ça utilise Delay, fonction bloquante si bien qu'aucune mesure ne peut se faire pendant que l'écran affiche quelque chose.
Il y a aussi une fonction de scrolling dans la procédure afficherPret() pour éviter de brûler l'écran, mais au final, j'ai supprimé cet affichage qui ne sert à rien et l'écran reste noir entre deux mesures. Il suffit de réactiver les lignes si on veut avoir un message défilant pour animer l'écran.

Et j'ai fait aussi une version 2 plus complète qui fait la mesure dans les deux sens, utilise une fonction de timer non bloquante si bien qu'une deuxième mesure meut se faire immédiatement si deux trains sont très près.

Je mettrai tous les fichiers un peu plus tard quand ils seront bien finalisés ainsi que le code complet quand j'aurai terminé car il y a encore quelques bricoles a finaliser.

Mais globalement, c'est quelque chose de très simple et vite fait.

Une petite vidéo du premier essai:
Tachymètre HO - 1er essai.mp4
Et le code de la Version 1:

Code : Tout sélectionner

/* =========================================
 *    Tachymètre pour train à l'échelle HO
 *        V1.00 (c) Ramasoft 2026
 *    Mesure dans un seul sens de circulation
 * =========================================
 * Matériel :
 *   - Arduino Nano
 *   - Écran OLED 0,91" 128x32 (SSD1306) en I2C
 *   - 2 capteurs tactiles TTP223 (utilisés comme détecteurs de passage)
 *
 * Câblage :
 *   - Capteur 1 (S1) → D2  fil bleu
 *   - Capteur 2 (S2) → D3  fil vert
 *   - OLED SDA       → A4  fil blanc
 *   - OLED SCL       → A5  fil jaune
 *   - OLED VCC       → 5V 
 *   - OLED GND       → GND
 *
 * Note sur les TTP223 :
 *   Le TTP223 doit avoir ses plots A et B non shuntés = congiguration d'origine 
 *   pour sortir un état HAUT (HIGH) quand il détecte quelque chose et fonctionner en mode impulsion
 *
 * Distance entre capteurs : 30 cm (réelle = 30 / 87 m à l'échelle 1)
 *
 * Bibliothèques requises (à charger par le Gestionnaire de bibliothèques Arduino) :
 *   - Adafruit SSD1306
 *   - Adafruit GFX Library
 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Configuration de l'écran OLED
#define SCREEN_WIDTH 128 // Largeur de l'écran en pixels
#define SCREEN_HEIGHT 32 // Hauteur de l'écran (Modifier à 64 si votre écran est un 128x64)
#define OLED_RESET     -1 // // Pas de broche RESET dédiée = partagée avec le Nano.
#define SCREEN_ADDRESS 0x3C /// Adresse I2C typique des écrans OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// Configuration des capteurs
const int pinCapteur1 = 2; // Premier capteur (Entrée de la zone)
const int pinCapteur2 = 3; // Second capteur (Sortie de la zone)

// Constantes pour le calcul (Échelle HO = 1/87)
const float distanceEntreCapteurs = 0.30; // Distance en mètres (30 cm)
const float echelle = 87.0;

// Variables de temps (volatile car utilisées dans les interruptions)
volatile unsigned long tempsDepart = 0;
volatile unsigned long tempsFin = 0;
volatile boolean trainEnCours = false; // Indique qu'un train est entré dans la zone
volatile boolean mesureDispo = false; // Indique que la mesure est prête

void setup() {
  //Configurer la LED interne (broche 13 sur le Nano) en sortie
  pinMode(LED_BUILTIN, OUTPUT); 
  // Initialisation de l'écran
  // Si l'écran ne répond pas, on entre dans une boucle infinie de clignotement
  // de la LED rouge de l'Arduino
    if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    while(true) {
      digitalWrite(LED_BUILTIN, HIGH); // Allume la LED
      delay(200);                      // Attend 200 ms
      digitalWrite(LED_BUILTIN, LOW);  // Éteint la LED
      delay(200);                      // Attend 200 ms (clignotement rapide d'erreur)
    }
  }
  
  // Si l'écran fonctionne, le code continue normalement ici...
   display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(15, 10);
  display.println(" Tachymetre HO");
  display.println("(c) Ramasoft 2026");
  display.display();
  delay(2000);

  // Configuration des broches des capteurs (TTP223 sort un signal HIGH quand touché/activé)
  pinMode(pinCapteur1, INPUT);
  pinMode(pinCapteur2, INPUT);

  // Attachement des interruptions sur front montant (RISING)
  attachInterrupt(digitalPinToInterrupt(pinCapteur1), capteur1Declenche, RISING);
  attachInterrupt(digitalPinToInterrupt(pinCapteur2), capteur2Declenche, RISING);

  afficherPret();
}

void loop() {
  // Si une mesure est prête à être calculée
  if (mesureDispo) {
    // Calcul du temps mis par le train en secondes
    float tempsMis = (tempsFin - tempsDepart) / 1000.0; 
    
    // Sécurité si le calcul donne un temps aberrant
    if (tempsMis > 0.05) { 
      // Calcul de la vitesse réelle en m/s
      float vitesseReelle = distanceEntreCapteurs / tempsMis;
      // Conversion en km/h à l'échelle HO
      float vitesseHO = vitesseReelle * echelle * 3.6;

      // Affichage du résultat sur l'OLED
      display.stopscroll();
      display.clearDisplay();
      
      display.setTextSize(1);
      display.setCursor(0, 0);
      display.print("Vitesse HO:");
      
      display.setTextSize(2);
      display.setCursor(0, 14); // Ajuster la position Y si écran 64px
      display.print(vitesseHO, 1); // 1 chiffre après la virgule
      display.print(" km/h");
      
      display.display();
      
      // Laisser le résultat affiché pendant 5 secondes avant de se remettre en attente
      delay(5000); 
    }
    
    // Réinitialisation pour le prochain train
    trainEnCours = false;
    mesureDispo = false;
    display.clearDisplay();
    afficherPret();
  }
}

// Fonction d'interruption pour le premier capteur
void capteur1Declenche() {
  if (!trainEnCours) {
    tempsDepart = millis();
    trainEnCours = true; // Le train est entré dans la zone
  }
}

// Fonction d'interruption pour le second capteur
void capteur2Declenche() {
  if (trainEnCours && !mesureDispo) {
    tempsFin = millis();
    mesureDispo = true; // La mesure est complète
  }
}

void afficherPret() {
  display.clearDisplay();
  //display.setTextSize(2);
  //display.setCursor(0, 10); // Centré verticalement pour un écran 32px
  //display.print("En Attente");
  display.display();
  
  // Active le défilement horizontal vers la droite
  // Paramètres : (première page, dernière page) -> 0 et 0X0F couvre tout l'écran
  //display.startscrollright(0x00,0x0F);
}

Je mettrai un peu plus d'explications demain.

:a_suivre:

Re: Tachymètre HO

Posté : 01 juin 2026, 20:31
par likiki
:bienv: :bienv: :bienv: :bienv: :bienv:

C'est la première chose que j'ai faite en Arduino.

Avec un écrans LCD les OLED n'existaient pas encore.

:bienv: :bienv: :bienv: :bienv: :bienv:

Re: Tachymètre HO

Posté : 01 juin 2026, 20:32
par ramasoft
Tu avais mis quoi comme capteurs ?

Re: Tachymètre HO

Posté : 01 juin 2026, 20:43
par bunny94
Super Patrick. :bienv: :bienv: :bienv:

Re: Tachymètre HO

Posté : 01 juin 2026, 20:57
par C2Vues-BricoTrain
:bienv: Patrick :bienv:

:PetitPoucejpg: :PetitPoucejpg: :PetitPoucejpg: :PetitPoucejpg:

Où vas-tu placer les "contrôleurs" (et les voies d'arrêts) pour qu'ils puissent arrêter et verbaliser les trains qui sont en excès de vitesse...?

:hhhaaaa: :hhhaaaa: :hhhaaaa: :tire langue :jesors:

Re: Tachymètre HO

Posté : 01 juin 2026, 21:14
par ramasoft
J'ai mis ça justement sur une portion "roulante", sans limitation qui peut être prise à pleine vitesse même par les TGV.
Sinon, j'avais initialement prévu de le mettre sur la voie de la gare qui est la plus proche du bord, juste au dessus de mon coin bricolage car c'était simple pour passer les fils mais elle est entre les deux courbes les plus serrées du réseau et entre deux aiguillages qui ne peuvent pas se prendre trop vite. Elle me sert de voie d'essai et de voie de programmation.
Comme j'ai un deuxième écran identique mais en bleu, je vais finir la version "boite" avec l'Arduino et l'écran intégrés et je le mettrai sur la voie d'essai.

Re: Tachymètre HO

Posté : 01 juin 2026, 21:33
par C2Vues-BricoTrain
ramasoft a écrit : 01 juin 2026, 21:14 Comme j'ai un deuxième écran identique mais en bleu, je vais finir la version "boite" avec l'Arduino et l'écran intégrés et je le mettrai sur la voie d'essai.
En fin de compte, ce n'est plus la SNCF, mais l'EDF avec un "Compteur Bleu" pour les tarifications et les horaires spéciaux pour les trains... :mdr1: :mdr3:

Bon ! Je (re) :jesors: comme dirait Zébulon :au revoir:

...

Re: Tachymètre HO

Posté : 01 juin 2026, 21:34
par ramasoft
T'es déchaîné ce soir :hhhaaaa:

Re: Tachymètre HO

Posté : 01 juin 2026, 21:38
par C2Vues-BricoTrain
ramasoft a écrit : 01 juin 2026, 21:34 T'es déchaîné ce soir :hhhaaaa:
Bon, Patrick, là je me calme et je te dis à demain.

Bonne soirée à toi.

Amicalement.
Fernando

Re: Tachymètre HO

Posté : 01 juin 2026, 22:29
par ramasoft
Bonne fin de soirée aussi :cooooool:

Re: Tachymètre HO

Posté : 02 juin 2026, 00:23
par herwat
Chouette ! :PetitPoucejpg: :PetitPoucejpg: :PetitPoucejpg:

Mais comment disposes-tu tes capteurs ?

Re: Tachymètre HO

Posté : 02 juin 2026, 04:57
par likiki
ramasoft a écrit : 01 juin 2026, 20:32 Tu avais mis quoi comme capteurs ?
J'avais mis des capteurs IR.



C'était il y a ... 12 ans.

:tire langue

Re: Tachymètre HO

Posté : 02 juin 2026, 07:38
par Amigorl
Bonjour,

Bien ce projet.

Je n'ai pas compris comment les ttp223 sont utilisés comme capteur et où ils sont placés.

Si c'est sous la voie, ne pourraient ils pas être utilisés comme capteur de rétro signalisation ?

À 1€21 les 10, ce pourrait être intéressant ?

Je me renseigne de mon côté sur les modes de fonctionnement offerts par cette petite carte rouge.

:a_suivre:

Ben... Déjà une explication...
https://www.wikidebrouillard.org/wiki/I ... tif_TTP223
Le ttp223 ne semble pas être seulement un capteur tactile, il détecte également les objets qui se rapprochent.
Je comprends mieux.
C'est sûrement utilisable avec Rocrail qui fonctionne aussi bien avec les capteurs de passage que d'occupation...
Piste à explorer compte tenu du prix de revient très faible et c'est un module tout monté (Patrice ? Tu en penses quoi ?...)

Re: Tachymètre HO

Posté : 02 juin 2026, 08:02
par Bud_fr
Amigorl a écrit : 02 juin 2026, 07:38
......
Je n'ai pas compris comment les ttp223 ..... où ils sont placés.

.....
Salut Patrick, bonjour à Tous

Moi aussi j'ai du mal à comprend l'écart entre les 2 TTP223; Tu n'as pas mis de précisions dans tes explications, il y a juste des commentaires dans le code:
*
* Distance entre capteurs : 30 cm (réelle = 30 / 87 m à l'échelle 1)
*
Mais si je divise 30 par 87, ça me donne 34 (et pas 30) :3:

Tu pourrais développer ??? Merci

:a_suivre:

Re: Tachymètre HO

Posté : 02 juin 2026, 11:17
par ramasoft
Bonjour à tous,
Hier soir j'ai mis ça rapidement mais je vais mettre quelques explications
Tout d'abord le code V2.10 qui permet la mesure dans les deux sens de circulation et aussi utilise une temporisation non bloquante permettant d'avoir un affichage plus long des mesures tout en autorisant une nouvelle mesure immédiatement sans attendre même si l'ancienne mesure est encore affichée.
N'hésitez pas si vous voulez des explications plus détaillées

Code : Tout sélectionner

/* =========================================
 * Tachymètre pour train à l'échelle HO
 * V2.10 (c) Ramasoft 2026
 * Mesure dans les deux sens de circulation
 * Temporisation non bloquante
 * =========================================
*  Matériel :
 *   - Arduino Nano
 *   - Écran OLED 0,91" 128x32 (SSD1306) en I2C
 *   - 2 capteurs tactiles TTP223 (utilisés comme détecteurs de passage)
 *
 * Câblage :
 *   - Capteur 1 (S1) → D2  fil bleu
 *   - Capteur 2 (S2) → D3  fil vert
 *   - OLED SDA       → A4  fil blanc
 *   - OLED SCL       → A5  fil jaune
 *   - OLED VCC       → 5V 
 *   - OLED GND       → GND
 *
 * Note sur les TTP223 :
 *   Le TTP223 doit avoir ses plots A et B non shuntés = congiguration d'origine 
 *   pour sortir un état HAUT (HIGH) quand il détecte quelque chose et fonctionner en mode impulsion
 *
 * Distance entre capteurs : 30 cm (réelle = 30 / 87 m à l'échelle 1)
 *
 * Bibliothèques requises (à charger par le Gestionnaire de bibliothèques Arduino) :
 *   - Adafruit SSD1306
 *   - Adafruit GFX Library
 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Configuration de l'écran OLED
#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 32 
#define OLED_RESET     -1 
#define SCREEN_ADDRESS 0x3C 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// Configuration des capteurs
const int pinCapteur1 = 2; 
const int pinCapteur2 = 3;

// Constantes pour le calcul (Échelle HO = 1/87)
const float distanceEntreCapteurs = 0.315; // Distance en mètres 
const float echelle = 87.0; 

// Variables de temps et de logique (volatile pour les interruptions)
volatile unsigned long tempsDepart = 0; 
volatile unsigned long tempsFin = 0; 
volatile boolean trainEnCours = false; 
volatile boolean mesureDispo = false; 
volatile int sensCirculation = 0; 

// Variables pour temporisation non bloquante
unsigned long tempsAffichageDepart = 0; // Mémorise quand l'affichage a commencé
boolean affichageEnCours = false;       // Indique si un résultat est actuellement visible
const unsigned long dureeAffichage = 20000; // Durée d'affichage en millisecondes (20 secondes)

void setup() {
  pinMode(LED_BUILTIN, OUTPUT); 
  
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { 
    while(true) {
      digitalWrite(LED_BUILTIN, HIGH); 
      delay(200); 
      digitalWrite(LED_BUILTIN, LOW); 
      delay(200); 
    }
  }
  
  display.clearDisplay(); 
  display.setTextSize(2); 
  display.setTextColor(SSD1306_WHITE); 
  display.setCursor(5, 0); 
  display.println("Tachymetre"); 
  display.setCursor(17, 18); 
  display.println("HO V2.10"); 
  display.display(); 
  delay(10000); // Écran d'accueil (10s) 

  pinMode(pinCapteur1, INPUT); 
  pinMode(pinCapteur2, INPUT); 

  attachInterrupt(digitalPinToInterrupt(pinCapteur1), capteur1Declenche, RISING); 
  attachInterrupt(digitalPinToInterrupt(pinCapteur2), capteur2Declenche, RISING); 

  effaceEcran(); 
}

void loop() {
  // 1. TRAITEMENT D'UNE NOUVELLE MESURE DISPONIBLE
  if (mesureDispo) { 
    float tempsMis = (tempsFin - tempsDepart) / 1000.0; 
    
    if (tempsMis > 0.05) { // Sécurité anti-rebond 
      float vitesseReelle = distanceEntreCapteurs / tempsMis; 
      float vitesseHO = vitesseReelle * echelle * 3.6; 

      display.stopscroll(); 
      display.clearDisplay(); 
      
      // Affichage du sens de circulation
      display.setTextSize(1); 
      display.setCursor(0, 0); 
      if (sensCirculation == 1) { 
        display.print("Vitesse >>>> (1->2)"); 
      } else { 
        display.print("Vitesse <<<< (2->1)"); 
      }
      
      // Affichage de la vitesse
      display.setTextSize(2); 
      display.setCursor(0, 14); 
      display.print(vitesseHO, 1); 
      display.print(" km/h"); 
      display.display(); 
      
      // Armement de la temporisation non bloquante
      tempsAffichageDepart = millis(); // On note l'heure actuelle
      affichageEnCours = true;         // On indique qu'un affichage est actif
    }
    
    // Réinitialisation IMMÉDIATE pour être prêt pour le train suivant
    trainEnCours = false; 
    mesureDispo = false; 
    sensCirculation = 0; 
  }

  // 2. GESTION DU TEMPS D'AFFICHAGE NON BLOQUANT
  // Si un affichage est en cours et que les 20 secondes sont écoulées :
  if (affichageEnCours && (millis() - tempsAffichageDepart >= dureeAffichage)) {
    affichageEnCours = false; // Fin de la période d'affichage
    display.clearDisplay(); 
    effaceEcran(); 
  }
}

// Fonction d'interruption pour le capteur 1
void capteur1Declenche() {
  if (!trainEnCours) { 
    tempsDepart = millis(); 
    sensCirculation = 1; 
    trainEnCours = true; 
  }
  else if (trainEnCours && sensCirculation == 2 && !mesureDispo) { 
    tempsFin = millis(); 
    mesureDispo = true; 
  }
}

// Fonction d'interruption pour le capteur 2
void capteur2Declenche() {
  if (!trainEnCours) { 
    tempsDepart = millis(); 
    sensCirculation = 2;     trainEnCours = true; 
  }
  else if (trainEnCours && sensCirculation == 1 && !mesureDispo) { 
    tempsFin = millis(); 
    mesureDispo = true; 
  }
}

void effaceEcran() {
  display.clearDisplay(); 
  display.display(); 
}
Les deux capteurs sont espacés de 30cm (plus exactement de 31,5cm) et posés sur la voie avec des clips en impression 3D:
Cache TTP223.stl
J'avais expliqué comment les poser dans l'avant dernière vidéo consacrée au TTP223.
IMG_20260518_145120.jpg
IMG_20260518_145752.jpg
IMG_20260518_143807.jpg

On pourrait effectivement les utiliser en détection comme capteurs pour rétrosignalisation, mais ils détectent tout, c'est à dire que si un convoi passe dessus, ils vont détecter tout ce qui est à plus ou moins 5mm de leur surface, donc pratiquement tous les essieux. Donc il faut ajouter une discrimination ce qui est facile à faire en programmation, moins en électronique câblée.
D'autre part c'est moins fiable qu'une détection par consommation de courant qui, elle, est fiable à 100%
Mais il faudrait creuser le sujet.

Pour la question de Didier, c'est que le commentaire du code est mal exprimé: je voulais dire 30 87emes
Le calcul de la vitesse (Échelle HO : 1/87)
Si les deux capteurs sont espacés de 30 cm (0,3m), voici comment on passe du temps mesuré t (en secondes) à la vitesse réelle à l'échelle :
1. Vitesse réelle du modèle réduit : Vréelle m/s = 0,3 / t
2. Vitesse à l'échelle HO (1:87) : VHO = Vréelle x 87
3. Conversion en km/h : Vkm/h = VHO x 3,6 (vitesse en m/s multipliée par 1000 et divisée par 3600 secondes pour passer en km/h)
4. En simplifiant la formule :
Formule calcul.jpg


Si par exemple tempsDepart valait 10 000 ms (10 secondes après le démarrage de l'Arduino) et tempsFin vaut 10 400 ms, le train a mis 400 millisecondes (soit 0,4s) pour parcourir les 30 cm.
En reprenant notre formule :
Formule calcul.2jpg.jpg


Pour cette distance de 30cm, c'est pour avoir un bon compromis entre vitesse élevée mesurable et prévision:
1. Le cas d'un train rapide (TGV à 300 km/h)
À l'échelle HO (1/87), un TGV roulant à 300 km/h à l'échelle se déplace à une vitesse réelle de :

Formule calcul.3.jpg
Sur une zone de 30 cm, ce TGV va mettre environ 0,3 seconde (300 millisecondes) pour franchir les deux capteurs.
Comme l'Arduino Nano mesure le temps en millisecondes, une durée de 300 ms offre une excellente précision (la marge d'erreur n'est que de l'ordre de 0,3 %).

2. Le cas d'un train lent (Manœuvre à 20 km/h)
Un train de marchandises ou une locomotive de manœuvre qui roule à 20 km/h à l'échelle se déplace à une vitesse réelle de :
Formule calcul.4.jpg
Et une petite vidéo avec le boitier qui regroupe l'écran et l'Arduino. Il est équipé du code V2.10 qui est mis plus haut et qui autorise deux mesures sans attente avec une temporisation non bloquante.
Tachymètre HO - 2e essai.mp4

Re: Tachymètre HO

Posté : 02 juin 2026, 11:48
par Bud_fr
:PetitPoucejpg:

:a_suivre:

Re: Tachymètre HO

Posté : 02 juin 2026, 12:15
par herwat
Ok , compris ! :cooooool: et :merciiii:

Re: Tachymètre HO

Posté : 02 juin 2026, 12:18
par Amigorl
C'est vrai que ce ne serait pas un vrai détecteur d'occupation comme on a l'habitude avec la détection de courant.

Alors je ne peux que m'exprimer sur Rocrail en fonction de comment sont configurés les blocs et détecteurs, la première détection marquera l'occupation du bloc, tant que le bloc n'est pas libéré, Rocrail ne prends plus en compte les détections suivantes.
Il peut donc passer autant de wagons ou d'essieux, pas de problème.
Peut-être plus adapté pour un détecteur IN qui arrête la loco avant la fin du bloc plutôt qu'un détecteur ENTER marquant l'entrée dans le bloc.
Par exemple, pour les voies de garage rotonde ou Apt avec gestion à un seul détecteur, c'est adapté et tout monté.
De mon côté je reste sur les détecteurs Ramasoft/DocMarco mais pour ceux qui ne souhaitent pas trop jouer avec la soudure de composants électroniques, ce peut être une solution pas chère, certe liée à Rocrail qui le permet, pour les autres logiciels, je ne sais pas.

Re: Tachymètre HO

Posté : 02 juin 2026, 13:39
par ramasoft
Il faut que le logiciel puisse discriminer et ne considérer que la toute première impulsion, mais ils doivent le faire car tout dispositif génère des rebonds.
Il faudrait tester en situation réelle et surtout sur plusieurs machines qui ont des hauteurs différentes car j'ai peur que tout ne soit pas détecté.
Donc, pour une détection qui ne met pas la sécurité en jeu, ça peut être une très bonne alternative, mais pour l'occupation d'un canton je ne m'y fierait pas.
L'avantage des TTP c'est leur faible cout (10 centimes) et leur facilité de mise en œuvre: on peut les poser a postériori sans tout casser.

J'ai une autre application à tester: c'est pour la commande de mon DFLpayer qui fait klaxonner les trains.
Il est pour le moment commandé à l'ancienne par deux ILS et ça marchait très bien jusqu'à l'apparition des attelages magnétiques que j'utilise beaucoup et qui déclenchent le DFPLayer à chaque passage d'un attelage... donc le système n'est plus utilisable.
J'avais fait une solution électronique avec qui n'envoie qu'une seule impulsion et se bloque pendant 20 secondes. Ça marche mais c'est un peu trop compliqué à mon gout alors qu'une solution Arduino sera hyper simple et bien plus élégante.

Je pense qu'il y a aussi d'autres applications possibles de ces TTP.

Re: Tachymètre HO

Posté : 02 juin 2026, 15:20
par ramasoft
Alors le repas étant source de réflexion, je m'aperçois que la temporisation non bloquante va poser problème sur les convois car il y aura plusieurs mesures consécutives qui vont se succéder au passage des wagons.
Donc il faut une période initiale réfractaire de 5 à 10 secondes, et donc rajouter un Delay(10) au début et le reste en non bloquant pour laisser la mesure affichée en tout au moins 20 à 30 secondes mais avec juste les 10 premières incompressibles ... comme les peines de prison.

Re: Tachymètre HO

Posté : 02 juin 2026, 15:43
par C2Vues-BricoTrain
ramasoft a écrit : 02 juin 2026, 15:20 mais avec juste les 10 premières incompressibles ... comme les peines de prison.
C'est comme dans un tableur (Excel ou autre...), il faut mettre la bonne valeur dans la cellule... :mdr1: :mdr3:

Re: Tachymètre HO

Posté : 02 juin 2026, 16:12
par herwat
Cela pourrait être intéressant , par exemple, pour maintenir fermé un passage à niveau le temps du passage du train . . . :siffle:

Re: Tachymètre HO

Posté : 02 juin 2026, 16:30
par ramasoft
J'y ai pensé aussi pour les passages à niveau.
Mais il ne faut pas perdre de vue que la détection n'est pas fiable dans tous les cas donc j'ai l'impression qu'il faut prévoir des béquilles logicielles.

Re: Tachymètre HO

Posté : 02 juin 2026, 16:51
par ramasoft
C2Vues-BricoTrain a écrit : 02 juin 2026, 15:43
ramasoft a écrit : 02 juin 2026, 15:20 mais avec juste les 10 premières incompressibles ... comme les peines de prison.
C'est comme dans un tableur (Excel ou autre...), il faut mettre la bonne valeur dans la cellule... :mdr1: :mdr3:
:hhhaaaa: :hhhaaaa:

Re: Tachymètre HO

Posté : 02 juin 2026, 17:38
par TrainDoly
Haaaa, voilà un sujet qui m'intéresse!

Vas-y Patrick, fais chauffer ta cervelle!