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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 624
    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 624
    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
    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

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