Auteur Sujet: DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO  (Lu 22481 fois)

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« le: mars 15, 2018, 04:50:00 pm »
Bonjour

Détecteur N° de locos avec un pseudo code-barre (rien d'extraordinaire)

Merci à Jean-Luc & Christophe pour l’aide sur la partie Soft.

L’idée : installer un nombre de barres réfléchissantes sous une loco et lire un nombre d’impulsions. L’Arduino compte ce nombre et affiche le numéro de la loco préprogrammée sur un écran Oled128/x64 I²c.

Le plus : une fois l’alimentation coupée on garde dans l’EEPROM le numéro.





Quelques réserves :
Le nombre maximum de machines est limité « 12 » (j’ai fait des essais jusqu’à 15). La limite n’est PAS  le programme, mais le nombre de barres « longueur de la locomotive » mettre un maximum de bande réfléchissantes sur des machines dont l’écartement entre bogies est le plus court, le nombre d’impulsions est plus précis.

Les premiers tests, le détecteur  était placé  somme toute dans un endroit où la lumière du jour et l’éclairage étaient normaux, les essais étaient concluants.

J’ai installé 2 détecteurs (voir photo) sur le réseau & bien sur « Murphy » est arrivé.  :D



L’éclairage, allumage d’interrupteurs, branchement de prise, les IR, les contacts perturbent le CNY70 (ceci dit, pas tout le temps mais, après quelques minutes le numéro affiché changeait sans raison)
 
J’ai cherché pendant plusieurs jours une solution.

1_ Installer les 2 Arduinos dans un boitier métallique



2_ Rajouter un régulateur de tension 12volts 9volts
3_ Couper l’alimentation (+) du CNY avec un interrupteur
4_ Installer du fil blindé entre le CNY et les entrées de l’Arduino
5_ Installer des condensateurs sur la sortie de l’alimentation 220MKT et 10Nano



 Le résultat était toujours identique.
6_ En désespoir de cause, j’ai rajouté un condensateur de 100picos sur l’entrée D2 et la masse & depuis cela fonctionne (peut-être l’ensemble des éléments cumulés ?)



1_ Mise en place sous la loco des coupons de bande réfléchissante longueur 4mm et de largeur 5mm (j’utilise de la bande autocollante pour capteur de vitesse moteur)
Ils seront collés avec des intervalles de 4mm (on utilise la couleur noire du support de bogie pour couper le signal  le détecteur comptera que les bandes blanches réfléchissantes)







Faire un tableau dans lequel vous noter vos numéros de machines (maximum 4 chiffres) Plus le bogie est court, plus  vous devrez installer de barres (à calculer)
Dans le programme ligne => 28   remplacer les numéros existant de machines par les vôtres » NE PAS supprimer le  -00-  il correspond à un numéro NON UTILISE »
Dans le programme ligne => 41   vous pouvez remplacer  « TRACK_1 » par une autre entité composée d’un maximum de lettres (7)

2_ Détecteur CNY70, il est très sensible à la lumière (IR, Néon, etc…) pour les raisons mentionnées ci-dessus et au regard du coup de l’opération je suis allé jusqu’au bout, dans un endroit sombre 100% d’efficacité et 98% avec les perturbations.
Une donnée de dernière minute que je n’avais pas pris du tout en compte…(avec du code 55 => décodage correct, avec du code 100 =>  erreur de décodage)
ATTENTION. Le réglage entre le bogie et le CNY est très important, suivant le code utilisé (100, 83, 75, 55) l’espace entre le détecteur et le haut du rail doit être EGAL à 1,5 mm « j’ai fabriqué une cale »



Pour le code 55 le haut du CNY est à la limite des traverses.
Branchement, ATTENTION suivre le plan, 2 fils Rouge sur les plus (+), un fils noir (- ), avec résistance de 220homs, un fil bleu (- ) avec résistance de 22K , sortie vers interface.
Avant d’installer les gaines thermorétractables, faire le test de tout l’ensemble.
Installer les gaines thermorétractables sur les 4 pins du CNY70
Installer une autre gaine thermorétractable plus importante qui entoure les 4 petites (voir photo)











L’alimentation est en 12volts CC pour l’ensemble et le CNY70, un régulateur de tension 9volts pour les Arduinos
L’installation entre la voie du CNY70, faire un perçage d’un diamètre de 8mm, agrandir à la lime pour intégrer le CNY70.
Réglage, celui-ci sera installé à la hauteur des traverses (lire précédemment, voir photo) et dans le sens de marche (voir photo)







3_ Interface CNY vers Arduino
Cette interface comprend un Transistor 2N3904, 1 potentiomètre de 100k, 3 résistances 2 x 1k et 1x 10k

4_ Arduino Nano
   Entrée de l’interface sur la Pin D2
   Sortie Afficher OLED A4 & A5
L’alimentation de l’afficheur est en 5volts CC via le Nano (voir schéma)



5_ Programme
L’affichage n’est pas instantané, il est légèrement long (10 secondes) c’est normal. L’Arduino doit calculer le nombre de barres (1 ou 2 bogies) La vitesse de la loco n’a pas d’incidence sur le comptage.

Une vidéo


Le programme

Cordialement
Marcel


Best Regards

fran6t

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« Réponse #1 le: juillet 11, 2020, 08:07:42 am »
Merci beaucoup sur ce retour d'experience, je viens de m'inscrire seulement maintenant alors que cela fait longtemps que je lis Locoduino.

Petite suggestion de cablage, faire une petit pont entre les pattes 3 et 2 directement au niveau du composant puisqu'elle sont au + et cela permet de gagner un fil

Encore merci pour ce partage !

pn200

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« Réponse #2 le: juillet 16, 2020, 10:37:39 am »
Bonjour,
Lorsque je fais "Vérifier"
J'ai une erreur en ligne 24: OLED_TRACK_1:24:2: error #error("Height incorrect, please fix Adafruit_SSD1306.h!");
C'est un Nano (Old bootloaer). J'ai peut-être oublié une libraierie.
Bonne journée
Bernard

fcot2002

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« Réponse #3 le: juillet 17, 2020, 03:15:16 pm »
Salut @ tous !

Booooooooooooooo 8) 8) 8) 8) 8) 8) 8) 8)

pn200

  • Newbie
  • *
  • Messages: 38
    • Voir le profil
Re : DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« Réponse #4 le: juillet 17, 2020, 10:07:26 pm »
CATPLUS
Merci, je vais essayé. Si j'y arrive.
Bonne soirée
Bernard

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DETECTEUR NUMERO LOCOMOTIVE CNY70 + NANO
« Réponse #5 le: juillet 17, 2020, 10:19:38 pm »
Curieusement j'utilise des OLED 0.96" qui sont en en 128x64 sans modifier Adafruit_SSD1306.h qui est par défaut en 128x32.
avec #define SSD1306_128_32 ///< DEPRECATED: old way to specify 128x32 screen
Je suppose qu'à force d'empiler les bibliothèques, quelque part un #define SSD1306_128_64 vient le remplacer ...

car on y trouve :
#if defined SSD1306_128_64
#define SSD1306_LCDWIDTH 128 ///< DEPRECATED: width w/SSD1306_128_64 defined
#define SSD1306_LCDHEIGHT 64 ///< DEPRECATED: height w/SSD1306_128_64 defined

DEPRECATED = obsolète
Cordialement