IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Arduino > PWM > Fade IN > Fade OFF sur plusieurs LEDs ?


Sujet :

Arduino

  1. #1
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut Arduino > PWM > Fade IN > Fade OFF sur plusieurs LEDs ?
    Bonjour,
    A partir de ce modèle :
    https://arduino-france.site/allumer-pwm/#comment-1411

    -1- Est-ce qu'on peut envisager de définir 6 LEDs en PWM, broches 3,5, 6, 9, 10 et 11 (celle avec le signe ~) sur un seul Arduino UNO?
    Il doit suffire de recopier le code 6x et donner des n° aux LEDs...?

    -2- Est-ce qu'on peut avoir des montées/descentes de luminosité pas synchronisées entre elles pour chaque LED ?
    (pas la même montée/descente sur chaque LED)

    -3- Est-ce qu'avec 6 LEDs sur une seule carte, un papillotement ne risque pas d'apparaître ?

    -4- Pas plus de 6 LEDs sur un seul Arduino UNO je suppose ?

    Merci si vous répondez à mes questions, mercis, mercis.

    Micha Ross (metis15)

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    quelques éléments de réponse

    1/ oui sans aucun souci

    2/ oui, il faut coder cela dans ce cas de manière non bloquante (vous ne pouvez pas mettre delay, il faut utiliser millis)

    3/ papillotement ?? je ne comprends pas la question. votre arduino va globalement passer son temps à ne rien faire, allumer 6 LEDs avec un certains PWM ça ne prend que quelques dixième de milliseconde sans doute donc pas de souci de rapidité.

    4/ sur un UNO seules les pins 3,5,6,9,10 et 11 sont capables de faire du PWM materiel. Donc oui 6. Ensuite vous pouvez faire plus en gérant le PWM au niveau du code. Regardez la bibliothèque SoftPWM par exemple ou en rajoutant des composants capable de faire du PWM, par exemple il y a des cartes à bases de PCA9685 qui vous offrent 16 sorties PWM que vous pilotez en I2C (donc via 2 pins)

  3. #3
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    OK grand merci à Jay M.
    J'ai du pain sur la planche, des essais à faire. Je suis nul en programmation, ça va pas être de la tarte (;o))))
    Point 3/, comme il n'y a qu'un petit proc dans un Arduino et que les LEDs n'ont pas d'inertie lumineuse... Je me disais que ça pouvait clignoter un peu quand on en demande beaucoup...
    Point 4/, je vais cette bibliothèque, si je peux m'en sortir...
    Merci, mercis.

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Bonjour,
    Citation Envoyé par metis15 Voir le message
    Point 3/, comme il n'y a qu'un petit proc dans un Arduino et que les LEDs n'ont pas d'inertie lumineuse... Je me disais que ça pouvait clignoter un peu quand on en demande beaucoup
    La persistance rétinienne tournant autour des 20Hz il suffit que le PWM aille plus vite que cette limite pour que l'œil humain ne perçoive plus de clignotement.

    Citation Envoyé par metis15 Voir le message
    Point 4/, je vais cette bibliothèque, si je peux m'en sortir...
    Attention aux limites électriques de la carte Arduino. Le régulateur de tension qui est dessus est bof bof. Exemple : 6 LED à 20mA donc potentiellement 120mA (cas où toutes les LED sont allumées avec un PWM à 100%)

    1. Ce courant de 120mA traversera le microcontrôleur pour se diviser au travers des broches ~ (20mA par broche) alors ça passe mais la limite n'est pas loin, elle est de 200mA au total.
    2. Le régulateur qui alimente le microcontrôleur, et qui doit fournir les 120mA qui traverseront le micro, va chauffer et la formule pour calculer sa montée en température est facile à calculer : (Tension que tu mets en entrée - 5V) * 120mA * 160°C + Température ambiante.



    Imagines que tu connectes un adaptateur secteur de 12V sur ton Arduino pour l'alimenter et que dans ta pièce il fasse 19°C ; Le petit régulateur de tension va atteindre la température de (12V - 5V) * 0.120A * 160°C + 19°C = 153,4°C (sachant que dans la doc il est écrit qu'à 150°C il est mort ). Si tu connectes un adaptateur secteur de 7V la température du régulateur passerait à 57,4°C ce qui est bien plus raisonnable (même s'il t'apparaîtra brulant au touché mais il ne mourra pas) !


    La parade pour ne plus tenir compte de la limite du point 1) c'est de passer par des transistors. La parade pour ne plus tenir compte de la limite du point 2) c'est de passer par un petit régulateur à découpage qu'on peut acheter tout fait et pour pas cher.

  5. #5
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Pour le point 3/
    1 LED à 100% en fin de montée, ne reçoit le Vmax que 1/12ème du temps avec 6 LEDs.
    Donc pour avoir la luminosité max, il faut envoyer des pulses à plus de 20mA. Là, j'ai peur ! Il faudra utiliser des transistors et une alim externe. Et pour ça tienne, ça va dépendre de la qualité des LEDs...

    Pour le point 4/
    Merci pour les calculs.
    On va déjà voir si j'arrive à me dépatouiller avec le code...

    Merci à toi Vincent PETIT.

    Micha Ross (metis15)

  6. #6
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut Linéaire pas droit
    Bonjour,

    Il y a un truc assez pervers avec le PWM et les Leds.

    L'énergie communiquée aux Led est proportionnelle au rapport cyclique du PWM. C'est parfait ?

    Et bien non. Notre perception visuelle n'est pas linéaire. Beaucoup sont ainsi un peu déçus qu'une rampe linéaire se traduise par une montée initiale rapide de la luminosité pour se traîner vers la fin.

    Tout ça c'est la faute du gamma (exposant entre 2.4 et 2.5, inverse pour la perception) qui fait qu'un taux de 18 % (les photographes connaissent bien le gris "moyen" à 18%) est perçu comme 50%.

    Une illustration sera peut être plus parlante :
    Nom : Gamma.png
Affichages : 452
Taille : 219,3 Ko

    Erratum : dans le dessin, le calcul de 152 devrait utiliser le gamma de perception soit 04 au lieu de 2.5).

    Donc pour avoir une impression linéaire, il faut utiliser une table de conversion, LUT, qui corresponde à la courbe en vert. Il y a perte de certains niveaux mais une sensation plus linéaire.

    Dans le cas d'une rampe, on peut remplacer la LUT par des temps variables entre pas (lent au début puis plus rapide à la fin).

    En espérant avoir un peu éclairé le sujet (oui, lamentable ).

    Salutations

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    C'est super intéressant ça !!!!!!!

    Merci pour le partage

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Guesset Voir le message
    En espérant avoir un peu éclairé le sujet (oui, lamentable ).
    ben non pas du tout
    où as-tu trouvé cette courbe de correspondance ?

  9. #9
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut
    Bonjour Auteur,

    Citation Envoyé par Auteur Voir le message
    où as-tu trouvé cette courbe de correspondance ?
    Je l'ai dessiné avec Libre Office en .odg mais je l'ai exporté en .png. Le plus dur ce sont les courbes car ils faut les dessiner après avoir calculer des points repères à la calculatrice. Enfin une fois la première courbe faite la seconde est assez rapide C'est pourquoi elles sont loin d'être parfaites.

    Ce dessin était déjà dans mes cartons en réaction à un article qui, s'étonnant de la non-linéarité perçue, imaginait une explication aussi intéressante que fausse. Un assez lointain passé avec les techniques vidéo m'a fournit le substrat.

    Si tu ne trouves pas mon jeu de mots lamentable, tant mieux... ...ou tant pis

    J'en ai profité pour corriger le dessin (l'exposant et le fait que f(152) est plus près de 70 que de 69).
    Nom : Gamma.png
Affichages : 780
Taille : 220,4 Ko

    Salut

  10. #10
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 899
    Par défaut
    Citation Envoyé par metis15 Voir le message
    P
    1 LED à 100% en fin de montée, ne reçoit le Vmax que 1/12ème du temps avec 6 LEDs. (metis15)
    je ne comprend pas cette idée de 1/12ème du temps

  11. #11
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Citation Envoyé par Jay M Voir le message
    je ne comprend pas cette idée de 1/12ème du temps
    Avec 6 LEDs, ça fait 6 montées et 6 descentes, donc 12 rampes...
    Et comme je ne veux pas que les LEDs montent et descendent de façon synchrone, il faut que le processeur se répartisse le boulot sur les 6 LEDs (6 sorties WPM).
    Mais possible que je me trompe.
    J'étais assez bon en analogique.
    Mais depuis le numérique... Je rame ! (;o)))

  12. #12
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Bonjour Auteur,



    Je l'ai dessiné avec Libre Office en .odg mais je l'ai exporté en .png. Le plus dur ce sont les courbes car ils faut les dessiner après avoir calculer des points repères à la calculatrice. Enfin une fois la première courbe faite la seconde est assez rapide C'est pourquoi elles sont loin d'être parfaites.

    Ce dessin était déjà dans mes cartons en réaction à un article qui, s'étonnant de la non-linéarité perçue, imaginait une explication aussi intéressante que fausse. Un assez lointain passé avec les techniques vidéo m'a fournit le substrat.

    Si tu ne trouves pas mon jeu de mots lamentable, tant mieux... ...ou tant pis

    J'en ai profité pour corriger le dessin (l'exposant et le fait que f(152) est plus près de 70 que de 69).
    Nom : Gamma.png
Affichages : 780
Taille : 220,4 Ko

    Salut
    Alors oui, la perception de la luminosité, fonction du courant qui passe dans la LED, c'est pas dans la poche !
    J'ai commencé à voir la question en mode analogique avec un circuit NE555...
    Je me disais, que tout à fait par chance, la courbe de charge/décharge d'un condensateur pourrait compenser la courbe de perception de luminosité... un peu au pif.
    En fait, je n'obtiens pas cet effet.
    La LED monte rapidement en luminosité et la lumière reste assez forte sur plus de la moitié du temps.
    Puis elle s'éteint.
    Mais le temps éteint max semble beaucoup plus court que le temps allumé max.
    Je ne sais pas si c'est une impression...
    En tout cas j'ai fait un petit montage d'essai sur un breadboard avec une modulation PWM.
    Ça fait le même effet Allumé fort bien plus long que éteint complètement.

    Bon reste à voir si va pour ce que je veux faire.

    Merci pour les aides et point de vue.

  13. #13
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Bonjour Auteur,

    Je l'ai dessiné avec Libre Office en .odg mais je l'ai exporté en .png. Le plus dur ce sont les courbes car ils faut les dessiner après avoir calculer des points repères à la calculatrice. Enfin une fois la première courbe faite la seconde est assez rapide C'est pourquoi elles sont loin d'être parfaites.

    Ce dessin était déjà dans mes cartons en réaction à un article qui, s'étonnant de la non-linéarité perçue, imaginait une explication aussi intéressante que fausse. Un assez lointain passé avec les techniques vidéo m'a fournit le substrat.
    j'ai trouvé des courbes similaires sur le net et sur ces graphe la courbe du gamma corrigé (en vert pointillé sur ton graphique) correspond au gamma d'un écran CRT. Par conséquent, pour un écran LCD, qu'en-est-il ? As-tu une idée ?

    Citation Envoyé par Guesset Voir le message
    Bonjour Auteur,
    Si tu ne trouves pas mon jeu de mots lamentable, tant mieux... ...ou tant pis
    je n'avais pas vu le jeu de mots Du coup, je pensais que tu trouvais tes explications lamentables.

    Citation Envoyé par metis15 Voir le message
    Alors oui, la perception de la luminosité, fonction du courant qui passe dans la LED, c'est pas dans la poche !
    J'ai commencé à voir la question en mode analogique avec un circuit NE555...
    Je me disais, que tout à fait par chance, la courbe de charge/décharge d'un condensateur pourrait compenser la courbe de perception de luminosité... un peu au pif.
    En fait, je n'obtiens pas cet effet.
    La LED monte rapidement en luminosité et la lumière reste assez forte sur plus de la moitié du temps.
    Regarde la courbe de charge et décharge d'un condo. Le phénomène que tu décris va dépendre de la valeur du condo et de la fréquence de ton astable.

    Citation Envoyé par metis15 Voir le message
    En tout cas j'ai fait un petit montage d'essai sur un breadboard avec une modulation PWM.
    Ça fait le même effet Allumé fort bien plus long que éteint complètement.
    Le condensateur fait une "moyenne" de ton PWM. Regarde, si tu en as la possibilité, sur un oscillo ton signal avec et sans condensateur.

  14. #14
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut
    Bonjour Auteur,

    Citation Envoyé par Auteur Voir le message
    j'ai trouvé des courbes similaires sur le net et sur ces graphe la courbe du gamma corrigé (en vert pointillé sur ton graphique) correspond au gamma d'un écran CRT. Par conséquent, pour un écran LCD, qu'en-est-il ? As-tu une idée ?
    Un tube cathodique a une courbe naturellement exponentielle (un canon à électrons est une diode) qu'il est facile d'assimiler sur une partie de sa courbe à un gamma qui permettait à peu près une perception linéaire. Si ça t'intéresse, tu pourrais regarder (wikipedia sans doute) comment ces non linéarités se sont intégrées à la télévision couleur. En résumé, mathématiquement mal, mais visuellement satisfaisant. Mais c'est de l'histoire ancienne...

    Les afficheurs LCD et autres reproduisent artificiellement le gamma (on peut parfois le modifier).


    Citation Envoyé par metis15
    ...j'ai fait un petit montage d'essai sur un breadboard avec une modulation PWM. Ça fait le même effet Allumé fort bien plus long que éteint complètement.
    S'il n'y a pas de filtrage (genre RC par exemple) ce constat peut résulter de la non linéarité de la perception. Dans ce cas, il y a filtrage par la rémanence de l'œil mais c'est après la conversion non linéaire de nos cônes et batônnets.

    En complément à ta réponse:
    Citation Envoyé par Auteur Voir le message
    Le condensateur fait une "moyenne" de ton PWM. Regarde, si tu en as la possibilité, sur un oscillo ton signal avec et sans condensateur.
    En cas de filtrage, on ne peut plus considérer que la LED ne connait que deux états et que seule la durée de ceux-ci détermine les variations de luminosité. Selon la fréquence de coupure du RC relativement à celle du PWM, une partie plus ou moins importante d'allumage de la LED dépendra d'une tension variable et la non linéarité de la diode interdira de considérer que seul le rapport cyclique intervient.
    Avec un peu de chance aidée par un peu de calcul, on pourrait utiliser cette non linéarité pour approcher le gamma des tubes d'antan mais je crains que ça oblige à travailler avec des petits courants donc avec des luminosités assez faibles.

    Salut

  15. #15
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 630
    Par défaut Pentes en tout genre
    Bonjour metis15,

    Citation Envoyé par metis15 Voir le message
    ...Je me disais, que tout à fait par chance, la courbe de charge/décharge d'un condensateur pourrait compenser la courbe de perception de luminosité... un peu au pif.
    En fait, je n'obtiens pas cet effet.
    La LED monte rapidement en luminosité et la lumière reste assez forte sur plus de la moitié du temps....
    C'est une bonne idée de voir qu'une exponentielle peut ressembler sur une partie à une courbe en gamma. Cela a été utilisé à l'ère cathodique.

    Mais pas avec un condensateur car celui-ci commence par une pente rapide pour finir avec une pente quasi nulle, or c'est l'inverse dont nous aurions besoin (la courbe en vert du dessin). Une self donnerait une courbe plus proche.

    Mais il y a un autre problème plus fondamental. Pour une valeur donnée, c'est un point sur la courbe qui nous intéresse et non toute la dynamique de la courbe. Car la rémanence de l'œil va faire une intégration de ce qu'il reçoit et il ne faut pas qu'il intègre toutes les valeurs (à la puissance 1/gamma) de la courbe.

    Salut

  16. #16
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    J'ai pas regardé, d'un point de vue analogique, si je ne pourrais pas retourner la courbe en vert pour faire une monté lente et une descente rapide.
    Avec force AmpOp et autres composants...

Discussions similaires

  1. Background Fade-In / Fade-Out sur une div
    Par isa28 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/10/2008, 21h51
  2. Fade in sur plusieurs images mais pas simultanément
    Par dynexd dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/02/2007, 09h10
  3. Effet fade out sur un texte dynamique?
    Par melonmaudic dans le forum Flash
    Réponses: 12
    Dernier message: 04/12/2006, 20h56
  4. Fade out sur un bitmap
    Par portu dans le forum Langage
    Réponses: 8
    Dernier message: 23/10/2003, 17h45
  5. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo