Parlons Arduino > Vos projets
Un BV animé par ATtiny 85
Dominique:
Bonjour à tous,
Je viens de finir (presque) la réalisation de ma gare sur la base du BV 3 portes "Saint Désert" d'Architecture et Passion.
C'est très agréable à construire, vu que les pièces sont prédécoupées au laser. J'ai voulu le faire aussi bien que possible.
Comme il y a les cloisons à l'intérieur, j'ai décidé d'intégrer un ATtiny85 pour gérer les éclairages des pièces avec un peu d'aléatoire.
Pour cela j'ai récupéré les leds cms d'un ruban et je les ai insérées dans le plafond du rez de chaussée :
Et j'ai installé un Digispark à l'étage supérieur :
Evidemment j'ai gardé la structure intérieure amovible pour reprogrammer l'ATtiny éventuellement.
Mon programme ne casse pas des briques, mais je me suis bien amusé :
--- Code: ---/*
* animation lumineuse de la gare de La Roche
* basée sur un ATtiny85
* 5 pins utilisées : 0 à 4
* pin 0 = entrée clients, toujours allumée
* pin 1 = bureau de vente, avec employé
* pin 2 = salle d'attente, parfois éteinte
* pin 3 = bureau, parfois allumé
* pin 4 = etage, parfois allumé
* pin 5 = entrée analogique pour faire de l'aléatoire
* une temporisation de 10 secondes change l'état des leds
*
* Version 1.00 du 11 juin 2017 Dominique (Locoduino)
*/
// constantes
const int tempo1 = 5000;
const int tempo2 = 10000;
// variables
byte leds = 0B00011111; // état des leds - - - 4 3 2 1 0
unsigned long temps;
byte randNumber;
int tempo;
void setup() {
pinMode(0,OUTPUT); // entrée clients
pinMode(1,OUTPUT); // bureau de vente
pinMode(2,OUTPUT); // salle d'attente
pinMode(3,OUTPUT); // bureau
pinMode(4,OUTPUT); // etage
temps = millis();
tempo = tempo1;
randomSeed(analogRead(5));
}
void loop() {
for (int i=0; i<5; i++) {
digitalWrite(i, bitRead(leds, i));
}
if (millis() > temps+tempo) {
temps = millis();
if (tempo == tempo1) {
tempo = tempo2;
} else {
tempo = tempo1;
}
randNumber = random(32);
leds = randNumber | 0B00000011;
}
}
--- Fin du code ---
Voici une petite video :
Amicalement
Dominique
Thierry:
Très sympathique projet !
DDEFF:
Simple et efficace.
Préparation FFMF ? Bonne idée !
TF53:
Tout simplement excellent!
Puis-je te faire une petite suggestion? Il serait peut être intéressant de rajouter un petit délais de transition entre l'extinction d'une pièce et l'allumage d'une autre (on fait rarement les deux exactement au même moment ;) )
Je vois 2 possibilités pour ce délais :
* la première pièce s’éteint, le délais s'écoule, puis une autre pièce s'allume
* la première pièce est toujours allumée. Une autre pièce s'allume, le délais s'écoule, puis la première pièce s'éteint
bobyAndCo:
Sympathique animation qui met de la vie et participe à la magie d'un réseau miniature.
Et merci pour le partage 8)
Navigation
[#] Page suivante
Utiliser la version classique