Question sur les résistances et les leds

Bonjour à tous,
Dans le cadre d'un projet de réalisation de manège miniature, je me retrouve dans la situation suivante:
Ma carte arduino mega2560 et alimenté sur une pile, et j'ai beaucoup de leds à piloter, 284 exactement. Mes pins doivent piloter jusqu'à dix leds de 2 à 4V selon les leds et d'intensité 20mA. Quelles résistances dois-je prévoir ou quels composant dois-je rajouter pour un bon fonctionnement des leds?

Information préalable extrèmement importante :

20 mA dans une diode électroluminescente , soit DEL en français et led en anglais, c'était la norme il y a 30 ans !

Depuis des progrès ont été faits et on trouve des dels qui avec 5 mA éclairent autant que les antiquités d'il y a plus de 30 ans à 20 mA.


Comment faire :
J'ai dis que dans l'acronyme DEL il y a le mot "diode" et c'est le plus important.
Il est impossible de gérer une diode en tension car quelques mV de variation se traduiront par des variations de 50 ou 100 mA.

Il faut donc construire une source de courant.
Pour des dels on se contente d'une source de courant du pauvre : une source de tension et une résistance en série avec la diode pour limiter le courant.

Ordres de grandeur de la tension Vd aux bornes de la diode selon sa couleur :

Rouge ~1,8V
Jaune ~ 2V
Vert ~ 2,5V
Bleue ~ 3 à 3,5V
Blanche ~ 3 à 3,5V

Et bien entendu ce ne sont que des valeurs probables qui ne tiennent pas compte des dispersions de fabrication.

Interdiction :
Il est interdit de mettre des diodes directement en parallèle : le courant ne passera que dans celle qui a le plus faible Vd.
On ne peut mettre en parallèle que des couples diode + résistance en série.

Par contre on peut mettre plusieurs diodes en série avec une seule résistance série.

Calcul :
On a une tension U, on a une diode dont on connait la couleur donc on peut estimer son Vd.
On choisi un courant et on utilise la loi d'Ohm U=RI pour calculer la résistance

Exemple pour une seule diode :
Diode jaune -> Vd ~ 2V
Alim U=5V
Courant choisi : 5 mA
U = RI +Vd
U = (U-Vd)/I = (5-2)/5 = 600 ohms.

La résistance a aussi un autre rôle : celui d'amortir les conséquences de la variation de Vd par exeple avec la température.
C'est largement plus délicat à comprendre, c'est pour cela qu'on en parle très rarement.
Heureusement il existe des "recettes de cuisine" basées sur les expériences -> le pluriel est volontaire.

Ma recette est qu'avec des diodes en série je fais attention à ce que la chute de tension dans la résistance soit au minimum de 1V.

Source de puissance pour les DELs

Bien évidement ce ne peut pas être la carte Mega, c'est impensable.
Le régulateur de tension de la carte se mettra en sécurité et la datasheet du microntroleur indique que le courant dans ses connexions Vcc et Gnd ne doit pas dépasser 200 mA, consommation propre du micro comprise !

Il faudra passer par une source de tension extérieure, attention de bien relier les masses de l'alim à la masse de la carte arduino.
Il faudra aussi passer par des interfaces de puissance qu'il faudra bien dimensionner.
Si le courant par del ou par groupe de dels en série n'est que de 5 mA des circuit expenseur conviendront.
Si tu maintiens 20 mA il faudra plus puissant je pense à des ULN200x, il existe d'autres références que d'autres peuvent connaître.
Un simple transistor peut aussi convenir mais il y aura plus de câblage à faire qu'avec un circuit intégré.

Dernier point :
284 dels il doit y en avoir plusieurs qui sont commandées en même temps.
Je pense que cela vaut la peine de regarder la possibilité d'en mettre le plus possible en série.
Dans ce cas ne pas hésiter à explorer l'utilisation d'une alim 24 V

Ma recette est qu'avec des diodes en série je fais attention à ce que la chute de tension dans la résistance soit au minimum de 1V.

Par diode je suppose?

Ma carte arduino mega2560 et alimenté sur une pile

Pile à hydrogène, sinon cela ne vas pas le faire.

vileroi:
Par diode je suppose ?

Non par branche.
Une branche étant constituées de x diodes en série plus une résistance de limitaion de courant.
Il est évident que plus on peut réserver de tension pour la résistance mieux c'est. Mais avec 284 dels il sera difficile de faire ceinture plus bretelles et il faudra faire des compromis. L'opération ceinture plus bretelles je la réserverai pour l'alimentation pour laquelle il faudra prendre des marges pour être tranquille.
Le sujet restera au point mort tant que le demandeur n'indiquera pas la répartition des diodes, le courant choisi et la tension d'alim choisie..

Merci pour vos réponses,
Je vais essayer de rentrer plus dans le détail, le problème c'est que j'ai peu de place et que le système doit fonctionner sur batterie, il ne peut pas être relier à une prise. J'ai 53 leds piloter seules, 88 leds ensemble, 17 leds et 16*10 leds.
Si vous avez une solution parfaite je serais très heureux, je débute sur Arduino. j'ai regardé les expanders mais j'ai cru comprendre qu'on ne pouvait y mettre qu'un nombre limité sur une même carte.

Je vais essayer de rentrer plus dans le détail, le problème c'est que j'ai peu de place et que le système doit fonctionner sur batterie,

Il faudra donc adapter les objectifs aux contraintes ou changer les contraintes.
C'est bientôt noël mais pas pour la technique.

La principale question n'a rien à voir avec arduino., cela va être une question de bon sens sur la faisabilité du projet.
La batterie a une tension et une capacité en A.H mais lesquelles ?
Le minimum est de donner la tension et la capacité de la batterie et le nombre d'heures de fonctionnement exigé.
Tout de suite une explication :
Une batterie de 10 A.H pourra donner 1A pendant 1 heure ou 0,1A pendant 10 heures ou 100A pendant 6minutes.

Ensuite bien évidement cela aurait du te venir tout seul après mon message mais quel courant doit passer dans les dels ?

je débute sur Arduino.

53 leds piloter seules, 88 leds ensemble, 17 leds et 16*10 leds.
Soit 284 dels individuelles si on fait passer un courant de 10 mA le courant total sera ~ 3A + la consommation des circuits intégrés à ajouter.

Pour la suite il faut les renseignements sur la batterie et sur la couleur des dels. --> donnes tous les renseignements !
Si la batterie n'est encore choisie, plus sa tension sera élevée plus il sera possible de mettre des diodes en série et diminuer le courant total, mais attention à la capacité en A.H. A volume constant la puissance est constante donc une batterie 24V 10A.h aura le double de volume qu'une batterie 12V 10 A.H ou alors elle ne fera plus que 5A.H
D'où l'importance de connaître la couleur des dels, ce qui permettra de voir combien de diodes il est possible de mettre en série pour diminuer le nombre de sorties de micro ou de circuits externes nécessaires.

Pour un premier projet la barre me semble trop haute. Un manège avec bien moins de dels pour commencer me paraîtrait plus raisonnable.

J'ai 53 leds piloter seules

Il faut bien 53 ordres différents? Si c'est complètement aléatoire, les leds ne peuvent guère être mises en série.
Il y a un gros programme derrière ou c'est une animation? Pour tant de leds, on peut penser aux lerd programmables...

8*8 leds ensemble

Un seul ordre, toutes allumées ou toutes éteintes ou c'est une matrice (16 ordres)...

1*7 leds

Un seul ordre?

16*10 leds.

Une matrice ou les leds sont pilotées individuellement?
16 segments de leds -> 16 ordres à prévoir?
Une matrice ou toutes les leds sot soit toutes allumées en même temps soit toutes éteintes?

J'essaye de donner plus d'infirmations avec les datasheets,
Alors je dois piloter 15 fois 10 leds ensemble, L-934ID (rouge traversant 3mm) qui fonctionne en 2V et 0.01mA il me semble,
17 leds du même type.
16 leds en indépendant du type L-934SYD (jaune traversant 3mm) qui fonctionne en 2V et 0.01mA
16 leds en indépendant du type L-934GD (vert traversant 3mm) qui fonctionne en 2.2V et 0.01mA
16 leds en indépendant du type L-7104QBC-D (bleu traversant 3mm) qui fonctionne en 3.3V et 0.05mA
4 leds en indépendants du type L-53HD (rouge traversant 5mm) qui fonctionne en 2.25V et 0.01mA
3 leds en indépendant du type C503D-WAN-CCbEb151 (blanc traversant 5mm) qui fonctionne en 4V et 0.05mA
10 leds ensemble du même type (blanc 5mm)
8
8 leds avec 2 de chaque (rouge 3mm, vert 3mm, jaune 3mm, bleue 3mm)

A savoir que le matériel n'est pas commandé et peut être modifié selon les couts des produits. Si vous avez une solution à m'apporter.

L-934ID (rouge traversant 3mm) qui fonctionne en 2V et 0.01mA

Ce qu'il y a de bien avec RS c'est qu'on a le datasheet!
Le courant de 10µa, c'est le courant inverse, quand on met la diode à l'envers sous 12V. Ce n'est en principe jamais le cas.

Le courant direct normal est de 20mA, (maximum à 30mA), mais on peut la faire travailler à moins (5mA), cela dépends de l'utilisation. à 20mA, on a entre 2 et 2,5V à ses bornes.
C'est pareil pour les autres couleurs.


Pour les leds rouges, on peut faire des lignes de 10 leds. Chaque ligne consommera alors les 5 à 20mA. Il faut alors une tension de l'ordre de 24V. Mais avec l'écart donné par la datasheet, impossible de prévoir la résistance série à mettre en plus. Puis on peut mettre ces lignes en parallèle. Il faut alors compter sur 75mA à 300mA.

Pour une led indépendante, on est obligé de la mettre sur une ligne spéciale. Si elle peuvent toutes être allumées en même temps, compter 5 à 20mA par led, sinon prendre le maximum de leds allumées et multiplier par 5 à 20mA.

Sachant qu'une carte à un nombre limité de pins en sortie (13 pour une Uno, une cinquantaine pour une Mega, il faut avoir une autre solution que de piloter en direct. La solution souvent la plus simple est d'utiliser des leds programmables qui peuvent être allumées de façon indépendante, mais qui n'ont besoin que d'une seule pin pour la commande.
L'autre est de faire un circuit électronique externe faisant la mémorisation et le décodage. J'ai un ensemble de Leds utilisant un registre à décalage 74HC4094 avec mémorisation. Un circuit peut commander 8 leds indépendantes, j'ai 60 circuits les uns à la suite des autres pour commande mes 400 leds. Mais le tout est alimenté en 4V sous 30A.

Pour aider dans le choix, il faut savoir à quoi elle servent, si il y a une animation... Avec le cahier des charges donné, on ne peut pas simplifier. Par exemple:

  • si on a 100 leds indépendantes, on a besoin de 100 commandes
  • si on sait que ces diodes forment un chenillard, on n'a besoin plus que de 2 commandes (une pour allumer la première, une pour le décalage...

On peut considérer que N leds fonctionnant ensembles seront reliées en série (ou série+parallèle). Concernant le code c'est comme une seule. Le tout est de compter combien de commandes utiles on a besoin. Pour cela comprendre la maquette et pas le nombre de diodes total.

Alors les 10 leds blanches je peux les laisser allumer en continue,
les leds rouges par groupe de 10 elles vont être programmés pour faire différentes chaine d'illumination, mais elles s'allumeront dix par dix entre les 15 groupes pareil pour le groupe de 7 leds
Les 53 leds indépendantes, (rouge, jaune, bleu, vert, blanc) elles vont s'enchainer dans un circuit dans le but de représenter un atome avec le chemin des électrons.
Et les groupes de 8, vont faire un chenillard clignoter etc... différents programmes d'éclairage

Réglons le problème bloc par bloc.

Pour les blanches, pas besoin de sorties d'Arduino si elle sont tout le temps allumées, elle seront directement sur le 5V ou plus.


les leds rouges par groupe de 10 elles vont être programmés pour faire différentes chaine d'illumination, mais elles s'allumeront dix par dix entre les 15 groupes pareil pour le groupe de 7 leds

Pour les leds rouges, il faut donc prévoir 15 sorties indépendantes. si 10 leds sont en série, il faut une alimentation de 24V (a tester quand même, si toutes les diodes étaient à 2,5V cela ne fonctionnerait pas) et 15 FETs (un par branche). si on met deux branches de 5 leds-série en parallèle, 12V d'alimentation doit suffire, et on a toujours 15 FETs.


Et les groupes de 8, vont faire un chenillard clignoter etc... différents programmes d'éclairage

donc 8 sorties, 8 FETs. Même problème que pour les rouges.


Les 53 leds indépendantes, (rouge, jaune, bleu, vert, blanc) elles vont s'enchainer dans un circuit dans le but de représenter un atome avec le chemin des électrons.

Si les électrons tournent toujours dans le même sens, à la même vitesse, Arduino ne servira pas à grand chose. Si cela doit tourner à une vitesse variable, Arduino peut donner un signal d'horloge. Si elle doivent s’allumer parfois et s'éteindre parfois un sortie de l'Arduino est nécessaire. Si deux électrons sont sur la même couche qui contient N leds, et qu'ils tournent diamétralement opposés, N/2 commandes suffisent vu que l'on peut les grouper 2 par 2...
Il y a trop de si pour ces 53 leds. Il faut plus de précisions.
Les leds programmables c'est pas mal, mais dans ce cas je ne pense pas que cela soit plus facile. Si on utlise des circuits extérieurs genre démultiplexeurs (pas registre à décalage), ce peut être une bonne solution. Si on doit faire tourner un électron soit sur 8 leds soit sur 16 leds, il y a des circuits qui vont bien, et qui peuvent piloter directement les leds. Par exemple certains 4051 acceptent le 12V sous 20mA. Plus besoin de fets. Entre 8 fets et un CI...

Merci pour tes conseils,
Est-ce que pour l’atome et les électrons des MCP23017 peuvent faire l’affaire?

Et que veut dire FETs ?

Est-ce que pour l’atome et les électrons des MCP23017 peuvent faire l’affaire?

Je dirais oui si l’ordre d’allumage était aléatoire, genre un électron quantique. On ne sait pas ou il est, on le voit un peu n’importe où. Si par contre il tourne, un circuit chenillard peut être beaucoup plus simple à programmer. Je n’ai jamais utilisé le MCP23017. Y-a-il une bibliothèque pour les gérer? On peut les gérer sans, mais ce n’est pas forcément à la porté du premier venu.

Et que veut dire FETs ?

Nos amis les MOSFET par exemple

Sais-tu me dire à quoi sert et comment on utilise un MOSFET, et est-ce que tous les expanders fonctionnent à peu près de la même manière ?

L’électrons seraient plutôt en chenillard.

Sais-tu me dire à quoi sert un MOSFET

C'est un amplificateur de puissance. Un mosfet, deux résistances entre une Arduino et une charge permet à l'Arduino de commander des charges sous des tensions plus élevées que le 5V et avec plusieurs ampères. C'est un peu comme un relais, mais les commutations sont beaucoup plus rapides.

Sais-tu me dire comment on utilise un MOSFET

Pour ça il faut suivre un tuto. C'est impossible de répondre en 5s. C'est un peu comme si tu demandes comment on conduit une voiture.

est-ce que tous les expanders fonctionnent à peu près de la même manière ?

Je dirais non. le MCP23017 reçois des information avec un protocole connu SPI ou I2C? J'en ai utilisé qui ont une entrée, une broche de mémorisation et des broches d'adresses.

L'électrons seraient plutôt en chenillard.

Je m'en doutais un peu. Pour faire un chenillard en hard (si pas assez de pins sur l'Arduino), on peut utiliser un registre à décalage (commande série): il faut une broche d'entrée et une broche pour faire le décalage. au niveau de la programmation , on met l'entrée à 1, on met une impulsion sur le décalage. Puis pour la suit on donne des impulsions pour décaler. C'est assez simple à programmer. Il n'y a pas de limites dans le nombre de leds.
Sinon on peut utiliser un démultiplexeur, c'est un peu une commande parallèle. Un donne un nombre binaire et la led correspondante s'allume. C'est un peu plus souple mais il faut plus de broches.

Je me renseigne ducoup sur les 74HC595, mais je trouve pas jusqu'à combien de module je peux coupler ensemble, si quelqu'un à une réponse.

Il y a également une mise sur le projet, je ne garde que l'atome en chenillard pour les 3 électrons et le noyau qui clignote, les 10 leds toujours allumées ainsi que les 8 suite de 8 leds en chenillard.

Je me renseigne ducoup sur les 74HC595, mais je trouve pas jusqu'à combien de module je peux coupler ensemble, si quelqu'un à une réponse.

Oui : comme souvent la réponse est dans la datasheet du produit.

Les registres à décalage (R.A.D.) , le 74HC595 en est un, ne se couplent pas ils se chaînent et les mots ont leur importance.

Tu peux en chaîner autant que tu veux, il n'y a pas de limite.

La limite est ailleurs.
Il est impossible d'adresser les sorties une par une. Quand on veut changer l'état d'une ou plusieurs sorties il faut reconstituer le mot en entier et recharger la totalité de la chaîne de RAD.
Si tu chaînes 10 RAD de 8 bits il faudra reconstituer un mot de 80 bits.

Dans un R.A.D. seules 2 commandes sont indispensables Horloge et Data.
La plupart des R.A.D. en ont 3 (comme le 74HC595) : H, D et Latch (verrou en français) -> le latch vérouille les étages de sortie tant que la totalité du mot n'est pas chargé.
Sans latch il y aurait des valeurs intermédiaires qui dans ton application se traduiraient par des scintillements intempestifs.