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 :

A propos de LED_BUILTIN sur Arduino Nano


Sujet :

Arduino

  1. #1
    Membre à l'essai
    A propos de LED_BUILTIN sur Arduino Nano
    Bonjour.
    Sur Arduino Nano (au moins), La constante LED_BUILTIN est fixée à 13, donc pointe sur pin D13.
    Est-ce la raison pour laquelle la déclaration de MaLed = 13 avec initialisation en INPUT avec résistance pull-up ou même résistance externe ne fonctionne pas ??
    La tension aux bornes est de l'ordre de 1,7 V au lieu de 5 donc considérée comme 0.
    En résumé la lecture est toujours nulle.
    Et cela sur 2 Arduino Nano. Serait-ce une coïncidence ???
    Je n'ai pas vérifié sur UNO.
    Par contre cette D13 fonctionne parfaitement en OUTPUT.
    Est-ce la présence de la Led témoin pour cette D13, Led sur la carte Nano, qui serait reliée intérieurement même en déclaration INPUT dans setup() ?
    Si quelqu'un a une explication...
    Je vous remercie.
    Chamac.

  2. #2
    Membre éprouvé
    Tu as raison, la LED sur 13 t’empêche d'utiliser cette pin en input.
    Regardes le schematic du nano (pareil sur Uno en passant):


    Si tu ajoute une résistance de pull-up, elle sera groundé en permanence quelque soit l'état de la switch (retour par la LED si la switch est ouverte).
    Choisis une autre pin et si tu peux pas, dessoudes la LED sur 13

  3. #3
    Modérateur

    Salut,
    Dans le configuration D13 en entrée et avec une résistance de pullup externe ou interne, oui c'est vrai ça ne fonctionnera pas.
    Par contre si c'est une entrée logique (c'est à dire sans pull up interne ou externe), ça fonctionnera très bien à condition que ce qu'on relie a cette entrée soit capable de débiter 20mA car la LED va s'allumer au rythme des données qui arrivent sur l'entrée.

    Citation Envoyé par Chamac Voir le message
    La tension aux bornes est de l'ordre de 1,7 V
    Si quelqu'un a une explication...
    Voici :
    Au vu du schéma du Arduino Nano (ci dessous une version plus récente)

    On voit bien que la PIN 17 du microcontrôleur, donc D13, est reliée a une résistance de 330 Ohms qui sert à limiter le courant dans la LED à une bonne dizaine de mA.
    Le vrai calcul étant (5V - VF_de_la_diode) / 330 Ohms
    La valeur de VF_de_la_diode qui est la tension aux bornes de la LED lorsque celle ci est passante, donc allumée, est donnée dans sa doc constructeur.

    Si jamais tu actives la résistance de pullup interne ou si tu câbles une résistance de pullup externe, j'ai pris 10k pour l'exemple, voilà ce qui se passe :



    Un courant (flèche rouge) va passer dans R1 qui est la résistance de pullup de 10k. Puis le courant va se séparer en deux, c'est les lois de kirchhoff. Il va y avoir un courant qui va entrée dans le Arduino (flèche jaune), il sera très très faible car la technologie actuelle requière très très peu de courant pour fonctionner. On trouve cette faible valeur dans la datasheet du microcontrôleur sous le terme de IIH et IIL, respectivement courant d'entrée à l'état haut et courant d'entrée à l'état bas. Enfin il y aura le reste du courant (flèche orange) qui va passer dans R2 puis dans la LED. Ps : Les courants finissent par se rejoindre dans le 0V du montage.

    Postulat :
    - On va négliger le courant qui entre de le Arduino (flèche jaune) car il sera de l'ordre de quelques dizaine µA.
    - On va considérer que la tension VF_de_la_diode donc quand elle est allumée est de 1.6V. Dans le schéma présent elle est allumée même si l'oeil ne le voit pas puisqu'un courant passe dans la diode et que la tension de l'Anode est supérieur a la tension de la cathode qui est au 0V.
    Donc finalement c'est comme ci nous effacions la flèche jaune et que les flèches oranges deviennent rouge.



    Le courant global du coup se calcul simplement en faisant Iglobal= (Uglobal - VF_de_la_diode) / Réquivalent.
    • Ici Réquivalent c'est juste la somme des résistances puisqu'elles sont en séries.
    • Uglobal c'est le +5V de l'Arduino.
    • VF_de_la_diode c'est les 1.6V.


    Iglobal= (5V - 1.6V) / (10k + 330)
    Iglobal= 329µA

    Maintenant que nous avons le courant, trouver la tension aux bornes des différents composants est très simple puisque U = R . I



    UR1 = 10k * 329µA = 3.29V
    UR2 = 330 * 329µA = 0.10V
    UL1 = 1.6V car la LED est allumée (mais avec 329µA, tu ne le vois pas)
    On remarque au passage que UR1 + UR2 + UL1 = 5V et heureusement.

    Si tu as mesuré la tension à la broche D13 alors tu as mesuré UR2 + UL1 = 0.10V + 1.6V = 1.7V

    Pour résumer :
    Tu peux utiliser l'entrée D13 mais pas avec un pullup.

    Si je n'ai pas été clair dit le !
    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Expert éminent sénior
    Une question qui n'a pas grand chose à voir avec le sujet.
    Une chose m'a surpris dans le schéma posté par djuju : il n'y a pas de résistance sur les LED ? Ou sont-elles intégrées dans le composant ? On dirait qu'elles ont été volontairement supprimées car il y a des blancs ?

  5. #5
    Membre éprouvé
    Salut Auteur,

    Super réponse ! J'ai effectivement pas considéré d'autre cas que celui du pull-up.

    Ce n'est pas le schéma que je voulais donnée. Une erreur de copier/coller... Désolé.
    Je pense que la résistance devait être dans la discontinuité de la piste de la LED, entre le marqueur "LED1" et "D13/SCK".
    J'imagine que pour une raison ou une autre, le symbole de résistance à sauté à la génération du schéma. On ne voit d'ailleurs aucune résistance sur le schéma et il semble en manqué une sur LED3.

  6. #6
    Responsable Modération

    Bonsoir

    Les résistances sur le schéma de djuju sont en bas à droite. Il s'agit de réseau de résistance 4x1k.
    En installant un pull-up également de 1k. La tension sur l'entre sera de (Vcc+Vled)/2 suffisant normalement pour activer la lecture en 1 par l'AVR.

    Mais bon une conception intelligente serait d'avoir la led sur VCC.

    Bonne soirée

    Delias

  7. #7
    Membre à l'essai
    Bonjour à tous.
    Merci pour les réponses. Mais je dois me faire vieux car je n'ai même pas pensé une seconde à consulter le schéma ....
    Quant à Kirchhoff, il a été mon "copain" pendant de nombreuses année, merci. Je dois dire à ce sujet que je préférais Thevenin et Norton. Mais c'est un autre sujet.

    Encore merci à tous.

    Chamac

  8. #8
    Expert éminent sénior
    Bonjour,
    Citation Envoyé par Vincent PETIT Voir le message
    --snip--
    Si jamais tu actives la résistance de pullup interne ou si tu câbles une résistance de pullup externe, j'ai pris 10k pour l'exemple, voilà ce qui se passe :



    Un courant (flèche rouge) va passer dans R1 qui est la résistance de pullup de 10k. Puis le courant va se séparer en deux, c'est les lois de Kirchhoff. Il va y avoir un courant qui va entrer dans le Arduino (flèche jaune), il sera très très faible car la technologie actuelle requiert très très peu de courant pour fonctionner. On trouve cette faible valeur dans la datasheet du microcontrôleur sous le terme de IIH et IIL, respectivement courant d'entrée à l'état haut et courant d'entrée à l'état bas. Enfin il y aura le reste du courant (flèche orange) qui va passer dans R2 puis dans la LED. Ps : Les courants finissent par se rejoindre dans le 0V du montage.
    --snip--
    Je comptais poster ce qui précède en demandant s'il ne manquait pas quelque chose car nulle part je ne vois de flèches colorées, mais la lumière s'est faite quand j'ai cliqué sur "Répondre avec citation" car voilà ce sur quoi je suis tombé (bout de copie d'écran de l'éditeur du forum) :


    J'en conclus que dvlp (il y a eu des soucis il y a 2-3 jours) a fait sauter la pièce jointe 232415 et voilà pourquoi le message est incompréhensible.

    Merci de faire le nécessaire.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #9
    Responsable Modération

    Bonjour Jipété

    Sous Win7 + Firefox (en mise à jour standard), j'ai toujours eu les images. A voir si c'est pas ton ordi qui bloque.

    Bonne journée

    Delias

  10. #10
    Modérateur

    Salut,
    Win7 + Firefox (au boulot) jamais eu de soucis avec les images.
    Linux Mint 18 + Chromium (perso) jamais eu de soucis avec les images.

    Par contre, dans une discussion dans le forum j'ai vu au moins une personne qui avait le même problème que toi Jipété (images qui n'apparaissent pas)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #11
    Expert éminent sénior
    Ce message n'a pas pu être affiché car il comporte des erreurs.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

###raw>template_hook.ano_emploi###