Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Arduino Eclairage programmé d'une gare pour les nuls

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 16:53 
Pour ne pas se décourager en démarrant une nouvelle technique, rien ne vaut un petit projet archi-facile où vous êtes sûr d’aller jusqu’au bout.
Je préfère ouvrir un nouveau post ; si on ouvrait un post par projet, ce serait plus facile plus tard pour s’y retrouver ; tandis que le projet PN ou le projet triage vont être noyés dans des pages et des pages et c’est dommage car ils sont super intéressants.
En possession d’une carte Arduino depuis quelques mois, j’avais l’intention de tester ses possibilités en réalisant l’éclairage programmé de ma gare type Neuvy de Jouef que j’ai monté il y a 40 ans. L’article sur Arduino dans LR a quelque peu précipité les choses et c’est tant mieux.
Rien ne vaut une vidéo pour se rendre compte du résultat :

http://www.youtube.com/watch?v=HzRWQ7U4uPQ&feature=youtu.be

Avec une série de messages, j’explique comment faire.
La gare se compose de plusieurs locaux :
- Des chambres au premier
- Un Buffet
- Un local Bagage
- Un local Consigne
- Un local Bâtiment Voyageurs ( à 3 fenêtres )
- Un WC
- Un quai en deux parties
Chaque local est équipé d’un point de lumière sauf le BV qui en comporte 3 indépendantes. Le quai comporte 2 rampes d’éclairage également indépendantes au néon. Sur l’une d’elles, les néons sont un peu fatigués.
Le WC a également un néon dont le tube est à changer.
La séquence d’allumage est déclenchée par l’approche d’un convoi de la zone gare et l’extinction par la sortie de tous les convois de la zone gare.
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 16:56 
La première tâche est de bien détailler le déroulé des phases d’allumage et d’extinction. C’est même la partie la plus importante du projet ; après, c’est juste de la bidouille.
Il y a 10 sorties mais on pourrait aller jusqu’à 12 avec une carte UNO :
Gare1, Gare2, Gare3, Consigne, Bagage, Buffet, Chambres, WC, Quai1 & Quai2.

Dans mon projet, il y a 2 capteurs d’entrée avec des photorésistances LDR03 car j’ai 2 voies en gare ; on peut aller jusqu’à 6. Il n’y a qu’une valeur de « seuil » pour les LDR ; l’écart entre les 2 reste assez faible ; il serait assez facile dans le cas contraire d’avoir « seuil1 » & « seuil2 ».

J’ai un état d’éclairage « Allumé » et un état « Eteint »

Au départ « chambres » est allumé

Dans la boucle, on a :
Mesure des 2 LDR
Impression des valeurs des LDR dans le Terminal Série

IF( (LDR1< seuil ou LDR2<seuil) &( éclairage =éteint))
// Début de la séquence d’allumage
« Chambres » éteint ; délai 1000 ;
« Buffet » allumé ; délai 2000 ;
« Consigne » allumé ; délai 200 ;
« Bagage » allumé ; délai 100 ;
« Gare1 » allumé ; délai 200 ;
« Gare2 » allumé ; délai 300 ;
« Gare3 » allumé ; délai 300 ;
« Quai1 » allumé ; délai 20 ;
« Quai1 » éteint ; délai 400 ;
« Quai1 » allumé ; délai 1000 ;
« Quai2 » allumé ; délai 20 ;
« Quai2 » éteint ; délai 200 ;
« Quai2 » allumé ; délai 20 ;
« Quai2 » éteint ; délai 100 ;
« Quai2 » allumé ; délai 20 ;
« Quai2 » éteint ; délai 200
« Quai2 » allumé ;
Eclairage = allumé ;// fin de IF


IF( (LDR1< seuil ou LDR2<seuil) &( éclairage =allumé))
// Début de la séquence du clignotement du néon malade des WC
« WC » allumé ; délai 50;
« WC » éteint; délai 200;
« WC » allumé ; délai 50;
« WC » éteint; délai 400;
« WC » allumé ; délai 50;
« WC » éteint; délai 650;
« WC » allumé ; délai 50;
« WC » éteint; délai 300;// fin de IF

IF( (LDR1>seuil & LDR2>seuil) &( éclairage =allumé))
// Début de la séquence d’extinction
« Quai1 » éteint ; délai 300 ;
« Quai2 » éteint ; délai 500 ;
« Gare3 » éteint ; délai 500 ;
« Gare2 » éteint ; délai 200 ;
« Gare1 » éteint ; délai 600 ;
« Consigne » éteint ; délai 500 ;
« Bagage » éteint ; délai 2000 ;
« Buffet » éteint ; délai 500 ;
« Chambres » allumé ;
Eclairage = éteint ;// fin de IF
// fin de la boucle
A chacun de mettre les délais qui lui conviennent ; il faut faire plusieurs séries de tests pour avoir l’effet recherché.
Nul doute que c’est la partie la plus ardue d u travail.
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 17:16 
Bravo, tu m'a devancé sur ce point là.

Tu utilise l'arrivée et le départ d'un convois pour l'allumage / extinction.
Perso, je pensais juste utiliser la faiblesse de l'éclairage ambiant pour provoquer l'allumage des bâtiments (via une photorésistante).

:siffle:
Cordialement,

Christian.
Avatar de l’utilisateur
likiki
Causant
 
Messages: 278
Inscrit le: Dim 29 Avr 2012, 14:21
Localisation: Corbeil Essonne
Âge: 51
Echelle pratiquée: H0 3R
Prénom: Christian

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 18:14 
likiki a écrit:Tu utilises l'arrivée et le départ d'un convoi pour l'allumage / extinction.
Perso, je pensais juste utiliser la faiblesse de l'éclairage ambiant pour provoquer l'allumage des bâtiments (via une photorésistante).

:siffle:

On peut aussi utiliser la variation de l'éclairage ambiant, le programme est le même mais j'ai préféré faire l'allumage et l'extinction à chaque arrivée de convoi: cela arrive plus souvent
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 18:18 
La partie mise en place des LEDs dans la gare n’est pas difficile ; j’ai choisi des LEDs assez puissantes pour que même dans la lumière artificielle normale, on distingue bien « allumé » ou « éteint » ; ce sont des Super LED carrée 7,62mm Blanc chaud 3,4V@70mA ; j’ai ajusté la résistance en série pour avoir 20mA : elle fait 82 Ohms. Ainsi la consommation maxi est le 120mA sous 5volts.
Pour le néon des WC, c’est un modèle qui vient d’Italie acheté à Rail Expo Réf HO 5022 de
http://www.msaccessoriferroviari.it/
Une résistance série de 270 Ohms lui convient.
Pour les quais, il s’agit de 2 réglettes de 12 Volts ce qui nécessite une annexe (shield) qu’on verra plus loin.
Aux fenêtres de la gare, j’ai collé du papier translucide assez épais ; il est bon de faire un essai avant.
Dans le fond de la gare, j’ai fait une bonne découpe dans laquelle s’encastre une plaque de carton qui supporte les LEDs . Une photo vaut mieux qu’un long discours.
Image
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 18:51 
Bravo Doxy pour cette réalisation et cette vidéo (pauvre Chef de gare ; il lui reste la Pomponette ! :lol: ).

Tu as eu une bonne idée d'ouvrir un nouveau forum ; je l'ai expliqué ailleurs, une fois un projet fini, il faut le préserver pour l'avenir et on s'y retrouve mieux si on sait où chercher. Avec un forum par sujet, c'est plus facile.

Juste une petite précision, avec un Uno, tu as 20 sorties possibles : 14 sorties numériques (0 à 13) et 6 sorties analogiques (A0 à A5) qui peuvent être aussi utilisées en numériques (dans ce cas, on les numérote 14 à 19). Sur un Mega2560, c'est de la même façon, 54 + 16 soit 70 lignes d'entrées-sorties possibles, de quoi éclairer, les uns à la suite des autres, tous les appartements d'une petite ville. :wink:

Et maintenant, comment vois-tu la suite ? Penses-tu à des améliorations possibles ? Ou vas-tu te diriger vers un autre projet ? En tout cas, j'ai bien aimé que tu conseilles de faire simple pour commencer, histoire de ne pas se décourager par un projet dont on ne vient pas à bout. :ange:
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1698
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 18:58 
Arduino a écrit:Juste une petite précision, avec un Uno, tu as 20 sorties possibles : 14 sorties numériques (0 à 13) et 6 sorties analogiques (A0 à A5) qui peuvent être aussi utilisées en numériques (dans ce cas, on les numérote 14 à 19). Sur un Mega2560, c'est de la même façon, 54 + 16 soit 70 lignes d'entrées-sorties possibles, de quoi éclairer, les uns à la suite des autres, tous les appartements d'une petite ville. :wink:

Et maintenant, comment vois-tu la suite ? Penses-tu à des améliorations possibles ? Ou vas-tu te diriger vers un autre projet ? En tout cas, j'ai bien aimé que tu conseilles de faire simple pour commencer, histoire de ne pas se décourager par un projet dont on ne vient pas à bout. :ange:


20 sorties certes mais la 0 et la 1 sont + ou - réservées pour la transmission et les A0 à A5 pour les entrées avec les LDR
Je vais déjà terminer ce sujet avec quelques complèments, Ensuite c'est les Fêtes... après on verra
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Jeu 19 Déc 2013, 19:15 
Oui, tu as raison, mais en fonction de ton projet, ces spécificités ne sont peut-être pas nécessaires.

Prenons un exemple, celui de faire clignoter un gyrophare devant un PN fermé. Il suffit de deux sorties (une pour le gyro et une pour les feux de PN. Avec un Uno, on peut choisir les sorties qu'on veut, mais vu qu'on n'aura pas besoin de faire communiquer le module, il est plus simple de choisir les premières sorties qui se présentent. Ainsi, le programme fonctionnera aussi sur un autre microcontrôleur plus petit (exemple Attiny, qui a très peu de broches de sorties) sans avoir besoin de changer les numéros de broches dans le programme et le recompiler.

Maintenant, si tu souhaites étendre ton application dans l'avenir pour quelque chose de plus compliqué, il est intéressant de choisir les broches en fonction de ce qu'elles doivent faire. :gne:
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1698
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Sam 21 Déc 2013, 17:18 
Voilà le programme complet.
Il n'est absolument pas optimisé pour bien comprendre.
Il ne comporte que des IF
// allumage et extinction de 10 Leds en fct des entrées A0 et A1
//Version 30/11/2013
const int photoLDR0 = 0;// Entrée A0
const int photoLDR1 = 1;// Entrée A1
const int Bagage = 13;
const int Consigne = 12;
const int Gare1 = 11;
const int Gare2 = 10;
const int Chambres = 9;
const int Gare3 = 8;
const int Buffet = 7;
const int WC = 6;
const int Quai1 = 5;
const int Quai2 = 4;
byte state = 0; // Etat de l'éclairage "allumé" ou "éteint"
int mes1 = 0; //Approche d'un convoi Voie 1
int mes2 = 0; //Approche d'un convoi Voie 2
int seuil = 930; // Seuil de détection des LDR avec les LEDs JAO avec 270K
// Mettre la valeur lue de A0 & A1 sans convoi moins 50 environ
void setup(){
 Serial.begin(115200);
  pinMode(Buffet, OUTPUT);
  pinMode(Bagage, OUTPUT);
  pinMode(Consigne, OUTPUT);
  pinMode(Gare1, OUTPUT);
  pinMode(Gare2, OUTPUT);
  pinMode(Gare3, OUTPUT);
  pinMode(Quai1, OUTPUT);
  pinMode(Quai2, OUTPUT);
  pinMode(Chambres, OUTPUT);
  pinMode(WC, OUTPUT);
  digitalWrite(Chambres,HIGH);//Hors convoi en gare, les Chambres sont allumées
   // state = 1 >éclairage mis & state = 0 > éclairage éteint
  }
void loop(){
mes1 = analogRead(photoLDR0);
mes2 = analogRead(photoLDR1);
Serial.print("A0: ");Serial.println(mes1);
Serial.print("A1: ");Serial.println(mes2);
 if (((mes1 < seuil) || (mes2 < seuil)) && (state == LOW)){ //state ==> HIGH= Pas de convoi en vue;LOW= convoi en approche & Eteint
  digitalWrite(Chambres,LOW);delay(1000);
  digitalWrite(Buffet,HIGH);delay(2000);// 3s
  digitalWrite(Bagage,HIGH);delay(200);
  digitalWrite(Consigne,HIGH);delay(100);
  digitalWrite(Gare1,HIGH);delay(200);
  digitalWrite(Gare2,HIGH);delay(300);
  digitalWrite(Gare3,HIGH);delay(300);// 4,6s
  digitalWrite(Quai1,HIGH);delay(20);//Bref éclair de 20 ms
  digitalWrite(Quai1,LOW);delay(400);
  digitalWrite(Quai1,HIGH);delay(1000);// on peut allumer Quai2, 6s
  digitalWrite(Quai2,HIGH);delay(20);//Bref éclair de 20 ms
  digitalWrite(Quai2,LOW);delay(200);
  digitalWrite(Quai2,HIGH);delay(20);//Bref éclair de 20 ms
  digitalWrite(Quai2,LOW);delay(100);
  digitalWrite(Quai2,HIGH);delay(20);//Bref éclair de 20 ms
  digitalWrite(Quai2,LOW);delay(200);
  digitalWrite(Quai2,HIGH); //Allumage en 6,5s
  state = 1; // Allumé
  }
if (((mes1 < seuil) || (mes2 < seuil)) && ( state == HIGH)) // Train en approche et Allumé
{
  digitalWrite(WC,HIGH); delay(50);
  digitalWrite(WC,LOW); delay(200);
  digitalWrite(WC,HIGH); delay(50);
  digitalWrite(WC,LOW); delay(400);
  digitalWrite(WC,HIGH); delay(50);
  digitalWrite(WC,LOW); delay(650);
  digitalWrite(WC,HIGH); delay(50);
  digitalWrite(WC,LOW); delay(300);// 1750ms
}
if (((mes1 > seuil) && (mes2 > seuil)) && (state == HIGH)) // Aucun train et Allumé
{
  digitalWrite(Quai1,LOW);delay(300);
  digitalWrite(Quai2,LOW);delay(500);
  digitalWrite(Gare3,LOW);delay(500);
  digitalWrite(Gare2,LOW); delay(200);
  digitalWrite(Gare1,LOW); delay(600);
  digitalWrite(Consigne,LOW);delay(500);
  digitalWrite(Bagage,LOW); delay(2000);
  digitalWrite(Buffet,LOW);delay(500);
  digitalWrite(Chambres,HIGH);//extinction en 5100ms
  state = 0; // Eteint
}
}

Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Lun 30 Déc 2013, 11:51 
les Fêtes de Noel sont terminées, on peut passer à la suite:
Comme écrit plus haut, il faut fabriquer une petite carte électronique pour utiliser les réglettes de 12 Volts ; le schéma est le suivant :
Image
Le transistor est un TIP31C avec une résistance de 4,7K dans la base; ce serait mieux d’y mettre un transistor MOSFET (canal N) par exemple le IRL540N (ou le IRFZ 44A ou le RFP50N06 ou encore le BUZ11) MAIS attention tous les MOSFET ne conviennent pas, nous en avons fait l’amère expérience dans mon club : pour certains (comme le IRL540 sans l’indice N), il faut une tension de commande supérieure à 5volts à l’entrée pour être en régime saturé avec une intensité de courant importante comme dans le cas des moteurs PECO. Dans ce cas, il n’y a pas lieu de mettre une résistance de 4,7K ; on relie directement la grille à la sortie Arduino.
J’ai mis un TIP31C car il m’en reste un stock d’environ 120 après les avoir remplacés par des IRL540N pour commander des réseaux dont les aiguilles étaient pourvues de moteurs PECO.
Sur la carte annexe, j’ai aussi placé les 2 résistances à mettre en série avec les LDR ; j’ai mis des 270K mais on peut mettre n’importe quoi de 100K à 470K, de toute façon, il faudra déterminer la valeur du « seuil »
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Lun 30 Déc 2013, 12:06 
Comme capteurs d’entrée, j’ai choisi des Photo résistances (LDR) car mon système de Pilotage par PC ( de JAO System) dispose d’une LED par canton qui s’éclaire lorsque un convoi est en approche ; la seule précaution à prendre est de laisser un peu de tension sur le canton, même convoi à l’arrêt, c’est facile si votre alimentation est une PWM. La LED de mon TCO a un diamètre de 5mm et la LDR également, coup de bol ! Il suffit d’un tube en plastique noir (une paille) qu’on enfile sur l’ensemble LDR/LED. Petit inconvénient : je ne vois plus la LED mais qu’importe, si elle est allumée, l’éclairage de la gare est en phase d’allumage ou allumée.
Pour la mise au point, il suffit de brancher la carte Arduino sur un PC et de lire les infos via le Terminal Série en l’absence de tout convoi et avec l’éclairage d’ambiance habituel : on obtient la valeur LED éteinte= pas de convoi (par exemple 980) ; puis on retourne dans le programme et on met cette valeur moins 50 ( donc avec l’exemple choisi 980-50= 930) dans la valeur de « seuil ».
Si vous ne pouvez utiliser cette solution, il en existe d’autres, par exemple plusieurs modules de détection à distance (voir le Forum LR, Arduino - pour les nuls et débutants page 7 ) ou alors un système de comptage-décomptage en entrée et sortie de gare : quand N=0 pas de convoi en gare et si N>0 il y a un convoi en gare. Vous pouvez aussi comme le fait remarquer likiki ne mettre qu’un LDR pour vous asservir à la lumière ambiante.
Photo de la carte annexe :
Image
Sur la photo de la carte annexe, on peut voir une LED avec une résistance, c'est juste pour "tester" la sortie d'un des 2 transistors les réglettes étant déjà en place sur le réseau.
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Sam 18 Oct 2014, 21:44 
Bonjour Doxy,

Je me permet de revenir sur votre projet, très intéressant et à la portée de tout le monde. Après avoir étudié un peu Arduino, graçe aux articles sur loco revue et ce forum, j'ai finalement réussi à réaliser un premier prototypage dont je vous joins une photo. Le schéma est le même que le votre, car je compte commander l'éclairage par une photorésistance en fonction de la lumière ambiante. J'ai aussi séparé l'alimentation de l'Arduino (pile de 9v) de celle des leds (12v cc) et monté une platine "shield connector" au dessus de l'Arduino. Il ne reste plus que à reproduire le même schéma pour tous les leds et paramétrer le logiciel.

Merci pour avoir partagé votre projet!

Cdt

Federico

Image
Wilpu (sup. dem.)
 

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Sam 18 Oct 2014, 22:08 
Bonsoir Federico
C'est un peu dommage d'utiliser 2 alimentations différentes pour le module Arduino et pour les LEDs. Pour faire chuter la tension de 12v à 9v, on peut soit utiliser un régulateur 7809 soit plus simplement une zener en série de 3,0v ( 1,3W) ou même 4 diodes 1N4008 en série.
Bon courage
Avatar de l’utilisateur
Doxy
Disert
 
Messages: 420
Inscrit le: Jeu 04 Mai 2006, 17:34
Localisation: Ronchin (59)
Âge: 76

Re: Arduino Eclairage programmé d'une gare pour les nuls

Publié: Dim 19 Oct 2014, 09:47 
Merci Doxy, c est noté
Wilpu (sup. dem.)
 


Retour vers Arduino

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 4 invité(s)