Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Enseigne lumineuse animée pour moins de 5 euros

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Enseigne lumineuse animée pour moins de 5 euros

Publié: Mar 01 Déc 2015, 17:31 
J'ai déjà publié sur ce forum une enseigne lumineuse animée à partir d'un module UNO. Constituée de 6 LED, elle permettait d'écrire le not "GARAGE" en faisant clignoter chaque LED comme on le voulait (ou le mot "BISTRO" pour les connaisseurs :lol: ).

Un ATtiny ne pouvant supporter facilement que 5 LED, je ne voyais pas bien comment transposer mon projet sur cette petite puce programmable bon marché. La solution toute simple est venue en visitant Rail Expo ; il suffit de se contenter de 5 LED et d'écrire le mot "HOTEL", ce qui n'est déjà pas si mal vu qu'on en trouve toujours un à côté d'une gare.


Enseigne lumineuse animée pour commerce

Le montage qui suit est une enseigne lumineuse animée pour un commerce qui, une fois de plus, vous coûtera moins de 5 euros. En plus, nous reprendrons le même montage avec un microcontrôleur ATtiny que celui proposé pour faire un chenillard. Comme on le verra, seul le programme change, ce qui modifie totalement le comportement du montage, grande force de l’électronique programmée par rapport à l’électronique câblée. Finalement, pour 15 euros, soit moins que le prix d’un module UNO, vous avez trois montages (simulateur de soudure à arc, chenillard, enseigne) pour agrémenter votre réseau et si on rajoute à cela le montage proposant la simulation d’un feu (feu de camp ou incendie) proposé par D@niel sur le forum, on voit toute la force de ces puces programmables qui permettent de petits montages économiques pour le train miniature.

L’animation lumineuse de notre enseigne est composée de trois séquences, mais rien ne vous empêche d’en imaginer d’autres. Pour commencer son cycle, les lampes s’allument les unes après les autres, en se déplaçant de droite à gauche, et en s’accumulant vers la gauche pour écrire progressivement le nom de l’enseigne (suivant le nombre de lampes, ce peut être hôtel, garage, bistro, restaurant, etc.). Ensuite, l’ensemble clignote un certain nombre de fois. Enfin, chaque lampe s’éteint de la gauche vers la droite puis le cycle diminue. Pour se rendre compte de l’effet obtenu avec 6 lampes, une petite vidéo est visible en cliquant ICI. (Avancez le curseur à 1 min 22 s.)

Bien entendu, en modélisme, les lampes de l’enseigne sont reproduites par des LED (Light Emitting Diode).

J'espère vous avoir mis l'eau à la bouche :coeur1: . La suite est pour bientôt et on commencera par un programme d'enseigne qui tourne sur UNO et ATtiny. :moi:
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Mar 01 Déc 2015, 19:39 
Une Arduino Mini Pro, qui a les mêmes caractéristique qu'une Uno si ce n'est le port USB, coûte 2 € sur eBay :siffle: Ajouter 5 € pour le câble de programmation.

Mais bravo quand même pour ta démo :applause:
notix
 
Messages: 30
Inscrit le: Lun 09 Mars 2015, 22:52
Echelle pratiquée: N

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Mer 02 Déc 2015, 09:33 
Bonjour

En utilisant le "Charlieplexing" on peut commander jusqu'a 20 leds avec 5 pins :

Image

Pierre

MAJ : avec n pins on peut avoir n*n-n leds :

Pins LEDs
1 0
2 2
3 6
4 12
5 20
6 30
7 42
8 56
9 72
10 90
20 380
40 1560
n n*n − n

on peut même utiliser des leds bicolores en les plaçant judicieusement. Cela peut être intéressant pour un TCO
Dernière édition par Pierre59 le Mer 02 Déc 2015, 12:05, édité 1 fois au total.
Avatar de l’utilisateur
Pierre59
Papotier
 
Messages: 147
Inscrit le: Dim 07 Mars 2010, 10:17
Localisation: Villeneuve d'Ascq (59650)
Âge: 75
Echelle pratiquée: HO
Club: Lille Modélisme

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Mer 02 Déc 2015, 11:38 
Pierre59 a écrit:Bonjour

En utilisant le "Charlieplexing" on peut commander jusqu'a 20 leds avec 5 pins :

Image

Pierre


Bonjour Pierre,

Tu as parfaitement raison et cette technique a déjà été décrite sur un forum Arduino par jlb si mes souvenirs sont bons. Ce sera l'objet d'une prochaine réalisation mais pour l'instant, je voudrais aller au plus simple, c'est-à-dire partir de ce qui fonctionnait sur un UNO et le transférer sur un ATtiny.

L'Arduino mini pro (en réponse à notix) est bien évidemment la solution à privilégier si le programme réclame plus de ressources, mais le but de ma série "pour moins de 5 euros" est de démontrer que de nombreux montages peuvent se satisfaire d'un microcontrôleur aux capacités restreintes qui ne sont même pas exploitées à fond. Au lieu d'un micro musclé qui prend tout en charge, on utilise plusieurs petits micros, pour que chacun gère une tâche différente.

Avec Arduino, des solutions, il y en a plein... 8)
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Mer 02 Déc 2015, 11:54 
Aujourd'hui, nous allons découvrir le programme de l'enseigne. Vous pouvez l'utiliser sur un module UNO pour créer une enseigne à plus de 5 lampes. Vous pouvez aussi, comme l'a suggéré notix, utiliser d'autres modules Arduino (nano, mini pro) qui constituent sans doute l'avenir à cause de leur taille restreinte et de leur prix.

Voici un programme universel qui anime l’enseigne. Il est universel car il fonctionne aussi bien sur un module UNO (qui contient de nombreuses sorties) que sur un ATtiny qui est limité à 5 LED. Il suffit en effet d’indiquer en début de programme sur quelle sortie se trouve la première LED et le nombre de LED au total. Bien entendu, toutes les LED doivent être connectées à des sorties qui se suivent (exemple 4, 5, 6, 7, 8, 9 pour 6 LED sur un module UNO, ou bien 0, 1, 2, 3, 4 pour 5 LED sur un ATtiny).

Code: Tout sélectionner
/*
Ce programme réalise le clignotement d'une enseigne publicitaire.
Il est universel et peut servir a un module UNO ou un ATtiny
Il suffit de préciser le nombre de LED (nbre_led) et sur quelle
sortie (nommée led1) est branchée la première LED.
Les sorties LED doivent se suivre (ex : 4, 5, 6, 7, 8, 9 pour 6 LED)
Il utilise des fonctions pour alterner les rythmes ; ici, il y a
trois séquences différentes, mais on peut en rajouter d'autres.
*/

int led1 = 4 ;         // Position de la première LED (4 pour UNO, 0 pour ATtiny)
int nbre_led = 5 ;     // Nombre de LED dans l'enseigne (5 max pour ATtiny)
int nbre_cligno = 3 ;  // Nombre de clignotement

void setup () {
// Initialisation des lignes de LED en sortie
for (byte i = 0; i <= (nbre_led - 1) ; i++)      // Moins 1 car on part de zéro
{
  pinMode ((i + led1), OUTPUT) ;
}
  // Extinction de toutes les LED au départ du programme
  for (byte i = 0 ; i <= (nbre_led - 1) ; i++)
  {
    digitalWrite ((i + led1), LOW) ; // éteint la LED reliée à la broche i + led1
  }
}

// Fonction loop
void loop () {
   
  // Séquence N° 1 : cumul sur la gauche du mouvement de LED
  sequence_Un () ;
  delay (500) ;  // délai de 500 millisecondes
 
  // Séquence N°2 : clignotement de l'ensemble
  sequence_Deux () ;
  delay (2000) ;  // délai de 2 secondes

  // Séquence 3 : extinction successive de la gauche vers la droite
  sequence_Trois () ;
  delay (1000) ;
 
  // Recommence les différentes séquences
}

void sequence_Un ()
{
  // Séquence N° 1 : cumul sur la gauche du mouvement de LED
 
  for (byte n = 0 ; n <= (nbre_led - 1) ; n++)
  {
    for (byte i = led1 ; i <= ((led1 + nbre_led - 1)-n) ; i++)
    {
      digitalWrite (i, HIGH) ;   // allume la LED sur broche i
      delay (200) ;              // durée du flash
      digitalWrite (i, LOW) ;    // éteint la LED sur broche i
    }
    digitalWrite ( ((led1 + nbre_led - 1) - n) , HIGH ) ; //dernière LED reste allumée
  }
  return ;
}

void sequence_Deux ()
{
  // Séquence N°3 : clignotement de l'ensemble
 
  for (byte j = 1 ; j <= nbre_cligno ; j++)
  {
    for (byte k = 0 ; k <= (nbre_led - 1) ; k++)
    {
      digitalWrite ((k + led1) , LOW) ;
    }
    delay (300) ;
    for (byte l = 0 ; l <= (nbre_led - 1) ; l++)
    {
      digitalWrite ((l + led1), HIGH) ;
    }
    delay (500) ;
  }
  return ;
}

void sequence_Trois ()
{
  // Séquence 4 : extinction successive de la gauche vers la droite
 
  for (byte i = (led1 + nbre_led - 1) ; i >= led1 ; i--)
  {
    digitalWrite (i, LOW) ;
    delay (300);
  }
  return ;
}


L’universalité de ce programme sera bien pratique pour mettre au point l’enseigne, notamment écrire le cycle des séquences si vous voulez en rajouter d’autres ou même, plus simplement, pour régler le rythme de l’animation (lent ou dynamique) en réglant les valeurs des différentes fonctions « delay ».

La figure suivante montre le montage pour obtenir une enseigne à 10 lampes permettant d’écrire le nom « RESTAURANT » avec une première LED sur la sortie 2.

Image

Vous pouvez partir de ce montage et rajouter ou enlever des LED, selon le nombre de lettres de votre enseigne. Sur un ATtiny, le nombre de sorties est limité à 5 (car il n’est pas facile d’utiliser la sixième sortie qui sert plutôt au RESET du microcontrôleur). Mais ce nombre est suffisant pour écrire « HOTEL » et avoir une sympathique enseigne animée.

Dans le programme, pensez à régler les valeurs de variables led1 (position de la première LED, par exemple 2 sur le schéma) et nbre_led (nombre total de LED). Puis téléversez ce programme dans votre module UNO. Ensuite, réalisez le montage de la figure ci-dessus et vous obtenez votre enseigne.

La prochaine fois, nous verrons comment utiliser ce programme et ce montage sur une puce ATtiny pour réaliser notre enseigne HOTEL. Nous verrons comment mettre au point les différentes séquences d'allumage et comment régler le rythme.

Mise à jour : la figure où RESTAURANT était à l'envers. En effet, c'est la dernière LED qui est la première lettre de l'enseigne.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Jeu 03 Déc 2015, 13:04 
Enseigne à 5 lampes

A partir de maintenant, nous allons réaliser une enseigne à 5 lampes, capable d’écrire le mot « HOTEL » à partir d’un microcontrôleur ATtiny, montage qui reviendra à moins de 5 euros.

Tout d’abord, contrairement à ce que je pensais, je n’ai pas réussi à transférer mon programme universel sur une puce ATtiny ; c’est l’inconvénient du direct :lol: , on découvre les problèmes au fur et à mesure qu’on réalise. Je pense que le compilateur de l’IDE n’est pas capable, pour une puce ATtiny, de traduire l’utilisation de fonctions. Le programme fonctionnait, mais une fois seulement au lieu de boucler indéfiniment. Chaque fois que je remettais l’alimentation, le programme redémarrait et la séquence s’exécutait, mais une fois seulement, après il ne se passait plus rien. Je dois chercher des réponses à ce problème, mais en attendant je l’ai résolu différemment en écrivant un nouveau programme uniquement constitué des ordres simples que peut traduire l’IDE vers ATtiny. Les fonctions sont remplacées par le code directement dans le corps de la fonction loop, mais le principe reste le même. Enfin, je suis allé au plus simple puisque je sais à l’avance quelles sorties je vais utiliser ; les numéros sont indiqués en clair. Voici donc le programme à utiliser.

Code: Tout sélectionner
void setup ()
{
  pinMode (0, OUTPUT);
  pinMode (1, OUTPUT);
  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  for (int i = 0; i <= 4; i++)
  {
    digitalWrite (i, LOW);
  }
}

void loop ()
{
  // sequence 1 : cumul vers la gauche
  for (int n = 4; n >= 0; n--)
  {
    for (int k = 0; k <= n; k++)
    {
      digitalWrite (k, HIGH);
      delay (200);
      digitalWrite (k, LOW);
    }
    digitalWrite (n, HIGH); // dernière LED reste allumée
  }
  delay (500);
  // sequence 2 : clignotement 3 fois
  for (int j = 1; j <= 3; j++)
  {
    for (int p = 0; p <= 4; p++)
    {
      digitalWrite (p, LOW);
    }
    delay (300);
    for (int q = 0; q <= 4; q++)
    {
      digitalWrite (q, HIGH);
    }
    delay (500);
  }
  delay (2000);
  // sequence 3 : extinction de gauche à droite
  for (int r = 4; r >= 0; r--)
  {
    digitalWrite (r, LOW);
    delay (300);
  }
  delay (1000);
}



Si vous le souhaitez, vous pouvez modifier les valeurs des différents « delay » pour obtenir un rythme plus rapide ou plus lent. Vous pouvez aussi rajouter d’autres séquences d’allumage en vous inspirant de celles qui existent ; pour ma part, j’ai préféré me limiter à quelque chose de sobre, mais chacun fait ce qu’il lui plait. :coeur1:

Programmation de la puce ATtiny

Si vous avez réalisé les autres montages proposés pour moins de 5 euros, vous devez commencer à être familiarisé avec cette procédure. Je vais donc la rappeler brièvement ; si nécessaire, reportez-vous à ce qui a déjà été dit dans la description des autres montages.

La figure ci-dessous montre comment réaliser votre programmateur à partir du module UNO qui doit recevoir auparavant le programme ArduinoISP donné dans les exemples de l’IDE.

Image

Dans l’IDE, ouvrez le programme ci-dessus (celui donné aujourd'hui, vous pouvez faire un copier-coller en le sélectionnant en totalité).

Dans le menu Outils > Programmateur, sélectionnez Arduino as ISP.

Dans le menu Outils > Type de carte, sélectionnez ATtiny85 (internal 8 MHz clock).

Branchez le module UNO à la prise USB de l’ordinateur.

Graver la séquence d’initialisation (ne pas oublier si c’est la première utilisation de la puce ATtiny)

Téléversez le programme dans la puce ATtiny.

Ne tenez pas compte des messages d’erreur en orange.

Logiquement, la puce ATtiny est maintenant programmée.

La prochaine partie concernera le montage sur une plaque à bandes cuivrées.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Ven 04 Déc 2015, 10:16 
Notre puce est programmée ; il faut la vérifier puis faire le montage final avec composants soudés. C'est ce que nous allons voir aujourd'hui. Le montage n'est qu'un copier-coller de ce que j'avais expliqué pour le chenillard puisque le circuit est le même et que la différence vient du programme.

Vérification de la puce

Réalisez sur une plaque d’essai le montage ci-dessous et alimentez le en 5 Volts (à partir d’un module UNO ou d’une alimentation stabilisée 5 V) ; votre enseigne doit fonctionner. La première lettre de l’enseigne est la dernière LED branchée sur la sortie 4 de l’ATtiny.

Mise à jour : sur la figure, l'enseigne comme si elle était vue par derrière

Image

Montage sur une plaque à bandes cuivrées

Il s’agit du même montage que celui réalisé pour le chenillard ; voici la marche à suivre.

Les sorties de l’ATtiny sont reliées aux résistances qui sont reliées à un bornier à 5 trous (en rouge). Ce bornier accueille les anodes des LED. Les cathodes des LED sont reliées à un bornier à 3 trous (en bleu) lui-même relié à la masse du montage. Comme il y a 5 LED pour un bornier à trois trous, on doit mettre un ou deux fils dans un même trou. La taille du circuit (65 x 58 mm) fait que l’implantation est aisée et ne pose aucun problème.

La figure suivante donne le montage sur une plaque à bandes cuivrées de 24 x 22 trous. A gauche l’implantation des composants, à droite le côté cuivre où on peut repérer les coupures (en vert) et les soudures (en gris). Attention à bien souder sur la bande sans déborder sur les bandes d’à côté, car sinon, il y aura des courts circuits ; en effet, la plaque cuivrée est prévue pour nécessiter que très peu de coupures, chaque bande horizontale étant conductrice tout du long. Les trous sont repérés en partant du trou le plus en haut et à gauche quand on regarde le côté cuivre. Les deux vues sont bien entendu en miroir.

Image

Commencez par couper les bandes cuivrées où c’est nécessaire ; le mieux est d’utiliser une petite fraise sur une miniperceuse. Si vous n’avez pas de fraise, utilisez un foret et faites l’ébauche d’un trou (inutile de traverser la plaque). Vérifiez bien que la coupure des bandes est franche et que la continuité électrique n’a plus lieu en utilisant un multimètre en position ohm-mètre.

Percez les 4 trous de fixation puis coupez la plaque aux bonnes dimensions avec une scie à denture très fine. Bien retirer toute poussière de fraisage, de perçage ou de découpage avec une brosse ou de l’air comprimé.

Commencez par souder le support de CI (2 x 4) devant recevoir l’ATtiny en positionnant son encoche du bon côté (ce n’est pas grave si vous vous trompez, c’est juste pour se rappeler du sens de l’ATtiny, cela n’a aucune incidence sur le fonctionnement).

Soudez les borniers (5 trous et 3 trous) ; on peut réaliser un bornier à 5 trous en assemblant ensemble grâce à la petite rainure adéquate un bornier à 3 trous et un à 2 trous.

Soudez les deux straps (violets sur le schéma) puis les 5 résistances. Terminez en soudant deux fils pour l’alimentation de 5 V.

La vue suivante vous montre le circuit côté composant tout en laissant apparaître les bandes cuivrées comme si le support était transparent (le trou (1,1) est donc en haut à droite).

Image

Une fois tous les composants soudés, vérifiez bien que vous n'avez pas fait d'erreur puis insérez l'ATtiny dans son support en respectant bien son orientation. Montez les LED dans les borniers comme indiqué plus haut (montage à cathodes communes). Enfin, alimentez le montage avec une alimentation stabilisée de 5 V ou bien à partir de votre module Arduino puisqu'on peut récupérer +5 V et GND dessus.

Il reste maintenant à faire l'enseigne avec les LED et les lettres HOTEL afin de l'incorporer dans le bâtiment. J'y travaille et j'espère vous présenter une vidéo sur le résultat final bientôt...
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Sam 05 Déc 2015, 11:37 
Fabrication de l’enseigne

Le principe est assez simple : l’enseigne de LED est déportée du montage pour figurer sur le bâtiment de l’hôtel. Chaque LED doit éclairer sa lettre et uniquement elle. Il faut donc réaliser une boite à lumière où chaque LED est enfermée dans un tube carré qui canalisera la lumière.

Les dimensions de l’ensemble dépendent de la taille de l’enseigne, donc de l’échelle à laquelle on travaille. Ce qui suit n’est qu’une démonstration de la faisabilité de cette boite à lumière, mais ne constitue qu’un bricolage vite fait. Le montage de l’enseigne se fera sur une plaque à bandes cuivrées ou bien encore mieux un petit circuit imprimé réalisé pour la circonstance. Les LED seront écartées les unes des autres suivant la taille de l’enseigne et la taille des LED.

Pour effectuer ce bricolage, j’ai mesuré la hauteur de mes LED sur la plaque d’essai et j’ai retenu 13 mm. Ce n’est pas assez, j’aurais mieux fait de prendre 15 mm, mais ce n’est pas grave, j’ai mis ensuite de petites cales pour surélever l’ensemble. Dans du carton de récupération, j’ai découpé des bandes que j’ai pliée en trois, puis collé les unes aux autres pour confectionner des tunnels de forme carrée, ce que montre la photo suivante.

Image

Au final, j’obtiens 5 tubes pour les 5 LED. Les bandes sont découpées au cutter et réglet, mais cela aurait été plus facile de prendre du papier canson noir. Pour l’enseigne finale, les bandes en carton ou en plastique noir peuvent directement être collées sur le circuit imprimé pour entourer chaque LED. Pour ma part, j’ai également une sixième position non fermée qui me sert à manipuler l’ensemble mais qui bien sûr ne sert à rien.

La photo suivante montre le résultat obtenu devant la plaque d’essai avec les LED. Comme on le comprend, l’ensemble viendra coiffer les LED qui sont espacées de deux trous pour que l’ensemble soit facile à manipuler (mais on peut les rapprocher si nécessaire).

Image

Pour l’inscription, j’ai utilisé un traitement de texte ; les lettres HOTEL ont été écrites en blanc sur fond noir. Elles ont été découpées une à une et coller sur le dessus de la boite à lumière, mais il est préférable de découper le mot HOTEL en entier, en jouant sur l’espacement des caractères, ce que permet tout traitement de texte moderne.

La photo suivante montre l’ensemble du montage d’essai ; la plaque d’essai avec le microcontrôleur ATtiny, la plaque d’essai avec les LED et les résistances, et la boite à lumière ainsi que les lettres.

Image

La prochaine fois, je vous posterai une petite vidéo pour montrer le fonctionnement.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Enseigne lumineuse animée pour moins de 5 euros

Publié: Dim 06 Déc 2015, 13:31 
Vous pouvez voir une petite vidéo qui montre l'effet obtenu pour l'enseigne HOTEL en cliquant ICI.

Voici maintenant ma conclusion pour vous aider à améliorer ce petit montage :

Dans le montage définitif, l’enseigne ne doit comporter que les LED et les fils pour les alimenter ; en effet, les résistances sont sur le circuit imprimé avec l’ATtiny. Comme vous l’avez vu dans la vidéo, ce n’était pas le cas pour le montage d’essai sur la breadboard.

Les LED sont soudées sur un circuit imprimé et des boites à lumières sont collées sur le circuit pour empêcher les fuites de lumière (carton noir ou plastique noir). Il peut y avoir intérêt à utiliser des LED blanches à haute luminosité et un filtre coloré juste au-dessous du texte de l’enseigne. Dans ce cas, la valeur des résistances est à adapter en fonction de la tension aux bornes des LED blanches. Le calcul peut se trouver sur le forum « Démarrer en électronique ».

Plutôt qu’un texte écrit avec un traitement de texte, il peut être judicieux de découper les lettres dans une fine plaque métallique par procédé chimique ; ainsi, la lumière ne s’étale pas autour de la lettre.

A vous de faire et bonne réalisation. :noel:
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1690
Inscrit le: Mer 25 Sep 2013, 17:14


Retour vers Arduino

Qui est en ligne ?

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