Go Down

Topic: Module alimentation 30 canaux 12v (Read 456 times) previous topic - next topic

Mayzz

Bonjour à tous,

Je suis nouveau sur ce forum et je me suis mis depuis peu à l'Arduino et à l'électronique. Je suis venu ici dans l'espoir de trouver de bonnes âmes qui prendraient le temps de partager avec moi leur savoir  ;)  J'ai quelques bases en électronique, mais je suis loin d'être un professionnel dans le domaine.

J'ai en tête un petit projet et j'aimerais le réaliser mais je ne maîtrise pas assez l'électronique pour ça, je ne suis que développeur de métier.

J'aimerais réaliser un module prenant en charge la gestion des éléments LED RGB dans mon PC afin de pouvoir les gérer et faire des jeux de lumière assez sympa entre les divers éléments de plusieurs marques. Au final, tous les éléments sont similaires puisque constitués de LED RGB à 4 broches.

Actuellement j'ai 5 ventilateurs, 1 waterblock et deux barrettes de LED. Pour la partie programme et interface avec l'ordinateur, aucun souci, j'ai déjà en tête tout ce que je veux faire. En revanche pour la partie hardware ça se gâte...

Contrôler les LED RGB à l'aide d'une sortie PWM est assez simple, mais ce n'est pas ce que je cherche à faire ici, car les éléments sont très nombreux et donc trop gourmands. Le 3,3v de sortie des broches PWM ne suffirait pas.

Je vais donc être dans l'obligation de prendre une broche molex dédiée de mon alim, récupérer le 12v qui me permettra d'alimenter tous les modules. Je souhaiterais donc réaliser une carte (un hat) pour Arduino, d'alimentation step down 12v, et pouvoir y connecter 10 éléments RGV, soit 30 canaux réglables de 0 à 12v. Pour être plus précis, je cherche un moyen d'utiliser une alimentation 12v en entrée que je veux découper afin d'en contrôler le voltage graduellement pour chaque canal de 0 à 12v via le programme de l'Arduino (et non manuellement par des potentiomètre).

Pourquoi de 0 à 12v ? Parce que je veux pouvoir dans mon interface PC, choisir le voltage max pour un élément donné, par exemple mes barrettes LED sont en 7v Max mais d'autres fonctionnent sur 12 et sont munies de résistances. Je compte aussi ajouter des Neopixels par la suite, je veux donc saisir la tension max pour chaque élément, et que le programme Arduino utilise un pourcentage compris entre 0 et 100% de la tension max appliquée pour le canal.

Voyez-vous un IC de base qui me permettrait de réaliser cela ? Sachant que le 12v est celui d'une alim de PC qui a la base est déjà stabilisée.

S'il y a des personnes intéressées je n'hésiterais pas à partager mes travaux, la partie software y compris.

En espérant trouver quelques réponses, j'ai bien conscience que nous sommes sur un forum Arduino et non un forum d'électronique, mais les deux sont tout de même assez liés.

Merci à vous par avance.

Cordialement,

Olivier.

trimarco232

Bonjour,
- qu'elle est la distance entre PC et modules ?
- envisages-tu la compatibilité avec un protocole existant, genre dmx ?

Mayzz

Bonjour trimarco232,

Pour la distance, il n'y en a pas vraiment. L'Arduino et son hat seront à coté de l'alim. Pour la distance entre les modules lumineux et l'Arduino, de 30 à 60cm.

Je ne prévois pas d'adapter de protocoles lumineux, je cherche dans un premier temps à réaliser quelque chose de simple. Un contrôleur où tous mes éléments lumineux seront connectés. Bien entendu, je pars du principe que chaque élément est "brut", j'entends par là de simples LED RGB en parallèles, avec 4 pôles. Toutes mes sorties seront donc de simples connecteurs 4 broches.

Tout l'intérêt de ce projet repose sur la partie développement, qui permettra des effets de style entre les éléments, par exemple un effet de transition de couleur d'un élément à l'autre, plutôt qu'un changement brut de couleur de tous lés éléments en même temps, ou encore un effet rainbow entre les éléments.

Bien entendu, il n'est pas exclu que j'y ajoute par la suite des produits disposant de leur propre protocole (c'est le cas des Neopixels qui disposent de leur propre contrôleurs intégrés et qui nécessitent la lib Adafruit associée), ou certains ventilateur RGB disposant de leur propre contrôleur (mais il me faudra les acheter pour les étudier et les prix sont élevés, environ 80€ pour un ventilateur). Dans ce cas, j'imagine qu'il me faudra ajouter une broche supplémentaire par sortie et utiliser des ShiftRegister, et laisser certaines broches PWM sur certaines autres de mes sorties car les NeoPixels ne peuvent pas être montés sur des ShiftRegister. Quoi qu'il en soit, cette adaptation nécessitera des développements supplémentaires sur l'interface PC/Arduino, avec un système de plugin pour la prise en charge de chaque élément (marque/model). Si je débute réellement ce projet je publierais mes travaux, j'ai fait quelques recherches mais je n'ai rien trouvé de similaire.

Leplouc

Bonjour,

Vous ne mentionnez pas le courant nécessaire et  c'est une donnée importante pour l'éventuelle capacité du circuit générateur de tension.
Je vois (modestement) cette solution :

- On utilise un simple régulateur 3.3V (si c'est la tension minimum d'utilisation) ou encore un régulateur de tension variable (min 1.25V).
On utilise alors un potentiomètre numérique pour commander la tension de sortie. Par contre, la tension max admissible aux bornes d'un pot numérique est généralement de 5V. Il sera donc nécessaire d'intercaler un ampli op séparateur pour commander le régulateur.
Un circuit régulateur classique délivre 1A.
G


Leplouc

https://www.dropbox.com/s/8m81i1bf1a3u3gq/SIMU%20Mayzz.BMP?dl=0

trimarco232

pour commencer, tu peux utiliser des modules tout faits pour :
- réguler une tension, à base de LM2596
- amplifier le courant pwm de l'arduino, à base d'ULN2003 (ne pas oublier les résistances !)
je te laisse chercher, ça fourmille
il faudra effectivement considérer le courant total selon le nombre de leds que tu souhaites mettre en parallèle

si tu pouvais faire un petit dessin pour illustrer ton projet, cela éviterait d'éventuelles incompréhensions

Mayzz

Bonjour Leplouc et merci de votre réponse. Pour le courant, je compte utiliser l'alimentation du PC, en 12v (Molex) donc je ne connais pas l'ampérage précis, mais après quelques recherche il semblerait que ce soit 10A. Pour ce qui est des éléments lumineux, honnêtement je ne connais pas leurs caractéristiques, les constructeurs ne les précisent pas (peut être juste la tension) car ces éléments sont fait pour être connectés sur des ordinateurs directement via des prises Molex 3 ou 4 broches (ventilateur PC).

Pour ce qui est des potentiomètres électriques je ne connaissais pas, merci de l'info. Je vais creuser sur le sujet.

J'ai en effet deux points important dans ce "hat" :

1\ Parvenir à découper l'alimentation d'entrée 12v en 30 canaux.
2\ Parvenir à contrôler la tension de chaque canal via mon Arduino.

@trimarco232 merci également pour tes conseils. Pour l'amplification du courant des PWM, comme je le dis plus haut je ne préfère pas. Je ne souhaite pas utiliser les broches pour alimenter les appareils, sauf cas exceptionnel, si par exemple les appareils ne sont pas des composants d'ordinateur, comme les Neopixels d'Adafruit. Dans ce cas c'est différent puisqu'ils sont conçus pour fonctionner directement sur une broche Arduino. Mais pour le moment ce n'est pas mon objectif.

Les step down en revanche semblent être une bonne piste, sauf qu'il m'en faudrait une trentaine donc j'aurais probablement un problème de coût et de place, et que je ne sais pas non plus comment contrôler leur tensions de sortie via l'Arduino.

En gros, ce que je cherche à faire au final, c'est avoir une carte avec une entrée 12v 10A, et avec 30 sorties 0 à 12V (et avec un ampérage divisé du coup). Cette carte doit être contrôlable via un Arduino, en utilisant une ou plusieurs broches (PWM ou non), peu m'importe.

C'est vraiment la partie interface PC qui fera le plus gros du travail. Elle communiquera avec l'Arduino via port COM et qui donnera les instructions sur les tensions des 30 sorties en temps réel. Ce projet est destiné à être connecté en permanence au PC via un USB interne. Mais encore une fois, l'Ardino n'aura pas pour but d'alimenter les modules, juste de contrôler la carte d'alimentation.

Je ne sais pas vraiment si j'ai été clair, je suis navré. En tout cas merci à vous pour vos interventions.

Olivier.



 


Leplouc

Effectivement, ce qui est important c'est de connaitre la consommation par branche car elle dimensionne à la fois l'alimentation 12V et le système de distribution.
Si le courant par branche est de 1A, l'alimentation devra pouvoir débiter 30A dans le cas pire.
Si on reste sur des courants de cet ordre, le cout reste "raisonnable" avec des régulateurs LDO de 1A par exemple et une alim à découpage de 30A par exemple.
Mais nous manquons de données d'entrée...

trimarco232

Quote
les constructeurs ne les précisent
Bonjour,
sérieusement pour aborder le projet il faut connaître les consommations. Si tu ne les trouves pas en ligne, il faut en acquérir un et mesurer

tant que nous n'aurons pas cette donnée, le reste ne sera que supputations stériles

Mayzz

Bonjour,

Je vais plutôt partir du principe suivant:  étant limité par la capa de l'alim du PC. Partons du principe qu'elle est de 10A, ce que j'ai lu sur le net (l'ATX c'est une norme, donc toutes les alim PC se ressembles, mais je mesurerais la mienne pour être sur), donc on peut dire que nous aurons donc 30 sorties de 330 mA.

Quand je dis que les constructeurs ne les précisent pas, c'est qu'en règle général, les composants sont normalisés, donc les acheteurs ne se préoccupent pas des specs. Même sur un site comme LDLC qui précise pourtant bien les specs techniques des produits, l'information ne peut être trouvée. Le module est fait pour être connecté à une broche Molex, point barre.

https://www.ldlc.com/fiche/PB00219491.html?gclid=Cj0KCQiAyszSBRDJARIsAHAqQ4pNubWlM2AXY1YKwGUf4bW6DEswnRjZFrrOi03v1AB0lpROG7pw1CMaAlTrEALw_wcB

Mais dans l'idée, j'aimerais partager mon projet sur le web, j'aimerais donc le rendre compatible avec un maximum de périphériques. Donc j'ai été chercher sur le web, et une LED haute luminosité consomme environ 0.06W pour 5v. Ce qui nous fait 0.06 / 5 = 0.012A / led, en sachant qu'un strip comporte à peu près une vingtaine de LED, cela fait 240mA / strip. Un ventilateur comporte lui entre une dizaine à une quinzaine de LED. Le projet me semble donc viable à ce niveau.

Pour l'Arduino, celui-ci sera alimenté par USB, donc aucun souci de ce coté là.

Merci encore une fois pour vos réponses, je suis navré de ne pas être plus précis, je sais à quel point c'est agacent lorsque l'on essaye d'aider une personne et que celle-ci n'est pas claire dans ses explications, j'essaye de faire de mon mieux pour pouvoir vous répondre correctement, mes compétences à ce niveau sont limitées.

Olivier.

trimarco232

Bonjour,
pas de souci, tu reviens quand tu veux !

Mayzz

Finalement j'ai trouvé une solution. J'ai étudié la plupart des composants RGB et il s'avère finalement qu'ils tournent sous 5v.

Je laisse donc la soluce ici au cas ou une personne ferait le même type de recherche que moi.

En réalité il existe principalement deux types de composants RGB. Les composants classiques, composées de LED montées en parallèle, et les composants avec des LEDs indépendantes utilisant des registres à décalage.

Donc ces composants (comme les ventilateur AIGO AURORA C3 que je possède) peuvent être contrôlés à l'aide de la librairie Adafruit Neopixel.

Pour ce qui est des composants classiques, il me suffira d'intégrer à ma carte des 74HC595 en série afin de n'utiliser que 2 pins PWM de mon Arduino.

Il ne me restera donc qu'à alimenter tous les composants via l'alimentation 5v du PC et non de l'Arduino qui est limité à 500mA.

Je pourrais donc contrôler l'intégralité des mes LED indépendamment, et faire des jeux de lumière, animations et séries.

Merci encore pour vos réponses et votre disponibilité.

Go Up