LOCODUINO

Aide
Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 19 mars 2024

Visiteurs connectés : 39

Le microcontrôleur ATtiny45 (5)

Animation lumineuse de fête foraine

.
Par : Christian

DIFFICULTÉ :

Certaines applications pour un réseau de trains miniatures ne requièrent pas toute la puissance d’un module Arduino/Genuino Uno et on peut trouver dommage de monopoliser un tel module pour si peu. La solution est de les confier à un microcontrôleur moins puissant, donc moins coûteux. Cette série d’articles vous présente le microcontrôleur ATtiny45 du constructeur Atmel et ses possibilités dans le domaine du modélisme ferroviaire.
Le montage que je vous propose aujourd’hui vous permettra de faire clignoter un nombre élevé de DEL afin de reproduire les illuminations colorées et animées de fêtes foraines comme on peut en trouver en bordure d’un réseau ferré.

<

Voici pour commencer, un aperçu de ce que vous obtiendrez avec ce montage à base d’ATtiny45 :

Rappel sur la commande des DEL

L’article Fonctionnement et pilotage d’une DEL vous rappelle les deux façons de connecter une DEL à une sortie numérique d’un module Arduino. Dans la partie gauche de la figure de cet article, la sortie numérique du module fournit un courant qui allume la DEL. Ce courant est limité par la résistance en série avec la DEL à une valeur comprise entre 10 et 20 mA suivant l’intensité désirée. Dans ce montage, la DEL est allumée avec un état HIGH sur la sortie numérique, et éteinte avec un état LOW. Dans la partie droite de la figure, la sortie numérique absorbe le courant qui traverse la DEL, courant toujours limité par la résistance en série, et c’est un état LOW sur la sortie qui allume la DEL.

Notre but étant d’allumer un très grand nombre de DEL pour reproduire les illuminations d’une fête foraine, comment allons-nous nous y prendre ? Certainement pas en mettant nos DEL en parallèle ! En effet, chaque DEL consommant au moins 10 mA, une mise en parallèle demanderait un courant trop fort à la sortie numérique d’Arduino qui est limitée à 40 mA maximum (20 mA conseillé). Nos DEL doivent donc être en série pour être traversées par le même courant délivré par la sortie numérique. Cependant, chaque DEL doit disposer d’une différence de potentiel (ou tension) à ses bornes pour fonctionner ; cette différence de potentiel dépend de la couleur de la DEL comme en témoigne le tableau de l’article Fonctionnement et pilotage d’une DEL. Comme la sortie numérique est à 5 V à l’état HIGH, on est également vite limité dans le nombre de DEL (2 au maximum).

La figure 1 montre comment brancher plusieurs DEL en série : la tension d’alimentation doit être supérieure à la somme des tensions aux bornes de chaque DEL et la résistance R est là pour limiter le courant. Pour mieux comprendre ce montage, je vous invite à vous reporter au chapitre 4 du cours d’électronique donné en téléchargement dans l’article Démarrer en électronique qui explique également comment calculer la valeur de la résistance de limitation.

Figure 1
Figure 1
Montage de cinq DEL en série

Si nos DEL ont besoin d’une tension de 2 V à leurs bornes pour fonctionner, il faut au moins 10 V pour éclairer 5 DEL en série ; pour être tranquille, nous choisirons une tension de 12 V d’autant que cette tension se trouve facilement sur un réseau de trains miniatures. Comme nos sorties numériques travaillent sous 5 V, la solution est de faire appel à des transistors. Ceux-ci ne vont pas amplifier la tension de sortie des broches du module Arduino mais ils seront utilisés comme interrupteurs électroniques pour commander des rampes de DEL alimentées par une tension propre de 12 V.

Circuit intégré ULN2803

Plutôt que de câbler un transistor par sortie numérique, nous allons utiliser un circuit intégré ULN2803 qui contient 8 transistors et peut ainsi commander jusqu’à 8 rampes de DEL. Ce circuit intégré a été décrit dans l’article Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803 que je vous invite à consulter. Les entrées du CI ULN2803 sont reliées aux sorties numériques d’un module Arduino et les sorties du CI ULN2803 sont reliées aux rampes de DEL. Les DEL des différentes rampes sont disposées selon un motif répétitif (1, 2, 3, 4, 5, 1, 2, etc.) afin de créer une guirlande en quelque sorte, qui pourra serpenter le long d’une attraction foraine, comme le montre la figure 2.

Figure 2
Figure 2
Rampes de DEL et ULN2803

Chaque transistor (symbolisé par un triangle) entre l’entrée et la sortie du CI ULN2803 agit comme un inverseur (ce qui est rappelé par le petit rond après le triangle), donc un état HIGH sur l’entrée donnera un état LOW sur la sortie. Pour cette raison, les rampes de DEL en séries sont reliées à la sortie par la cathode et non l’anode. Pour cette raison également, la tension positive d’alimentation des rampes de DEL est appliquée aux anodes des DEL. Rappelez-vous la partie droite de la figure du montage de DEL dans l’article Fonctionnement et pilotage d’une DEL.

Pour obtenir un effet lumineux, il suffit de commander les rampes les unes après les autres. La rampe 1 est commandée par la sortie 0 du module Arduino un court instant, puis c’est au tour de la rampe 2 (commandée par la sortie 1), puis la rampe 3, etc. On obtient ainsi la propagation d’un flash lumineux le long des rampes de DEL à la façon d’un chenillard tel que c’est décrit dans l’article Le microcontrôleur ATtiny45 (3).

Les valeurs des résistances R1 à R5 dépendent de la couleur des LED, donc de la tension aux bornes de celles-ci. Pour ma part, j’utilise des LED vertes pour la rampe N°1 et jaunes pour les autres rampes. Toutes les rampes sont alimentées en 12 V. Dans ces conditions, mes résistances sont égales à :
R1 = 100 ohms (marron, noir, marron)
R2 = R3 = R4 = R5 = 220 ohms (rouge, rouge, marron)
Ces valeurs peuvent être adaptées en fonction de la luminosité désirée, ou si la tension d’alimentation est un peu plus forte que 12 V (trois piles de 4,5 V en série par exemple).

Montage à base de microcontrôleur ATtiny45

La figure 2 a expliqué le montage avec un module Arduino dont on n’utilise que 5 sorties numériques ; ce module peut tout à fait être remplacé par un microcontrôleur ATtiny45 qui dispose des mêmes sorties. La figure 3 montre comment effectuer le montage sur deux platines d’essais, une première pour recevoir les rampes de DEL et une deuxième pour recevoir l’électronique de contrôle. Attention à l’orientation du µC ATtiny45, les broches numéros 1 des circuits intégrés sont repérées par un point blanc. La platine du haut est alimentée en 12 V pour l’éclairage des rampes de DEL via le CI ULN2803. La platine du bas reçoit une alimentation de 5 V pour le microcontrôleur ATtiny45. Les masses de ces deux alimentations sont communes. L’alimentation de 5 V peut être récupérée sur un module Arduino ou un chargeur USB, et l’alimentation de 12 V peut venir de simples piles. Les cinq sorties numériques de l’ATtiny45 sont reliées aux entrées du CI ULN2803 ; pour chaque transistor, les sorties du CI ULN2803 sont situées juste en face des entrées. Toutes les DEL ont leur anode à gauche sur ce montage. La rampe de DEL N°1 est constituée de DEL vertes mais ce n’est pas une obligation ; les fils qui la commandent sont de couleur verte. Les autres rampes de DEL sont de couleur jaune et les fils de commande sont respectivement jaunes, oranges, violets ou gris. Chaque rampe s’allume avec un niveau LOW en sortie d’ULN2803, donc un niveau HIGH en entrée d’ULN2803 (inverseur) ou encore un niveau HIGH sur la sortie du µC ATtiny45.

Figure 3
Figure 3
Montage sur platine d’essai

Il est bien évident que le µC ATtiny45 utilisé pour ce montage doit auparavant avoir été programmé avec l’un ou l’autre des programmes donnés ci-dessous. La procédure de programmation est donnée dans l’article Le microcontrôleur ATtiny45 (2).

Cheminement de flash le long des rampes de DEL

Le programme suivant permet de faire cheminer des flashes le long des rampes de DEL à la façon des chenillards. Le principe est simple et a été décrit en détail dans l’article Le microcontrôleur ATtiny45 (3) : on allume un court instant la première rampe de DEL puis on passe à la suivante et ainsi de suite. Il n’y a aucune difficulté à le comprendre.

// ATtiny_Rampes_5LED_flash
// --------------------------------------------
// Ce programme controle cinq rampes de DEL 
// Chaque rampe contient 5 DEL d'une meme 
// couleur, et est alimentee en 12 V.
// Les sorties 1 a 5 d un ULN2803
// commandent chacune une rampe.
// Les entrees 1 a 5 de l ULN2803
// sont reliees aux sorties 0 a 4 d un ATtiny45
// L animation lumineuse recree un chenillard
// et imite les lumieres de fetes foraines
// en faisant cheminer un flash le long des DEL

// Initialisation des variables
byte i = 0 ;

// Initialisation des cinq lignes en sortie
// et extinction des cinq rampes 3 secondes
void setup () {
  for (i = 0 ; i < 5 ; i++){
    pinMode (i, OUTPUT) ;
  }
  for (i = 0 ; i < 5 ; i++){
    digitalWrite (i, LOW) ;
  }
  delay (3000) ;
}

// Programme faisant cheminer des flashes
void loop () {
  for (i = 0 ; i < 5 ; i++){
    digitalWrite (i, HIGH) ;
    delay (80) ;
    digitalWrite (i, LOW) ;
    delay (25) ;
  }
}

Cheminement d’ombres le long des rampes de DEL allumées

En fait, dans les fêtes foraines, les manèges sont les plus lumineux possibles, afin d’attirer les badauds ; plutôt que de faire cheminer un flash parmi des lampes éteintes, on préfère faire cheminer une ombre parmi des lampes allumées. Le mouvement des ombres qui se propagent de lampe en lampe crée l’animation dans un manège éclairé au possible. C’est ce que réalise ce deuxième programme :

// ATtiny_Rampes_5LED_ombre
// ---------------------------------------------
// Ce programme controle cinq rampes de DEL 
// Chaque rampe contient 5 DEL d'une meme 
// couleur, et est alimentee en 12 V.
// Les sorties 1 a 5 d un ULN2803
// commandent chacune une rampe.
// Les entrees 1 a 5 de l ULN2803
// sont reliees aux sorties 0 a 4 d un ATtiny45
// L animation lumineuse recree un chenillard
// et imite les lumieres de fetes foraines
// en faisant cheminer une ombre le long des DEL

// Initialisation des variables
byte i = 0 ;

// Initialisation des cinq lignes en sortie
// et allumage des cinq rampes 3 secondes
void setup () {
  for (i = 0 ; i < 5 ; i++){
    pinMode (i, OUTPUT) ;
  }
  for (i = 0 ; i < 5 ; i++){
    digitalWrite (i, HIGH) ;
  }
  delay (3000) ;
}

// Programme faisant cheminer des ombres
void loop () {
  for (i = 0 ; i < 5 ; i++){
    digitalWrite (i, LOW) ;
    delay (80) ;
    digitalWrite (i, HIGH) ;
  }
}

Conclusion

Il n’est pas très compliqué de reporter ce montage sur des plaques à bandes cuivrées en soudant proprement et définitivement les composants. Vous pouvez vous inspirer des articles précédents pour concevoir votre propre montage. Vous voulez commander un nombre plus grand de rampes de DEL ? Utilisez un ATtiny44 qui dispose de 12 sorties, ou bien un module Uno qui en dispose de 20 ou encore un Mega2560 qui en offre jusque 70. Vous voulez que chaque rampe contienne encore plus de DEL ? Utilisez une tension d’alimentation de 24 V au lieu de 12, mais jamais plus afin de rester dans des gammes de tensions non dangereuses. Seule votre imagination pourra imposer des limites à ce que vous pouvez faire.

Une fois de plus, un simple petit microcontrôleur ATtiny45 nous a permis de construire une animation lumineuse pour notre réseau de trains miniatures. C’est sur ce principe que fonctionnent les guirlandes de Noël colorées : un microcontrôleur éclaire des rampes de DEL de couleur bleue, rouge, verte, jaune et crée tous les effets possibles de clignotement, allumage progressif, etc. Il passe même d’un effet à l’autre afin de varier les plaisirs. Nul doute que vous pourrez vous inspirer de ce montage pour créer des animations lumineuses très diverses pour vos fêtes foraines.

2 Messages

Réagissez à « Le microcontrôleur ATtiny45 (5) »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Matériel »

Fonctionnement et pilotage d’une DEL

Qu’est ce qu’une carte Arduino ?

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

Un minimum pour jouer rapidement avec un Arduino

Où acheter ?

Résistances, kézako ?

Les cartes Teensy

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

De nouveaux composants pour continuer à jouer

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les indispensables du prototypage

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Choisir sa carte Arduino

Une station DCC complète, polyvalente et économique avec JMRI.

Écran couleur tactile Kuman

Capteurs à effet Hall

Programmation des ATtiny Digispark

Ma première centrale DCC

Ma première manette DCC (1)

Une station DCC minimale avec boutons de commande et écran Oled

Ma première manette DCC (2)

Le Raspberry Pi Pico

Signalisation et sonorisation du va-et-vient pour deux trains

Configurateur de CV sur base de la station DCC minimale

Fabrication d’un programmateur pour microcontrôleurs ATtiny

Détection RailCom© avec ESP32 (ou Arduino)

Adieu Uno, bonjour Uno !

Ma nouvelle manette DCC avec ESP32 (1)

Ma nouvelle manette DCC avec ESP32 (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)

Les derniers articles

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)


bobyAndCo

Détection RailCom© avec ESP32 (ou Arduino)


bobyAndCo, catplus

Ma nouvelle manette DCC avec ESP32 (2)


msport

Ma nouvelle manette DCC avec ESP32 (1)


msport

Adieu Uno, bonjour Uno !


Christian

Fabrication d’un programmateur pour microcontrôleurs ATtiny


Christian, Dominique, Jean-Luc

Les articles les plus lus

Une station DCC complète, polyvalente et économique avec JMRI.

Commande de moteur à courant continu

Capteurs à effet Hall

Les diodes classiques

Les différents types de mouvements d’un servomoteur

Programmation des ATtiny Digispark

La carte Arduino Uno

Le Raspberry Pi Pico

Relais électromagnétique

Les encodeurs en quadrature