LOCODUINO
Parlons Arduino => JMRI et Arduino => Discussion démarrée par: paguillon@sfr.fr le mars 04, 2021, 09:05:37 am
-
Bonjour,
je vous propose une carte construite autour d'un Arduino Mega permettant la détection de l'occupation des cantons (ici jusqu'à 24). Cette occupation est ensuite transmise en C/MRI pour pouvoir s'interfacer avec JMRI par exemple.
Cette carte nécessite l'utilisation de cartes satellites placées sous chaque canton (voir câblage).
Je joins les photos, les fichiers Gerber (pour pouvoir par exemple les faire fabriquer sur www. jlcpcb.com), les fichiers EAGLE et le code Arduino.
Il me reste des cartes déjà tirées (celles de la photo) qui ont juste une petite correction que j'ai réalisé (petite erreur sur le typon d'origine)? J'en ai 3 de disponibles que je peux vendre (5€ pièce + le port) car la commande minimun sur le site de JLCPCB est de 5 cartes !
-
Super,
Merci pour ce partage.
Je propose de déplacer ce sujet dans la section « JMRI et l’Arduino »
-
Bonjour,
d'accord !
Cordialement
-
Une erreur de sérigraphie A et B pour la liaison RS485 sont inversés.
Les fichiers gerber avec la correction.
-
Bonjour
J'aimerais savoir comment se fait la section de présence des trains, quel montage est utilisé. Je n'ai pas trouvé de schémas dans les fichiers.
Pierre
-
Dans cablage.pdf, il y a le typon des satellites : détection par un pont de diodes BY255.
-
Bonjour
Oui merci j'ai vu cela. Mais ce qui m'intéresse c'est ce qu'il y a après sur la carte Arduino, comment c'est traité.
Pierre
-
Bonjour,
le principe est le suivant :
- en absence de loco sur le canton la tension aux bornes des diodes est nulle, donc après isolation/traitement avec un opto-coupleur l'entrée correspondant de l'Arduino est à 0v donc 0 logique;
- en présence d'une loco, les diodes sont passantes. On récupère alors une tension égale à 2 fois la tension de seuil des diodes. Après l'opto-coupleur l'entrée de l'Arduino est à 5v soit 1 logique.
Voilà pour le principe, mais...Le problème est qu'en DCC le signal passe par zéro, donc même en présence d'une loco l'entrée de l'Arduino va passer pendant une durée à 0. Aussi dans le code en C++ j'utilise la méthode pulseIn pour mesurer la durée de ce passage à 0. Au dessus d'une durée, cela correspond à la présence de la loco, en dessous au passage par 0 du signal DCC.
Le code en C++ est normalement dans le fichier compressé.
Pierre
-
Un extrait du schéma Eagle ...
-
Bonjour,
J'ai télécharger tes documents, Eeschema ne veut pas les ouvrir.
Les aurais-tu dans un autre format ?
Merci
-
Bonjour,
uniquement au format Eagle (gratuit).
Cordialement