Driver PWM leds RGB

Dans le forum Electronique - par molux le 31 Mars 2010

  1. JLe

    JLe 36 ans, Luxembourg

    Bête question mais que coute ce genre de carte avec ce cpu atmel?
    au point de vue de la programmation ça ce fait en quel langage?
    je me suis arrêté au pic lors de mes études ;-)
     
    JLe , 1 Avril 2010
    #21
  2. bZone

    bZone Equipe BricoZone 43 ans, Liège

    ca coute dans les 20 EUR, ca se programme dans un genre de C.
     
    bZone , 1 Avril 2010
    #22
  3. springbok

    springbok 36 ans, Liège

    Un genre de C ?
     
    springbok , 1 Avril 2010
    #23
  4. JLe

    JLe 36 ans, Luxembourg

    cooll... je sens que je vais me remettre à l'electronique moi...
     
    JLe , 1 Avril 2010
    #24
  5. MDe

    MDe 58 ans, Liège

    Tu vas vite pour développer, la carte est à peine sortie de sa boite que ça tourne déjà :)
     
    MDe , 1 Avril 2010
    #25
  6. bZone

    bZone Equipe BricoZone 43 ans, Liège

    boarf, incrémenter un compteur de 0 a 255 avec 30ms de delai entre, ca va quoi :)
    la je chipote avec le decodage RC5, c deja nettement moins drole :)
     
    bZone , 1 Avril 2010
    #26
  7. Rio

    Rio 56 ans, Liège

    Bonjour,

    Le langage "Arduino" est basé sur le C/C++... quelles lignes suffisent pour allumer/éteindre une led...;-)

    [​IMG]
     
    Rio , 1 Avril 2010
    #27
  8. bZone

    bZone Equipe BricoZone 43 ans, Liège

    bon j'arrète pour aujourd'hui :)


    Decodage RC5, et controle en PWM de deux couleurs (la video rend mal)
    (Bref je change les couleurs avec le telecommande de ma télé.)

    Ca manque de définition dans les faibles niveaux, je devrais surement augmenter la frequence du PWM, mais bon le principe y est.
    Quand j'aurais mis la main sur un fer a souder j'affiche les valeurs RGB sur le display 2x20 lignes plutot que sur ma console USB/Serial :)

    Suite aux prochains numéros;
     
    bZone , 1 Avril 2010
    #28
  9. fdreno

    fdreno 39 ans, Namur

    l'arduino est en effet excellent pour ce genre de petites applications, c'est également ce que j'avais utilisé pour mon "compteur d'énergie" (cfr le post correspondant).

    Outre son faible prix et sa facilité de programmation:
    -il existe une multitude de modules a plugger dessus: ecran LCD, emetteur wireless, carte ethernet,...

    -l'Arduino est très répandu, donc avant de réinventer la roue pour un protocole particulier, un petit google peut donner une bonne base de code pour démarrer. Je suppose que c'est ce que bZone a fait pour le RC5.
     
    fdreno , 2 Avril 2010
    #29
  10. bZone

    bZone Equipe BricoZone 43 ans, Liège

    Il existe pas mal de code dispo, le probleme que je rencontre est qu'il est souvent l'oeuvre de gens a peine plus doués que moi, ce qui a tendance a induire en erreur.
    J'ai deja pas mal perdu de temps, en derniere date avec une "table logarithmique" et une autre "table gamma corrigée" pour améliorer la linéarité de l'eclairage. le gars s'est complètement gourré, j'ai tapé sa formule dans excel pour voir les valeur que son truc génére et il a inversé le probleme (il faudrait un inverse-gamma-correction en réalité). Des dizaines de gens utilisent sans doute ce code...
    Idem pour le RC5, qui ne fonctionne pas et j'ai donc utilisé une libraire de telecommande universelle et travaille sur des codes bruts.
    Je remarque aussi que le PWM a 8 bits est un peu léger pour mon soucis de haute définition dans les couleurs. Je devrais peut etre passer a un PWM software 12 bits.
     
    bZone , 2 Avril 2010
    #30
  11. MDe

    MDe 58 ans, Liège

    Ah.. donc, tu aurais pu y aller en ARM alors.. ?

    12 bits, par contre, ça me semble beaucoup. 10 devrait suffire ?

    A part que c'est de la jolie technique, je ne comprends pas encore très bien les fondements de l'utilité de tout cela :(

    Tu t'éclaires avec des LED de couleur ?
    Et l'afficheur LCD, à quoi sert-il ?
     
    MDe , 2 Avril 2010
    #31
  12. Raclette

    Raclette Equipe BricoZone 51 ans, Liège

    En fait, oui :) Ca a changé radicalement l'ambiance du salon :)
     
    Raclette , 2 Avril 2010
    #32
  13. bZone

    bZone Equipe BricoZone 43 ans, Liège

    Nous avons en effet 900 leds en éclairage indirect controllées par un dimmer/variateur acheté sur le net (je vais en faire un article), la j'essaye dans une optique qui rélève plus de la curiosité scientifique que d'autre chose, de refaire au moins la meme chose que ce controlleur, et si possible en mieux.

    Au fur et a mesure je decouvre que certaines decisions qu'ils ont prises pour leur controlleur sont réfléchies et bien pensées. Je compare aussi avec les techniques DMX.

    12 bits car en fait j'estime sur base de mes premiers essais que seuls les bits de poids faible sont importants pour la couleur, et que seuls ceux de poid fort sont relevant pour la luminosité. Je pense qu'un PWM 12 bits mixant 8 bits RGB et 4 bits brillance ferait des merveilles. A vérifier sur le terrain.
     
    bZone , 2 Avril 2010
    #33
  14. springbok

    springbok 36 ans, Liège

    Je suis tout à fait d'accord avec toi... pour l'avoir testé.
     
    springbok , 2 Avril 2010
    #34
  15. bZone

    bZone Equipe BricoZone 43 ans, Liège

    Bon ben pour ceux qui suivent, j'ai interfacé mon "nouveau" controlleur RGB avec la télécommande de l'ancien (nettement plus adaptée au travail qu'une télécommande de téloche :)

    Tout marche bien,


    Reste le point fondamental que le PWM 8 bits me parait sous exploité. Seuls trois ou 4 bits suffisent a controller la couleur globale. L'oeil humain n'est pas linéaire et le PWM l'est. Et plutot que d'appliquer une echelle gamma ou log pour compenser le fait qu'on ne percoit nettement que les 20 premiers changement de couleurs (ce qui aura pour effet de tuer la resolution de 256 niveau pour n'en laisser de facto qu'une vingtaine), je voudrais tester une autre approche.

    J'ai en commande chez FARNELL un TLC5940 (chip T.I. dédié a l'application de pilotage de LEDs, 16 canaux de 12 bits de PWM et 6 bits de correction de balance couleur ) et je verrai ce qui marche le mieux. Evidemment c'est redondant avec le PWM onboard de l'arduino, et pas forcémment plus performant - mais je pense que ca vaut la peine d'analyser en détail la situation.

    Ensuite ; je choisi définitivement le type de controlleur (onboard ou TLC) et j'interface les MOSFETs et l'affaire est réglée pour piloter des milliers de Leds (6A par canal sans dissipateur).
    Une partie de mon cerveau malade a toujours le projet d'utiliser 12 bits de brillance sur un 4eme canal, pilotant en PWM l'anode commune. Ce qui ferait de ce controlleur un bidule très au dessus d'une solution DMX512 qui coute 2000EUR. Mais bon là je crains sincèrement qu'envoyer une patée "double PWMisée" aux LEDs va leur faire griller le cerveau.

    (Restera également le LCD 2x20 chars. a interfacer mais c'est cosmétique.)

    Et salutations a ceux qui lisent ce techno blabla sans prendre un Nurofen !
     
    bZone , 7 Avril 2010
    #35
  16. jef2000

    jef2000 40 ans,


    Salut bZone,

    Pour le double PWM, fais bien attention que si les 2 sont synchronisés, celui qui est réglé le plus bas coupe le jus et l'autre PWM n'a plus aucun effet. Si ils ne sont pas synchronisés, il te faut bien choisir les fréquences pour éviter les effets de battement entre les 2 "modulations". J'ai un peu de mal à comprendre comment 2 PWM en série vont être capable de faire mieux qu'un seul. De toute façon au final la led est allumée ou éteinte, donc que peut faire le second PWM que le premier ne pourrait pas?


    Même pas mal ;-)

    Tiens, tu utilises quoi comme leds pour ton éclairage RGB? Des strips? Puissance? tension? Ca sert également d'éclairage principal ou uniquement ambiance?

    Jean-François
     
    jef2000 , 7 Avril 2010
    #36
  17. bZone

    bZone Equipe BricoZone 43 ans, Liège

    J'ai des strips RGB haute densité, et j'attend un mini strip RGB de power leds 1W. C'est en eclairage indirect a ras du plafond, pour les soirées ou pour amuser les enfants. On peut s'eclairer avec, il y a quand même 40W en LEDs. La plupart du temps ca tourne sur un blanc très chaud (on peut dire franchemment orangé/jaune) histoire d'etre pareil que les autres ampoules de la maison. Sinon on utilise parfois du rouge léger, du blanc froid, du blanc rosé... Et on tourne souvent a très faible intensité. (Eclairage cosy quoi)

    A l'usage : si j'ai une couleur que j'aime et que j'obtiens avec 255/255/20, elle n'a que 20 niveau de dimmage (sinon la composante B disparait ou est altérée). Avec un quatrième canal sur l'anode commune, je peux dimmer ca de 255 niveaux meme si le B est a 20. On utilise généralement les variantes de jaune (ma maison n'est ni un sous marin ni une boucherie : donc le 255/0/0 tourne rarement), ce qui fait qu'on tourne généralement dans les subtilités ; de très petites doses de bleu (pour avoir beaucoup de tons de jaunes) sont nécessaires.
    Hors les différences de couleurs sont flagrantes entre 255/255/20 et 255/255/21 par exemple. Les 8 bits, en bas d'échelle, sont insufisants. Donc dimmer une telle couleur "a la proportionnelle en software" en baissant les 3 composantes altère la couleur de façon visible, la composante B censée être à 7% passe aléatoirement à 6 ou 9% en cours de "dimmage" et cela se voit.
     
    bZone , 7 Avril 2010
    #37
  18. jef2000

    jef2000 40 ans,

    Je comprends très bien le problème, j'ai juste un peu de mal à comprendre comment le double PWM va apporter une solution.
    Prenons le cas 255/255/20, et supposons que le PWM allume la led pendant un temps X puis l'éteint pendant 256-X (Xr=rouge; Xg=vert; Xb=bleu; Xc=commun):
    Si les 2 PWM sont identiques (à même fréquence et synchronisés):
    Je dimme à 50% sur l'anode commune, Xr est à 255 et Xc est à 128. Donc la led rouge est alimentée pendant 128. On aurait pu faire pareil avec Xr=128. Pareil pour le vert. Xb=20 et Xc=128, donc la led bleue est alimentée pendant 20. Donc le PWM commun ne sert à rien pour le bleu. Résultat, ça ne marche pas.
    Si les 2 PWM ont la même fréquence ou des fréquences proches mais ne sont pas synchronisés:
    Si on prend 128/128/128 pour les couleurs et 128 pour le commun, on à des signaux carrés sur les PWM. Quand ils sont en phase on à bien 50% mais quand ils sont déphasés ça diminue jusque 0%. Donc ça va osciller entre 0 et 50% avec une fréquence correspondant à la différence entre les 2 fréquences des PWM. Résultat, ça ne marche pas.
    Si un PWM à une fré&quence nettement supérieure à l'autre:
    Là ça pourrait marcher, parce que le plus rapide des PWM effectuera plusieurs cycles pendant le temps où l'autre PWM est dans l'étape allumée, ce qui réduira l'intensité lumineuse en proportion. Mais pour que ça fonctionne correctement, il faut que le PWM rapide fasse au moins un cycle complet pendant l'étape allumée de l'autre, donc si l'un est à très faible instensité, prenons 5%, il faut que l'autre PWM ait une fréquence 20 fois plus élevée.
    Au final, est-ce que ce n'est pas plus simple d'augmenter simplement la résolution du PWM? Surtout que si tu utilises un circuit dédié, je ne pense pas que tu puisse employer des fréquences différentes pour les différents canaux.

    Jean-François
     
    jef2000 , 7 Avril 2010
    #38
  19. bZone

    bZone Equipe BricoZone 43 ans, Liège

    oui, l'arduino peut faire du PWM a 500Hz sur des sorties et en même temps un PWM a 32Khz sur d'autres sorties. Donc aucun soucis dans la solution "tout arduino".

    Je confirme en tout cas ton raisonnement pour un PWM a frequence identiques ou proches; il y a un gros risque d'harmoniques.

    Concernant le TLC, le probleme est différent car il comporte une fonction à 6 bits qui peut etre détournée de son usage pour en faire un reglage de luminosité. (Elle sert normallement a compenser la différence de luminosité percu entre canaux, l'oeil etant plus sensible au rouge qu'a vert par ex.)

    Mais la je parle sans avoir expérimenté (mon paquet vient de partir, j'en saurais plus demain :) )

    Merci pour ton intérêt au sujet :)
     
    bZone , 7 Avril 2010
    #39
  20. bZone

    bZone Equipe BricoZone 43 ans, Liège

    Je continue mon monologue, j'ai recu hier le chip texas instrument et les mosfets, on verra ca pour plus tard. Je les ai fourré sur nla breadboard pour utilisation future.

    La j'ai interfacé le LCD. Ca fait beaucoup de fils en plus :)



    J'ai deja un peu lu les specs du TLC, il y a quelques trucs intéressants (ils decalent de 20ns tous les flux PWM pour eviter les clignotements, gestion des fades en hardware ,...).
    D'autres pas du tout (e.a. la limitation du courant et les 6 bits de reglage ne fonctionnent que si on drive les leds directement avec le chip (60mA max par canal): donc avec les mosfet ces fonctions sont inutilisables.)
     
    bZone , 9 Avril 2010
    #40
Chargement...

Sujet similaires

Vous pouvez aussi lancer une recherche sur : Driver PWM leds

Similar Threads - Driver PWM leds
  1. spikeboretto2

    Lignes verticales TV led

    spikeboretto2, +2 (spikeboretto2), 18 Février 2018
    2
    Affichages:
    271
    spikeboretto2
    24 Février 2018
  2. Le Dam

    Placement d'une mini-LED dans un luminaire : possible ?

    Le Dam, +15 (fgalette), 22 Novembre 2016
    15
    Affichages:
    794
    fgalette
    24 Mars 2017
  3. VdL

    Montage LED

    VdL, +2 (VdL), 9 Juin 2016
    2
    Affichages:
    826
    VdL
    9 Juin 2016
  4. saketa

    6 W led

    saketa, +11 (omega.067), 5 Mai 2016
    11
    Affichages:
    918
    omega.067
    6 Mai 2016
  5. pyromana

    plusieurs powerled avec un PWM

    pyromana, +4 (pyromana), 17 Mars 2014
    4
    Affichages:
    688
    pyromana
    17 Mars 2014
  6. lephenix

    moteur portail Power Drive de Chamberlain

    lephenix, +21 (steph987), 3 Avril 2011
    21
    Affichages:
    14 839
    steph987
    10 Mars 2018
  7. bZone

    experience en leds RGB, driver, strip led rgb ?

    bZone, +4 (bZone), 17 Mars 2010
    4
    Affichages:
    3 120
    bZone
    25 Septembre 2010