Auteur Sujet: PROBLEME IR  (Lu 4584 fois)

Alex2lain

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
PROBLEME IR
« le: janvier 15, 2021, 09:18:40 am »
Bonjour !
Je suis assez basique en ARDUINO, mais je me débrouille tant bien que mal pour créer mes projets pour mon réseau.
En tout cas, mes projets fonctionnent toujours sur breaboard avant essai d'exploitation sur mon réseau.
La théorie :
Sur une voie en boucle, j'ai créé un canton simple, qui me permet d'avoir 2 trains qui ne se rattrapent jamais.
1ere ILS le train coupe l'alimentation du train suivant, et passe un feu au rouge.
2eme ILS située quelques mètres plus loin, ce même train remet l'alimentation sur la voie vers le feu rouge et remet le feu au vert.

Pour le code :


int R1 = 4;                       // PILOTAGE RELAIS VOIE
int R2 = 5;                       // PILOTAGE RELAIS FEUX
int ILS1 = 2;                     // IR INFRAROUGE AMONT
int ILS2 = 3;                     // IR INFRAROUGE AVAL
int detection1;                   // DETECTION IR AMONT
int detection2;                   // DETECTION IR AVAL

void setup() {
 
pinMode(R1, OUTPUT);              // DECLARATION PIN 4
pinMode(R2, OUTPUT);              // DECLARATION PIN 5
pinMode(ILS1, INPUT_PULLUP);      // DECLARATION PIN 2
pinMode(ILS2, INPUT_PULLUP);      // DECLARATION PIN 3

digitalWrite(R1, HIGH);           // ETAT INITIAL RELAIS VOIE
digitalWrite(R2, HIGH);           // ETAT INITIAL RELAIS FEUX
}

void loop() {

detection1 = digitalRead(ILS1);   // ILS1 DETECTE LE PASSAGE DU TRAIN
if (detection1 == 0){
  digitalWrite(R1, LOW);          // RELAIS R1 COUPE ALIMENTATION VOIE POSITION DEVANT FEUX
  digitalWrite(R2, LOW);          // RELAIS R2 ALIMENTE LE FEUX ROUGE
}
detection2 = digitalRead(ILS2);   // ILS2 DETECTE LE PASSAGE DU TRAIN ( POSITION DETERMINEE SUIVANT LONGUEUR TRAIN )
if (detection2 == 0){
  digitalWrite(R1, HIGH);         // RELAIS R1 ALIMENTE VOIE DEVANT FEUX
  digitalWrite(R2, HIGH);         // RELAIS R2 ALIMENTE LE FEUX VERT
}
}

Mon problème :
Suivant le type de loco présente sur mon réseau, et pas forcément sur la voie concernée, mon système devient instable, et fait a peu près ce qu'il veut sans respecter les IR.
J'ai essayé de protéger les IR pour ne pas avoir de passage parasite qui déclencherait inopinément le programme.
Après une longue analyse, une bonne prise de tête, j'en ai déduit une hypothèse, j'ai trouvé en particulier que mes anciennes locos jouef dès fonctionnement me perturbaient mon système.
Ma question :
Y a t il quelque chose a changer sur mon code pour protéger mon système de perturbations extérieures ?
J'ai essayé de poser un antiparasitage par diode TVS dans mes locos jouef sans amélioration.
Je bute sur ce problème...
J'ajoute que j'ai aussi une gare cachée automatisée par arduino et IR pour 4 voies, même symptôme, au bout d'un moment si vous me permettez ça déconne autant. ( Si quelqu'un est intéressé, je peux joindre mon code et image fritzing de ma gare cachée ).
Au secours ! et merci pour vos contributions...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : PROBLEME IR
« Réponse #1 le: janvier 15, 2021, 09:32:45 am »
En général, quand on choisit un type de capteur, on le teste pour être certain qu’il est fiable et qu’il n’y a ni fausses détections, ni détections perdues.
C’est sûrement ce qui vous arrive car votre programme ne prévoit rien de tout ça !
Un programme de test (ou plusieurs) précède toujours le programme opérationnel que vous présentez.
Un bon nombre des comportements découverts durant les test sont alors incorporés dans le programme opérationnel.

Mettre la charrue avant les bœufs peut souvent conduire à cette situation.

Il y a plein d’autres types de capteurs décrits dans Locoduino. Les avez-vous essayé... et testé ?
« Modifié: janvier 15, 2021, 09:57:55 am par Dominique »
Cordialement,
Dominique

CATPLUS

  • Sr. Member
  • ****
  • Messages: 407
    • Voir le profil
Re : PROBLEME IR
« Réponse #2 le: janvier 15, 2021, 10:29:49 am »
Bonjour,
Je ne saurais trop de vous rapprocher de l'article de Christian

https://www.locoduino.org/spip.php?article204

A lire aussi

https://rudysmodelrailway.wordpress.com/2018/11/01/reversing-loop-arduino-controlled/

Cordialement
Marcel
Best Regards

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : PROBLEME IR
« Réponse #3 le: janvier 15, 2021, 12:19:41 pm »
Deux points faibles pour ces modules qu'on peut adapter à ses besoins (voir schéma):
1. l'alimentation VCC n'est pas filtrée, on peut tenter de mettre un 1000 µF 6.3V entre VCC et GND sur les modules.
2. La constante de temps 10K / 100 nF = 10 ms est dérisoire, on peut la passer à 0,1s  avec 1µF (! polarité) - ou 1s avec 10µF (6,3V ou plus) aux bornes de la diode réceptrice.

https://fr.made-in-china.com/co_kuongshun/product_Infrared-Obstacle-Avoidance-Tracking-Sensor-Module_reysriuug.html
« Modifié: janvier 15, 2021, 12:48:42 pm par msport »
Cordialement

Alex2lain

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : PROBLEME IR
« Réponse #4 le: janvier 16, 2021, 10:28:31 am »
Monsieur Dominique !
Voilà bien un message qui ne sert a rien !
J'ai plus l'impression de me faire engueuler plutôt que d'avoir un début d'aide de votre part.

Si vous aviez bien lu mon message...
Je suis basique en Arduino, je traduis, je m'en sers comme un débutant que je suis !
Vous me dites qu'il faut faire un test de fiabilité, je prends bien soin de marquer que le programme fonctionne très bien sur breadboard, que faut-il de plus ? Je ne m'attendais pas à ces réactions sur mon réseau.
Bien que me situant à la campagne, je n'ai en ma possession ni bœufs ni charrue. Juste ma très modeste expérience.
Pour une fois ( c'était ma 1ère ) que je m'exprime sur locoduino, je suis plutôt sur le mode douche froide, de votre part.
Il y a quand même 2 personnes qui ont au moins essayé de m'orienter et je les en remercie.
A ciao...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : PROBLEME IR
« Réponse #5 le: janvier 16, 2021, 03:13:36 pm »
Bonjour,
Je vois qu’on se vexe au lieu de tenir compte des conseils. Mais il y a de l’humour à la campagne donc rien n’est perdu  :D

En relisant votre message initial rien ne permet de comprendre ce que vous voulez dire par « instable » ou « fait n’importe quoi ». On peut être plus clair quand on attend une réponse bénévole.

J’aimerai savoir si vous avez progressé dans vos tests en reproduisant les phénomènes pour en déterminer la cause. Ce n’est sûrement pas en changeant le programme d’abord qu’il faut chercher si ce sont des rebonds ou des parasites : il faut essayer de les éliminer (conseil de msport).
Généralement un test sur breadboard hors de l’environnement ferroviaire marche du premier coup sauf erreur de câblage.
Dans votre cas, ce genre de problème, si ça ne donne rien, doit pouvoir se voir sur le moniteur de l’IDE avec des lignes de code de debug (des compteurs, des serial.print...) pour y voir plus clair, quand apparaissent les problèmes,  à quelle fréquence...

Bon courage et persévérance !

« Modifié: janvier 16, 2021, 03:29:37 pm par Dominique »
Cordialement,
Dominique

Alex2lain

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : PROBLEME IR
« Réponse #6 le: janvier 18, 2021, 09:32:07 am »
Bonjour, MSPORT

L'ajout du condensateur 1000 µF a déjà pas mal amélioré les choses. Merci.

Par contre j'ai un petit doute sur la position du 2ème condensateur.
Auriez vous l'amabilité de me le préciser sur le schéma que vous m'avez joint sur votre dernier post ?

Merci encore.

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2218
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : PROBLEME IR
« Réponse #7 le: janvier 18, 2021, 02:17:58 pm »
Comme ceci :
Cordialement