Ces 2 phénomènes sont indépendants et peuvent donc aussi bien être effectués conjointement qu'individuellement.
Pour cela j'ai utilisé une carte Arduino Uno, une bande LED BLEUE pour la nuit et, une Bande LED BLANC FROID pour les éclairs, deux interrupteurs (1 pour la nuit et 1 pour l'orage), du fil, éventuellement une ou 2 résistances si les bandes LED ne comportent pas de résistance. Dans ce dernier cas ont utilisera une résistance de 10 Ohms 1/2 Watt de protection en amont sachant que les sorties 13 et 11 (Broches numériques) délivreront une tension de 5 V. Relier le - des bandes LED à la masse.
L'interrupteur commandant l'allumage des éclairs aléatoires est branché entre la masse de "Broches d'alimentation" et la "broche analogique 0". Un circuit fermé à la Masse déclenchera l'orage.
Idem pour la nuit bleue mais cette fois relié à la broche analogique 1. Pour éviter un fonctionnement instable des LED Bleues en cas d'extinction, l'interrupteur sera aussi relié à la broche 5 V. (c'est à dire si 0 v allumage des LED bleues; si 5 v extinction).
Voici une démonstration du montage sur mon réseau de trains :
Un Cd de bruitage d'orage accompagne les effets lumineux.
Ci-joint le programme que j'ai créé pour la carte Arduino :
[code]
/*
Blink aleatoire et nuit pour réseau de trains :
Pour générer aléatoirement ,si un interrupteur est enclenché, des éclaires afin de simuler un orage avec une bande led blanche ton froid au dessus d'un réseau de train tous les 5 à 15 secondes d'intervalles
et / ou
éclairer une bande led bleue grâce à un second interrupteur pour simuler la nuit bleue
Réalisé par Frédéric GARRIDO le 26/04/2018
*/
int analogPin0 = 0;
int analogPin1 = 1;
int val0 = 0;
int val1 = 0;
long randNumber2; // déclaration d'une variable long
long randNumber1; // déclaration d'une variable long
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN (13 generaly) and pin 11 as an output .
pinMode(LED_BUILTIN, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600); // initialise la connexion série vers le PC à 9600 bauds
randomSeed(analogRead(0));
}
// the loop function runs over and over again forever
void loop() {
val0 = analogRead(analogPin0); // interrupteur pin 0 pour contrôle LEd blanche
val1 = analogRead(analogPin1); // interrupteur pin 1 pour contrôle led bleue
Serial.print("pinA0 : "),
Serial.println(val0);
switch (val0) {
case 0 : Serial.print(" pas d'orage ");
break;
default:
Serial.print("attention orage ");
}
Serial.print("pinA1 : "), Serial.println(val1);
switch (val1) {
case 0 : Serial.print(" Nuit ");
break;
default:
Serial.print(" jour ");
}
if (val1 == 0) // si second interrupteur sur masse
{ digitalWrite(11, HIGH); // TURN BLUE LED on
}
else
{ digitalWrite(11, LOW); // turn blue led off
}
if (val0 == 0) // si premier interrupteur sur 0 v
{
digitalWrite(LED_BUILTIN, LOW); // éteindre en permanence led blanche pas d'orage
}
else {
digitalWrite(LED_BUILTIN, LOW);
randNumber2 = random(5000, 15000); // turn the white's LED off during between 5 and 15 seconds
Serial.println(randNumber2);
delay (randNumber2);
digitalWrite(LED_BUILTIN, HIGH); // flash the white's LED
randNumber1 = random(100, 2000); // déterminate the time of flash between 0.1 and 2 seconds
Serial.println(randNumber1);
delay(randNumber1); // waiting for .1 à 2 sec
}
}
[/code]
Maintenant vous avez toutes les données en main afin de donner un surplus de réalisme à vos réseaux. ! J'espère bien que cette réalisation se retrouvera à l'occasion de belles expositions de trains.
Frédéric GARRIDO (Chapelon01)
Aucun commentaire:
Enregistrer un commentaire