Parlons Arduino > Vos projets

Un BV animé par ATtiny 85

<< < (2/5) > >>

Dominique:
Merci pour la suggestion qui est excellente :


--- Citer ---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
--- Fin de citation ---

je vais le faire et le publier prochainement !
(voilà pourquoi j'ai gardé l'accès à la prise micro-USB)

Dominique

Dominique:
En suivant la suggestion de TF53, le programme nouveau devient :


--- 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.01 du 15 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 randBit, randByte;
 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;
    }
    randBit = random(2,5); // donc 2 ou 3 ou 4
    randByte = 0;
    randByte = bitSet(randByte,randBit);
    leds = leds ^ randByte;
  }
}
 

--- Fin du code ---

Le croquis utilise 1602 octets (26%) de l'espace de stockage de programmes. Le maximum est de 6012 octets.
Les variables globales utilisent 24 octets de mémoire dynamique.

Il n'est pas surchargé l'ATtiny85 !

Les temps sont longs pour plus de naturel (tempo de 5 ou 10 secondes alternativement) et à chaque fois, on inverse un bit dans l'octet "leds", ce qui évite la simultanéité d'un allumage et d'une extinction.

La fenêtre rouge est celle où se trouve l'ATtiny, j'ai atténué la led avec un bout de papier.

Avez-vous remarqué le préposé SNCF derrière son comptoir au milieu ? On le voit à peine sur la première photo.



Amicalement
Dominique

TF53:
Génial!


--- Citer ---Avez-vous remarqué le préposé SNCF derrière son comptoir au milieu ? On le voit à peine sur la première photo.
--- Fin de citation ---

C'est vrai qu'en photo / vidéo, c'est dur à voir. Enfin on voit un bonhomme, mais de là à dire ce qu'il fait...

Fantasio:
Juste un message de remerciement vers Dominique sans oublier la contribution de TF53..

J'ai utilisé votre programme au profit de mon club de train et de ses adhérents.
A ce jour de nombreux bâtiments sur nos réseaux HO et N sont désormais éclairés de cette façon et ceci grâce à vous.

L'étape suivante sera le passage à l'attiny84 et j'adapterai le programme en conséquence.

Locoduino propose des montages parfois complexes et ambitieux, mais les petits de ce genre sont également appréciés.

Dominique:
merci pour le compliment : content d'être partagé  ;D

Dominique

Navigation

[0] Index des messages

[#] Page suivante

[*] Page précédente

Utiliser la version classique