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

Raspberry Pi Discussion :

Questions électroniques !


Sujet :

Raspberry Pi

  1. #61
    Expert éminent sénior
    Salut Vincent Petit.

    Citation Envoyé par Vincent Petit
    Néanmoins vu les ordres de grandeurs, pas sur qu'un humain voit une différence entre 1ms et 100ms ?
    Je suis d'accord avec toi sur tes propos.
    Sauf que je considère que la gestion des rebonds se fait, pour le pull-up dans la seconde phase, à savoir le déchargement qui est rapide.
    Ou dans ton pull-down, dans la première phase, à savoir au chargement qui est rapide aussi.

    Ce n'est pas plutôt dans la phase lente qu'il faut faire la gestion des rebonds ?

    Si je reprends ton graphique de ton poste #45, et tes propos :
    Citation Envoyé par Vincent Petit
    L'avantage d'avoir une charge exponentielle grâce au condensateur, c'est que la tension met un peu de temps à monter ce qui masque les rebonds.
    c'est bien la lenteur du condensateur et de surcoit la résistance qui est associée, qui provoque ce phénomène, non ?

    Citation Envoyé par Vincent Petit
    Prenons un exemple pour exploiter ce graphique, R = 100k ohms et C = 100nF
    t = (R*C) = 10ms
    Ce n'est pas bizarre d'avoir pour une résistance de pull-up ou pull-down du 10k ohms et de mettre comme résistance de protection du BP du 100k ohms ?

    Si je mets toutes les résistances à 10k ohms, le temps t sera de 1ms.

    Que ce soit 1ms ou 10ms, est-ce un temps de gestion acceptable :
    --> pour la réaction d'un être humain ?
    --> pour la gestion des rebond ?

    Citation Envoyé par Vincent Petit
    Généralement on considère qu'à 5*t la capa est entièrement chargée.
    Pourquoi 5 ?

    Si je reprends le seuil de détection d'un état :
    --> Pour l'état 0, c'est entre 0.0Vcc et 0.9Vcc.
    --> Pour l'état 1, c'est entre 1.6Vcc et 3.3Vcc.

    La détection de l'état 1 se fait déjà à 1 * T, c'est-à-dire à 63.2% :
    --> 0.632 * 3.3Vcc = 2.0856 > 1.6.

    Inversement, la détection de l'état 0 se fait à 2 * t, c'est-à-dire à 86.5% :
    --> (1 - 0.865) * 3.3 = 0.4455 < 0.9

    Est-ce une sécurité dans la détection du changement de l'état ?

    Citation Envoyé par Vincent Petit
    Je n'ai pas répondu entièrement à la question b) mais c'est volontaire car je voudrai savoir avant si tout ce que j'ai écrit paraît clair ?
    On va dire que OUI, mais maintenant, il faut que je digère tout ça.

    Citation Envoyé par Vincent Petit
    Petit bonus ! Je suis tombé sur ça
    J'ai pourtant cherché, et je n'ai pas trouvé ce type de graphique.
    Nous revoilà au cœur de mon problème, le pull-down symétrique du pull-up. C'est-à-dire le condensateur aux bornes du BP.

    J'ai compris tes explications, mais pas le rôle du condensateur.
    Prenons le cas du pull-up (le BP est en bas du graphique).

    Au démarrage, le jus passe dans le câble, et de ce fait, le signal lu par la GPIO est à 1.
    Le condensateur se charge bien et joue le rôle d'un interrupteur ouvert. Cette question est primordiale. Est-ce vrai ou pas ?
    Pourquoi dis-je que son comportement est similaire à un interrupteur ?
    Parce que le signal lu par la GPIO est à 1 quand le condensateur se charge.

    Ce qui me fait dire, depuis le début de cette Q-5) que le condensateur en décharge est un interrupteur fermé.
    Cela se résume au sens pris par le condensateur entre sa phase de chargement et sa phase de déchargement.

    Mais quand est-il de mon pull-down ou si tu veux de celui de "allaboutcircuits".
    Nous sommes d'accord qu'après le démarrage, le fonctionnement est conforme à ce que l'on attend de lui.

    Le problème est au démarrage jusqu'à ce que le condensateur soit pleinement chargé.

    a) Pas de jus, le BP est relâché, le condensateur est vide.

    b) on met le jus, le BP est toujours relâché et le condensateur se charge.
    (je parle bien sûr de la photo du poste #60, partie gauche).
    Oui, mais voilà. Laisse-t-il passer du jus vers la GPIO ?

    Deux cas peuvent se présenter :

    c) le condensateur en charge se comporte comme un interrupteur ouvert et aucun jus (signal à 0) va vers le GPIO.

    d) le condensateur en charge ne se comporte pas comme un interrupteur, et laisse passer le jus (signal à 1) vers la GPIO.

    Comment expliquer si la broche positive du condensateur se trouve vers le haut (coté VCC) et si le BP est relâché, nous ayons un signal à 1 vers la GPIO ?

    Je me pose les questions suivantes :

    e) le condensateur joue-t-il réellement le rôle d'un interrupteur ?
    Je pense que non.

    f) l'anomalie au démarrage du pull-down est aussi présente dans le pull-up, sauf que cela ne se remarque pas.

    g) dans le cas du pull-up, le signal doit être à 1 dès le démarrage.
    Et le chargement du condensateur produit aussi un 1 vers la GPIO.
    Nous sommes en phase et cela ne pose aucun problème.

    h) dans le cas du pull-down, le signal doit être à 0 dès le démarrage.
    Et le chargement du condensateur produit aussi un 1 vers le GPIO.
    De ce fait, 0 et 1 produit un 1 vers le GPIO, ce qui n'est pas bon.
    Nous sommes en opposition de phase.

    i) dans les deux schémas, il manque quelque chose pour faire cette distinction de phase et d'opposition de phase.
    Quand mettre en évidence dans un schéma, le sens du jus dans le chargement qui n'est pas le même sens du jus dans le déchargement.
    Autrement dit, mettre en évidence deux chemins différents.
    Peut-être introduire une diode ?

    Je me répète encore une fois, mais je trouve ce sujet très compliqué, juste pour gérer un BP.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #62
    Modérateur

    Citation Envoyé par Artemus24 Voir le message
    Je suis d'accord avec toi sur tes propos.
    Sauf que je considère que la gestion des rebonds se fait, pour le pull-up dans la seconde phase, à savoir le déchargement qui est rapide.
    Ou dans ton pull-down, dans la première phase, à savoir au chargement qui est rapide aussi.

    Ce n'est pas plutôt dans la phase lente qu'il faut faire la gestion des rebonds ?
    Oui, et à dire vrai c'est le tout qui fait la gestion des rebonds, charge et décharge.

    Citation Envoyé par Artemus24 Voir le message
    c'est bien la lenteur du condensateur et de surcoit la résistance qui est associée, qui provoque ce phénomène, non ?
    Que ce soit pour la charge ou la décharge, c'est bien l'association R * C qui va rendre la constante de temps plus ou moins longue. Le condensateur tout seul est hyper rapide à se charger ou à se décharger car le R qui lui est associé est minuscule, c'est celui qui est à l'intérieur.

    Citation Envoyé par Artemus24 Voir le message
    Ce n'est pas bizarre d'avoir pour une résistance de pull-up ou pull-down du 10k ohms et de mettre comme résistance de protection du BP du 100k ohms ?

    Si je mets toutes les résistances à 10k ohms, le temps t sera de 1ms.

    Que ce soit 1ms ou 10ms, est-ce un temps de gestion acceptable :
    --> pour la réaction d'un être humain ?
    --> pour la gestion des rebond ?
    Bizarre pas forcément mais il faut faire les calculs ou une simulation car l'impact est grand. Dans tous mes dessins ou dans les exemples que j'ai donné le but était d'améliorer la compréhension. Dans un montage réel peu être que les valeurs prises en exemple ne conviennent pas du tout.

    Citation Envoyé par Artemus24 Voir le message
    Pourquoi 5 ?

    Si je reprends le seuil de détection d'un état :
    --> Pour l'état 0, c'est entre 0.0Vcc et 0.9Vcc.
    --> Pour l'état 1, c'est entre 1.6Vcc et 3.3Vcc.

    La détection de l'état 1 se fait déjà à 1 * T, c'est-à-dire à 63.2% :
    --> 0.632 * 3.3Vcc = 2.0856 > 1.6.

    Inversement, la détection de l'état 0 se fait à 2 * t, c'est-à-dire à 86.5% :
    --> (1 - 0.865) * 3.3 = 0.4455 < 0.9

    Est-ce une sécurité dans la détection du changement de l'état ?
    Dans la littérature on retient 5&#964; car le condensateur sera à 99% de la valeur de la tension qu'on lui applique.

    Pourquoi 5&#964; ? La forme exponentielle a la particularité de ne jamais atteindre 100%, même à 100&#964; on sera à quelque chose comme 99.98% alors pour les calculs il faut se contenter d'une approximation et 5&#964; en est une très bonne. C'est un peu comme en informatique avec un calcul faisant intervenir &#960;, on est obligé de le tronquer car le nombre de chiffre après la virgule est infinie. Pour le condensateur c'est pareil, arrivé à 5&#964; on arrêtera de faire des calculs infinitésimaux, on dira que c'est bon il est chargé.

    Je vois que tu fais un lien entre &#964; et les seuils de détection d'un microcontrôleur, tu as raison mais c'est parce qu'on est dans cas de figure bien précis. Si nous étions dans un autre cas de figure, par exemple une charge lente d'un condensateur jusqu'à ce qu'il fasse d'un coup basculer un transistor à effet de champs, le seuil pourrait être à 10V par exemple.

    5&#964; c'est juste un point de repère a avoir en tête.

    Citation Envoyé par Artemus24 Voir le message
    On va dire que OUI, mais maintenant, il faut que je digère tout ça.


    Ce n'est pas que je veuille distiller les informations mais il est impossible d'expliquer clairement en quelques messages, 7 à 5 ans de cours d'électronique. J'essaye de trouver des étapes clés qui permettent d'avancer par des "marches" plus grandes et sans qu'elles ne soient insurmontable pour autant. C'est pas facile en réalité

    Citation Envoyé par Artemus24 Voir le message
    Prenons le cas du pull-up (le BP est en bas du graphique).

    Au démarrage, le jus passe dans le câble, et de ce fait, le signal lu par la GPIO est à 1.
    Le condensateur se charge bien et joue le rôle d'un interrupteur ouvert. Cette question est primordiale. Est-ce vrai ou pas ?
    Pourquoi dis-je que son comportement est similaire à un interrupteur ?
    Parce que le signal lu par la GPIO est à 1 quand le condensateur se charge.
    Si j'ai bien compris, oui c'est ça. En 1 tu mets sous tension, en 2 le condensateur se charge au travers des résistances et le GPIO passe à 1. Et oui une fois le condensateur chargé à 5V, il n'y a plus de courant qui passe dedans et un composant traversé par aucun courant est un interrupteur ouvert (qui n'influence aucunement le montage)



    Citation Envoyé par Artemus24 Voir le message
    Ce qui me fait dire, depuis le début de cette Q-5) que le condensateur en décharge est un interrupteur fermé.
    Cela se résume au sens pris par le condensateur entre sa phase de chargement et sa phase de déchargement.
    Oui on peut le voir comme ça.
    Un condensateur déchargé est un interrupteur fermé (un court circuit) et un condensateur pleinement chargé est un interrupteur ouvert. On le voit au travers de l'équation du courant. i = C * (&#916;V / &#916;t). Si je prends, un condensateur de 100nF et une tension de 5V aux bornes d'un condensateur déjà chargé à 5V, le &#916;V est de 5V - 5V = 0V alors peu importe sur quel &#916;t je mesure l'équation final sera i = 100nF * 0 = 0 Ampère. Un condensateur chargé est un interrupteur ouvert, il ne consomme rien. A l'inverse si je prends une tension de 5V aux bornes d'un condensateur déchargé 0V, le &#916;V est de 5V - 0V = 5V alors si je prends un &#916;t de 1us i = 100nF * (5/0.000001) = 5 Ampère = un bon courtjus (un fil ou un interrupteur fermé)

    Citation Envoyé par Artemus24 Voir le message
    Mais quand est-il de mon pull-down ou si tu veux de celui de "allaboutcircuits".
    Nous sommes d'accord qu'après le démarrage, le fonctionnement est conforme à ce que l'on attend de lui.

    Le problème est au démarrage jusqu'à ce que le condensateur soit pleinement chargé.

    a) Pas de jus, le BP est relâché, le condensateur est vide.

    b) on met le jus, le BP est toujours relâché et le condensateur se charge.
    (je parle bien sûr de la photo du poste #60, partie gauche).
    Oui, mais voilà. Laisse-t-il passer du jus vers la GPIO ?
    Oui après le démarrage (équivalent à une montage dérivateur) ensuite il se comporte comme un intégrateur donc conforme à ce qu'on attendait.

    Au démarrage le jus arrive sur un condensateur initialement déchargé. i = C * (&#916;V / &#916;t), &#916;V est grand puisqu'il sera de 5V - 0V = 5V et donc pendant un court instant le condensateur est vu comme un court-circuit (ralenti par la résistance) mais le GPIO va voir un 1 au démarrage, suivie d'une décharge lente jusque 0V sans avoir appuyer sur l'interrupteur.

    Citation Envoyé par Artemus24 Voir le message
    Comment expliquer si la broche positive du condensateur se trouve vers le haut (coté VCC) et si le BP est relâché, nous ayons un signal à 1 vers la GPIO ?
    Ce 1 dure un cours instant, et seulement au démarrage de l'alimentation ensuite il retombe à 0. Dans ma simulation j'ai lancé l"appuie du bouton 2ms après la mise sous tension donc le 1 n'a pas eu le temps d'aller jusque 0. Dans bien dès cas il est rare d'appuyer sur des boutons 2ms après l'allumage, on serait plutôt dans les secondes après le démarrage.

    Citation Envoyé par Artemus24 Voir le message
    e) le condensateur joue-t-il réellement le rôle d'un interrupteur ?
    Je pense que non.
    Non pas vraiment. Même si pour l'analyse d'un circuit on peut dire que quand un condensateur est complètement chargé et que la tension a ses bornes ne bouge plus d'un poils alors il est comme un interrupteur ouvert, il n'influence plus l'électronique. On peut dire aussi qu'un condensateur complètement déchargé se comporte comme un interrupteur fermé à la mise sous tension

    Citation Envoyé par Artemus24 Voir le message
    f) l'anomalie au démarrage du pull-down est aussi présente dans le pull-up, sauf que cela ne se remarque pas.
    Oui mais sur le pull-up c'est volontaire. Au démarrage, ça charge. Avec le pull-down de AllAboutCircuit au démarrage on a une impulsion à 1, le soucis c'est que le micro peut éventuellement croire qu'on a appuyer sur le bouton juste après le démarrage alors que ce n'est pas du tout ce qu'on a fait.

    Citation Envoyé par Artemus24 Voir le message
    g) dans le cas du pull-up, le signal doit être à 1 dès le démarrage.
    Et le chargement du condensateur produit aussi un 1 vers la GPIO.
    Nous sommes en phase et cela ne pose aucun problème.

    h) dans le cas du pull-down, le signal doit être à 0 dès le démarrage.
    Et le chargement du condensateur produit aussi un 1 vers le GPIO.
    De ce fait, 0 et 1 produit un 1 vers le GPIO, ce qui n'est pas bon.
    Nous sommes en opposition de phase.
    Non, non, rappelle toi les dessins : Pull-up est à 1 au démarrage et si on appuie sur le bouton on envoie un 0 au GPIO. Le pull-down au démarrage on est à 0 (sauf si on mis le condensateur comme dans le circuit de allaboutcircuit) et si on appuie sur le bouton on envoie un 1 au GPIO. Le comportement est le même si on n'avait pas eu de condensateur.





    Citation Envoyé par Artemus24 Voir le message
    i) dans les deux schémas, il manque quelque chose pour faire cette distinction de phase et d'opposition de phase.
    Quand mettre en évidence dans un schéma, le sens du jus dans le chargement qui n'est pas le même sens du jus dans le déchargement.
    Autrement dit, mettre en évidence deux chemins différents.
    Peut-être introduire une diode ?
    Oui la diode est le composant qui laisse passer le courant dans un sens mais pas dans l'autre. On considère R1 et R2. Dans le sens de la charge, la diode va courtcircuiter R2 afin que le condensateur se charge via R1 seulement. A la décharge le condensateur va se décharger via R2. Comme R1 et R2 on la même valeur, la constante de temps est la même (le condo se chargera et se déchargera à la même vitesse). Sans la diode, le condensateur se chargerait au travers de R1 + R2 et se déchargerait que par R2. Les temps de charge et décharge seraient différents.

    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #63
    Expert éminent sénior
    Salut Vincent Petit.

    Citation Envoyé par Vincent Petit
    Oui, et à dire vrai c'est le tout qui fait la gestion des rebonds, charge et décharge.
    Je parlais uniquement de la pression du BP.

    On peut généraliser l'anti-rebond sur les deux phases, lors de la pression et lors du relâchement du BP.

    Citation Envoyé par Vincent Petit
    il faut faire les calculs ou une simulation car l'impact est grand.
    Justement, je cherche les valeurs types pour une bonne gestion des rebonds d'un BP.
    J'ai des résistances à 300 ohms, 1k ohms et 10k ohms, ainsi que des condensateurs à 100nF.
    Que dois-je me procurer pour gérer des BP sur une raspberry, sachant que c'est du 3.3Vcc ?

    Il y a la constante de temps T. J'ignore quelle valeur pourrait me convenir.
    Tu m'avais parlé de 10ms. Est-ce correcte comme estimation ?

    Citation Envoyé par Vincent Petit
    Dans la littérature on retient 5t car le condensateur sera à 99% de la valeur de la tension qu'on lui applique.
    Juste ça ? D'après ta réponse cela semble être une convention.
    Dois-je comprendre qua ma période doit être au minimum de 5T pour être efficace ?

    Citation Envoyé par Vincent Petit
    La forme exponentielle a la particularité de ne jamais atteindre 100%
    En mathématique, on parle d'une courbe asymptotique, qui tend sans jamais l'atteindre, sauf à l'infini.

    Citation Envoyé par Vincent Petit
    C'est pas facile en réalité
    J'ai compris que c'est un sujet difficile, bien que certains semblent croirent le contraire.

    Citation Envoyé par Vincent Petit
    Si j'ai bien compris, oui c'est ça.
    Je tiens à préciser que le condensateur et la résistance de protection n'interviennent pas dans la formation du signal à 1 que reçoit le GPIO, dans le cas du pull-up.
    En effet, le jus passe par la résistance R1 et aussi R2 et c'est tout.
    Le BP est relâché et le condensateur se charge.
    Sauf que dans le schéma du pull-down, j'ignore comment le condensateur se comporte.
    Il n'intervient pas dans la phase de démarrage.
    Est-ce bien cela ?

    Citation Envoyé par Vincent Petit
    Et oui une fois le condensateur chargé à 5V, il n'y a plus de courant qui passe dedans et un composant traversé par aucun courant est un interrupteur ouvert (qui n'influence aucunement le montage)
    Un condensateur chargé ne laisse passer aucun courant. D'accord.
    Mais en cours de chargement, le composant est traversé par le courant.
    D'où tes explications sur le fait d'avoir un signal à 1, au démarrage, sur l pull-down, alors que l'on s'attent à un signal à 0.

    Citation Envoyé par Vincent Petit
    pendant un court instant le condensateur est vu comme un court-circuit (ralenti par la résistance) mais le GPIO va voir un 1 au démarrage, suivie d'une décharge lente jusque 0V sans avoir appuyer sur l'interrupteur.
    D'accord, je comprends que dans sa phase de chargement, même brève, le condensateur laisse passer un jus qui va se diriger vers la GPIO, d'où ce signal à 1 alors que l'on attend un 0.
    (je précise que je parle bien de mon pull-down, celui aussi de allaboutcircuits).

    Je comprends mal, comment un condensateur qui se charge, peut laisser passer un courant vers la GPIO.
    Donc en phase de chargement, le condensateur est un interrupteur fermé, qui s'ouvre petit à petit, jusqu'à la pleine charge où il se comporte alors comme un interrupteur totalement ouvert.

    Citation Envoyé par Vincent Petit
    Non, non, rappelle toi les dessins
    Quand je parle du pull-up ou du pull-down surtout dans mon poste #61, je parle avec condensateur et résistance de protection du BP.
    Petite précision, je parle toujours de mon pull-down, qui est aussi celui de allaboutcircuits.

    Citation Envoyé par Vincent Petit
    Oui la diode est le composant qui laisse passer le courant dans un sens mais pas dans l'autre.
    Nous sommes dans le cas du pull-up, avec le trigger de Schmitt, je crois.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #64
    Expert éminent sénior
    Salut Vincent Petit.

    Je tiens à nouveau à préciser que je parle bien de pull-up et pull-down avec condensateur et résistance de protection du BP.
    Dans le cas contraire, je parle du pull-up ou pull-down classique, c'est-à-dire sans condensateur.

    En résumé, ce sont ces deux schémas que je dois retenir comme étant conforme à la gestion de l'anti-rebond d'un BP :



    Dans ton poste #53 tu me communiques ceci :

    Citation Envoyé par Vincent Petit
    Dans le schéma ci dessous, D1 court-circuite R2 lors de la charge. Sans la diode la capa se chargerait au travers de R1 + R2 hors, et grâce à la diode, la capa ne se chargera qu'au travers de R1. La décharge, quant à elle, ne se fera qu'au travers de R2 vers la masse.


    Il concerne le pull-up, mais il n'y a pas de BP. Il permet de gérer les deux résistances R1 et R2 séparément.

    Dans le poste #62, tu dis :

    Citation Envoyé par Vincent Petit
    Oui la diode est le composant qui laisse passer le courant dans un sens mais pas dans l'autre. On considère R1 et R2. Dans le sens de la charge, la diode va court-circuiter R2 afin que le condensateur se charge via R1 seulement. A la décharge le condensateur va se décharger via R2. Comme R1 et R2 on la même valeur, la constante de temps est la même (le condo se chargera et se déchargera à la même vitesse). Sans la diode, le condensateur se chargerait au travers de R1 + R2 et se déchargerait que par R2. Les temps de charge et décharge seraient différents.
    Et cette fois-ci tu donnes ce schéma avec le BP :



    Il est inutile de mettre le trigger de schmitt, le signal sera inversé (HIGH = 0 et LOW = 1).
    Sauf que si je désire un signal normal (HIGH = 1 et LOW = 0), je prendrais le pull-down (le tiens, celui du premier schéma ci-dessus).

    En ce qui me concerne, je mettrai à la place du trigger de schmitt, la résistance R3 de protection de la GPIO.

    J'ai du mal à raisonner comme un électronicien.

    Je suis arrivé à accéder à "https://www.digikey.com/schemeit/project/".
    Je ne sais pas pourquoi, il restait bloqué au chargement de la page.

    Coté expérimentation, mes tests ne fonctionnent pas bien.
    Je pars du pull-down, le classique sans le condensateur.
    J'ai mis une résistance pull-down de 10k ohms et une résistance de protection du GPIO, aussi de 10k ohms.
    Dans le cas de mon petit projet "des leds et des interrupteurs", ce montage fonctionne parfaitement.
    J'ai géré les rebonds au niveau logiciel. Quand j'appuie sur le BP, je n'ai aucun rebond de détecté dans le programme 'C'.

    J'ai créé un programme de test pour visualiser les rebonds du BP.
    J'utilise la bibliothèque "linux/gpio.h" afin de gérer les interruptions en rising et falling.
    Avec le pull-down, le classique sans le condensateur, j'ai bien une multitude de rebond.
    J'ai placé mon condensateur aux bornes du BP. J'ai encore des rebonds mais beaucoup moins.
    En plaçant la résistance de protection du BP, j'ai la même chose.
    J'ai utilisé du 300 ohms, du 1k ohms et du 10k ohms.

    Mon but est d'atteindre aucun rebond et je ne sais pas si je peux le faire.
    A moins que cela vienne du calibrage de mes résistances et du condensateur.
    Que sont les valeurs qui conviennent aux résistances et au condensateur pour obtenir aucun rebond ?

    Comme dit plus haut, dans le pull-down classique, j'ai utilisé une résistance de 10k ohms.
    Et j'ai mis une résistance de protection de la GPIO aussi en 10K ohms.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #65
    Modérateur

    Salut,
    Concernant l'image ci dessous :



    Elle n'est pas de moi et j'avais pensé, à tord, que les indications sous le dessin (que j'ai entouré) étaient clairs mais avec du recul je vois que ce n'est pas forcément le cas surtout quand on est entrain d'étudier un montage électronique. Pour un montage pull-down il faut faire une rotation de 180° à la diode. Cette diode n'a de sens que si la résistance de protection de l'interrupteur à la même valeur que celle de pull-down ou up.

    Pour la porte logique trigger de schmitt elle contribuera grandement au problème de marche d'escalier (temps de charge diffrent du temps de décharge) car ce type de porte logique a des seuils de changement d'état différent. Il y a aussi d'autres manières de réaliser un anti-rebonds hardware plus ou moins complexes (bascule D, bascule RS) qui sont des Latch (verrou de l'état logique même si il y a des rebonds). Ce sont des solutions supers efficaces et indépendantes des rebonds de l'interrupteur.

    A la lumière de tout ce qu'on a écrit depuis le début, la lecture de ceci devrait être plus parlant (j'ai presque envie de dire que de simplement regarder les schémas + graphiques, suffit)

    https://www.eejournal.com/article/ul...bounce-part-3/
    https://www.eejournal.com/article/ul...bounce-part-4/
    https://www.eejournal.com/article/ul...bounce-part-5/


    Citation Envoyé par Artemus24
    Je suis arrivé à accéder à "https://www.digikey.com/schemeit/project/".
    Je ne sais pas pourquoi, il restait bloqué au chargement de la page.
    C'est étrange, sous Chromium ou FireFox je n'ai pas de soucis et je n'ai pas souvenir d'avoir du installer un plugin ou autres choses du genre.


    Citation Envoyé par Artemus24
    J'ai mis une résistance pull-down de 10k ohms et une résistance de protection du GPIO, aussi de 10k ohms.
    Dans le cas de mon petit projet "des leds et des interrupteurs", ce montage fonctionne parfaitement.
    J'ai géré les rebonds au niveau logiciel. Quand j'appuie sur le BP, je n'ai aucun rebond de détecté dans le programme 'C'.
    D'accord, et le condensateur est un 100nF je crois ?
    Ça veut dire que la constante de charge est de 10k * 100nF (&#964; = 1ms) mais la constante de décharge est de (10k + 10k) * 100nF (&#964; = 2ms)

    Selon cette source : http://www.ganssle.com/debouncing.htm les rebonds sont typiquement autour de 1.6ms avec quelques maximum autour de 6.2ms. Je ne connaissais pas, personnellement j'ai toujours pris des constantes de temps entre 10ms et 20ms.

    Voici une simulation de ton montage : Je vois un problème immédiat, ça ne charge pas assez vite. La marche d'escalier est du au fait que d'un côté un charge via R2 * C1 et de l'autre on décharge via (R1 + R2) * C1. On pouvait mettre une diode mais ça n'aurait pas résolut le problème de charge pas assez rapide.



    Essayons avec R2 = 100 Ohms pour accélérer la charge. C'est déjà mieux, la charge est expéditive &#964; = 100 Ohms * 100nF = 10µs. Comme nous considérons le condensateur est chargé à 5&#964;, soit 50µs, on sait qu'il est chargé rapidement. Il reste un problème, c'est la décharge qu'il faudrait ralentir encore plus.


    On va essayer avec R1 = 100k pour voir, C1 va se décharger au travers de la 100 Ohms + 100k. Cela donne (100k + 100) * 100nF = 10ms. Comme nous considérons le condensateur est chargé à 5&#964;, on sait qu'il est déchargé à 50ms (qui est très grand par rapport à la durée moyenne d'un rebond qui est de 1.6ms).

    Le montage semble ok ! Il faudrait vérifier les seuils de détection du Raspberry et plus particulièrement le seuil minimum d'un High pour voir si il ne faut pas encore augmenter R1.





    Je lève ici une ambiguïté, qui ne remet rien en cause mais qui a du te tordre les neurones. Je l'explique maintenant car si je l'avais fait avant :
    - Je n'aurai jamais réussi à te montrer que le montage pouvait être découpé en bloc
    - J'aurai été obligé de te répondre des "oui et non" dans plusieurs de tes questions.

    A l'école quand on étudie le montage RC on comprend que plus le couple Rcharge *C est grand et plus le condensateur charge doucement. C se charge au travers de R. Inversement si C trouve une résistance (en parallèle même si parfois il faut redessiner le montage pour s'en apercevoir) pour se décharger dans le 0V alors plus le couple Rdécharge*C est grand et plus le condensateur décharge doucement.

    En partant de ça, j'ai essayé d'expliquer qu'il fallait analyser un montage électronique en bloc fonctionnel, et c'est bien comme ça qu'il faut faire. J'avais dit que parfois il arrivait qu'un composant soit dans deux blocs à la fois ce qui, quand on débute, rend les choses un peu plus difficile à voir. Dans le montage anti-rebond pull-up, plus simple à comprendre, la résistance de charge c'est principalement la résistance de pull-up si on regarde bien. Le montage est certainement plus simple a comprendre dans le principe mais il est bien plus compliqué de le séparer en bloc fonctionnel pour faire des calculs car le moindre changement de la résistance de pull-up va influencer la charge du condensateur. Dans le montage pulldown, c'est celle qui contrôle la décharge.

    Ce qui est compliqué c'est d'arriver à expliquer le comportement du circuit RC (en charge et en décharge) tout seul alors quand dans le circuit complet R se trouve être le pulldown ou up de l'interrupteur. Ce lien n'est pas évident a expliquer dans les tous premiers messages d'explications.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  6. #66
    Expert éminent sénior
    Salut Vincent Petit.

    Il n'est évident de s'exprimer correctement sur un sujet que je ne maitrise pas
    D'autant que il y a parfois des quiproquo. Ce n'est pas bien grave. L'important est d'avancer.

    J'ai deux programmes qui sont totalement différents dans la gestion du BP.

    I) mon petit projet qui consiste à faire un chenillard.
    Sur une breadboard, il y a des leds et deux BP.
    J'ai utilisé le PULL-DOWN classique, sans condensateur et sans résistance de protection du BP.
    Comme je l'ai dit, ce projet fonctionne correctement et je n'ai aucun problème avec les rebonds.3

    Comment j'ai procédé ? Par la gestion des rebonds coté logiciel.
    Ce n'est pas aussi simple que l'on veut croire, mais la grande inconnue reste la lecture du signal.
    Tout ce que nous savons, se résume à un 1 ou un 0.
    On va admettre que la lecture du signal s'effectue au moment où on souhaite le faire.
    Cela peut se passer à n'importe quel moment et obtenir :
    --> un creux entre deux rebonds
    --> une bosse aussi entre deux rebonds
    --> un véritable signal haut
    --> un véritable signal bas.

    La lecture s'apparente à un échantillonage sans se préoccuper de ce qui s'est pas passé avant.
    Il y a même pire, nous ne savons rien de l'aspect du signal électronique.
    Est-il lissé ou pas ? Y-a-t-il des rebonds à gérer ou pas ?

    Pour résoudre ce problème, je pars des hypothèses suivantes :

    a) quand le bouton est en position relâché, je considère que le signal est stable.
    Aucune intervention humaine. Le signal est un 0.

    b) quand le bouton est en position enfoncé, je considère que le signal est instable.
    Une intervention humain est en cours d'exécution. Le signal est un 1.
    Je ne sais pas trop s'il s'agit d'un rebond où si l'action d'enfoncé le BP est terminé.

    Pour résoudre ce problème, j'introduis la notion d'état du BP.
    Il y a l'état précédent et l'état courant.
    De ce fait, je me retrouve avec quatre cas à gérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    +-----+------+------+
    | Cas | Prec | Cour |
    +-----+------+------+
    |  1  |   0  |   0  |
    |  2  |   0  |   1  |
    |  3  |   1  |   0  |
    |  4  |   1  |   1  |
    +-----+------+------+
    On peut éliminer les cas 1 et 4 car les deux états sont identiques.
    Reste le cas 2) que je nomme le frond ascendant et le cas 3) le frond descendant.
    Pour ma part, je considère que j'enfonce le BP, et c'est le cas 2) qui m'intéresse.

    c) Pour déterminer s'il y a eu manipulation du BP, je suis obligé de répéter cette lecture.
    Cela se fait périodiquement à l'aide d'un timer afin de ne pas bloquer inutilement la CPU, comme avec la fonction "SLEEP()".
    Qui dit TIMER dit périodicité. La largeur de cette périodicité doit être évalué afin d'être significative.
    Elle correspond à la durée moyenne de l'enfoncement et du relâchement du BP par un être humain.

    De plus, je n'ai pas nécessairement les quatre cas qui se répète périodiquement.
    Comme dit précédemment, je m'intéresse uniquement au cas 2).

    d) Le dernier point est de considérer l'action qui s’enchaîne lors de la pression du BP comme non interruptible. Cela se traduit par un mutex.
    Comme je fais clignoter des leds, ceux-ci sont aussi gérés par un TIMER.

    Pour terminer, la durée de la périodicité de la gestion du BP est de 80ms.
    La durée du traitement du BP est de moins de 1ms : je lis et je compare et je stocke le résultat, rien de plus.

    II) le second programme qui me sert de test pour l'anti-rebond est différent.
    Sur une breadboard, il y a un pull-down avec condensateur et résistance de protection du BP et bien sûr un BP.
    La résistance du pull-down et de la protection du BP sont de 10k ohms. Le condensateur est un 100nF.

    Le programme est basé sur la bibliothèque "linux/gpio.h".
    La lecture du BP se déclenche sur un événement, c'est-à-dire par une interruption.
    Les lectures sont dans une boucle générale.
    Tant qu'il ne se passe rien, la lecture se met en attente.
    Sur un événement, je détecte soit un rising soit un falling.
    J'affiche le résultat ainsi que le timestamp au millionième de seconde.
    Ce programme, à l'inverse du premier, n'a pas pour fonction de gérer les rebonds mais tout au contraire de les détecter.

    J'ai fait différents montages, mais j'ai toujours des rebonds. En fait, avec condensateur et résistance de protection, beaucoup moins.
    Ce n'est pas anormal car je n'ai pas le bon condensateur ni les bonnes résistances et il me manque aussi la diode.

    En lisant les liens, je découvre que le choix retenu pour tau est de 20ms. Pourquoi pas.
    Il est dit aussi que le temps de pression et de relâchement du BP tourne autour des 100ms.
    On peut se poser la question de la manipulation du BP. Est-ce que la pression est brève ou bien il est maintenu avant d'être relâché ?
    Après la lecture de la partie 4, j'ai totalement décroché.

    Citation Envoyé par Vincent Petit
    D'accord, et le condensateur est un 100nF je crois ?
    Résistance pull-down : 10k ohms
    Condensateur : 100nF
    Résistance de protection du BP: 300 ohms, puis 1k ohms et enfin 10k ohms.
    Résistance de protection du GPIO : 10k ohms.

    Citation Envoyé par Vincent Petit
    Selon cette source : http://www.ganssle.com/debouncing.htm les rebonds sont typiquement autour de 1.6ms avec quelques maximum autour de 6.2ms. Je ne connaissais pas, personnellement j'ai toujours pris des constantes de temps entre 10ms et 20ms.
    C'est ce que j'ai découvert en lisant la partie 4 de tes trois liens ci-dessus.

    Je sais que la raspberry utilise des résistances de pull-up/pull-down de 50k ohms sur du 3.3Vcc.
    Si l'on veut atteindre disons 10ms, il faut partir sur une résistance pull-down de 100k ohms, ou bien augmenter la valeur du condensateur.

    Citation Envoyé par Vincent Petit
    Ce lien n'est pas évident a expliquer dans les tous premiers messages d'explications.
    J'ai compris qu'il faut dans un premier temps, choisir pull-up ou pull-down. Ensuite, introduire le circuit RC.
    Evaluer tau pour ce que l'on cherche à faire. Puis jouer sur la valeur des résistances pour au final avoir quelque chose de stable.
    Je pense que sans oscilloscope, surtout pour un débutant, ce n'est pas évident comme paramétrage.
    pour ma part, je suis parti sur un pull-down, ce qui peut-être contestable.
    Ensuite, j'ai pris comme valeur de la résistance pull-down 10k ohms.
    Maintenant, là où ça bloque, c'est de trouver le bon couple résistance et condensateur du circuit RC.
    En fait, c'est plus pour mon futur achat.

    Le montage que je vais retenir est bien anti-rebond pull-down avec diode.
    Comme je ne suis pas sûr de moi, à quoi ressemble ce anti-rebond pull-down avec diode ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #67
    Modérateur

    Salut,
    Tu viens de parler de résistance de pull-up/down dans le Raspberry.

    - Si tu actives la pulldown du RPI et qu'elle fait 50k alors il faudra, retirer celle de la breadboard et probablement augmenter le condensateur à 220nF (valeur normalisée) ou alors tu mets deux 100nF en parallèles pour en faire un de 200nF. Avec une 50k en pulldown et un condo de 220nF ça fait un &#964; de ~ 10ms

    - Là où il faut faire attention c'est qu'il n'y ait pas une pull-up d'activer, par exemple sur le hardware dont tu n'aurais pas la main de dessus. Sinon la pulldown sur la breadboard va former un pont diviseur avec la pullup (pas dangereux électriquement parlant mais l'anti-rebond ne fonctionnera jamais)


    J'ai un peu de mal à visualiser ton anti-rebond, tu saurais me faire un schéma, même à la main ?


    Concernant la diode :
    R1 peut être la résistance de pulldown interne du RPI pourquoi pas. R2 est la résistance de protection pour l'interrupteur (j'ai fait un énorme zoom à droite pour montrer que grâce à R2 la charge, qu'on croit être hyper rapide sur le graphique de gauche, est en réalité exponentielle et stressera moins l'interrupteur). C1 est le condensateur intégrateur. R3 est une résistance de protection du GPIO mais elle est ici optionnelle, souvent on en met une lorsqu'on a un doute avec le câblage de l'opérateur, par exemple si il connecte deux sorties entres elles, mais dans le cas présent je ne vois pas qu'est ce qui pourrait bien arriver comme problème !? R4 n'est là que pour la simulation, elle représente la résistance d'entrée d'une porte logique ou d'un microcontrôleur. La diode D4 permet de court-circuiter R2 pendant la décharge cependant, comme j'avais dit plus haut, cette diode n'a de sens que lorsqu'on veut un temps de charge = temps de décharge ce qui n'est pas le cas ici. Ici nous voulons une charge rapide et une décharge lente. Bien au contraire, sans être court-circuité R2 aurait contribué à ralentir un peu plus la décharge car elle se serait ajouté à R1. Toute fois, l'avantage de quand même mettre cette diode c'est d'avoir des calculs plus simples.

    &#964;charge = R2 * C1 (rapide si R2 est petite)
    &#964;décharge = R1 * C1 (lent si R1 est grande)



    Maintenant si on regarde le tableau ci dessous, on voit qu'un High - voir la ligne VIH pour une alimentation de 3.3V - c'est une tension au dessus de 1.6V et la simulation montre que la tension reste toujours au dessus de 2.4V.

    ps : avec R1 = 10k Ohms, R2 = 330 Ohms ça ne fonctionne pas. La tension de décharge chute trop bas.




    Citation Envoyé par Artemus24
    Je pense que sans oscilloscope, surtout pour un débutant, ce n'est pas évident comme paramétrage.
    En effet, l'oscilloscope pour l'électronicien c'est un peu le débugeur pour l'informaticien. Sans lui, il arrive un moment où ça se complique puis ça devient simplement impossible de mettre au point.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #68
    Expert éminent sénior
    Salut Vincent Petit.

    Merci pour ton aide, mais je constate que j'ai de grosses lacunes en électronique.
    Il y a des notions de bases que je n'arrive toujours pas à comprendre.
    J'ai beau essayer de comprendre tes schémas sur le pull-down anti-rebond et le pull-up anti-rebond, cela me parait toujours incomprehensible.

    Je vais faire une pose sur la question :
    Citation Envoyé par Artemus24
    Q-5) Dans un pull-up ou un pull-down, quand j'utilise un bouton poussoir, où placer le condensateur ?
    qui s'est transformé dans la gestion des rebonds d'un BP.
    Je reviendrais un peu plus tard quand j'aurai compris ce que je n'arrive pas à comprendre.

    Q-6) notions de bases.

    Deux choses que je ne comprends toujours pas :

    Q-6-a) la notion du sens du courant.
    Il y a deux notions, à savoir :
    --> la notion conventionnelle du sens du courant continue qui va du pôle positif vers le pôle négatif.
    --> et celle du sens des électrons qui va du pôle négatif vers le pôle positif.

    Celle qui m’intéresse est la première que j'interprète ainsi :
    --> la borne VCC est émettrice du courant
    --> la borne GND est réceptrice du courant.
    A priori, elle semble juste en apparence.
    J'ajouterai de part la notation 3.3Vcc et 0Vcc, que c'est du type tout ou rien.
    Je veux dire par là que j'ai soit tout à 3,3Vcc ou bien rien à 3,3Vcc qui st en réalité 0Vcc.
    C'est une autre façon d'interpréter le sens conventionnel du courant.
    On va dire pour l'instant que je comprends !

    Mais là où ça se complique, c'est le résultat de la lecture de la GPIO.
    Le GPIO en en entrée, c'est-à-dire que l'on va faire une lecture.
    Je peux lire soit un 1 soit un 0 . Oui mais voilà, comment doit-je interpréter ce 1 et ce 0 ?

    Ce GPIO me fait penser qu'il y a un sens du courant puisque celui-ci est déclaré soit en entrée (input) soit en sortie (output).
    Or si la GPIO est en lecture, cela signifie que le sens du courant est entrante dans la GPIO.

    Cela semble assez logique quand il s'agit de relier la GPIO à la borne VCC.
    Pourquoi ? Parce que la borne VCC est émettrice du courant.

    Oui, mais voilà, ce n'est plus du tout logique si je relie la GPIO à la borne GND.
    Pourquoi ? Si la GPIO est en entrée, cela signifie que la GND est aussi émettrice.
    Or ce n'est pas le cas, elle est réceptrice du VCC, ce qui signifie alors que le sens du courant va de la GPIO vers la borne GND.
    D'où un contradiction !

    Soit deux choses l'une, cette notion de courant est complètement fausse ou bien je ne comprends pas la notion d'entree ou de lecture de la GPIO.

    Q-6-b) la notion de seuil déterminant ce qui est un 1 ou un 0 dans la lecture de la GPIO.
    Dans un montage, j'utilise du 3.3Vcc. Pour moi, c'est une notion invariable.
    Si j'applique la formule U = R * I, U = 3.3Vcc ne bouge jamais.
    Si j'applique à R : 1k ohms, ce qui va varier, c'est bien l'intensité (les ampères), qui dans ce calcul va donner I = 3.3mA.

    Or d'après ton poste #67, quand je lis les seuils de la raspberry, je retiens surtout :
    --> VIL pour 3.3Vcc, le maximum est de 0,9V.
    --> VIH pour 3.3Vcc, le minimum est de 1,6V.

    Je comprends alors que la notion du signal à 0 se traduit par un tension entre 0V et 0,9V.
    Tandis que la notion du signal à 1 se traduit par une tension entre 1,6V et 3.3V.

    Je veux bien, mais cela est en contradiction avec :
    --> ma première question Q-6-a) qui est le sens du courant.
    --> la formule U=R*I dont l'invariant est la tension.

    Je suis désolé de revenir sur ces notions, mais ce n'est pas du tout logique.
    Je pourrai peut-être comprendre si la tension est en fait une notion de seuil.
    Sauf que dans la raspberry, en entrée, j'ai du 3,3Vcc et du 3A.
    Si je place une résistance de 1k ohms, et que c'est le courant qui est l'invariant, alors c'est la tension qui est modifié.
    Sauf que dans ce cas, la tension serait de : 1000 * 3 = 3000Vcc.

    Q-6-c) je ne comprends pas la notion de court-circuit.
    Je reprends pour mes explications, le pull-up classique qui comprend :
    --> Vcc
    --> GND
    --> résistance pull-up (en haut du schéma)
    --> BP (en bas du schéma)
    --> GPIO en entrée.

    Voici le schéma :



    Il y a un coupe-circuit qui est représenté par le BP.
    Je constate qu'il y a deux chemins dans ce montage :
    --> (C-1) le VCC puis la résistance pull-up, et enfin l'entrée de la GPIO.
    --> (C-2) Le VCC, la résistance pull-up, le BP, le GND.

    Quand ce BP n'est pas enfoncé, la GPIO lit un 1, par l'intermédiaire du chemin (C-1).

    Maintenant, si j'appuie sur le BP, il y a un court-circuit (j'espère que c'est le bon terme).
    Le courant passe par le chemin (C-2). Oui, mais le chemin (C-1) n'a pas disparu pour autant.

    Faisons abstraction de ce qui est commun aux deux chemins, à savoir VCC et la résistance pull-up.
    A partir du point de bifurcation, nous avons soit la GPIO, soit le BP puis le GND.

    Pourquoi la lecture du GPIO donne un 0 quand il y a un court-circuit ?
    Dois-je comprendre que le courant s'écoule encore vers la GPIO ?
    Dois-je aussi comprendre que la GPIO offre une plus grand résistance ?

    Avec la notion de seuil, je comprends que la GPIO lit une tension < 0,9V.
    Cela revient à dire qu'il est arbitraire de dire que la tension est de 3.3Vcc puisque le court-circuit ne fournit plus du 3.3Vcc à la GPIO.

    Q-6-d) comment dois-je interpréter le sens du courant ?
    Que ce soit par le diode ou par la led, je ne peux pas inverser les branchements sinon ça ne fonctionne plus.
    Il y a bien un sens du courant.

    Q-6-e) et la tension ?

    Si la GPIO est bien en entrée, il faut bien faire la distinction entre ce 1 et ce 0.
    Cela revient à dire qu'il existe une notion de seuil.
    Sauf que j'ai cru que la résistance modifie les ampères et non le voltage.

    Q-6-f) je prends conscience que jusqu'à présent, j'ai confondu GND et le signal à 0. J'allai dire 0Vcc mais cela serait trompeur.
    Le signal est à 0 car le courant circule mais avec un seuil minimal.
    Pour la raspberry, c'est entre 0Vcc et 0.9Vcc.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #69
    Modérateur

    Citation Envoyé par Artemus24 Voir le message
    Je vais faire une pose sur la question
    Tu as raison, il faut parfois laisser du temps aux concepts pour se consolider et devenir plus. C'est tout à fait normal que ça ne soit pas clair immédiatement surtout quand on est pas du métier et en plus, au travers d'explications sur un forum. J'en fais souvent moi même l'expérience sur des sujets compliqués, et parfois je suis obligé de faire un détour par une autre science pour comprendre, car elles sont toutes liées. Les interférences en radio sont plus simples à comprendre par la voie des interférences lumineuses en optique, les oscillateurs en électroniques ont un lien fort avec l'oscillateur harmonique qu'on étudie en mécanique etc... comme il est plus aisé d'aborder la physique quantique par la chimie plutôt que directement par la voie mathématique.

    Je vais donc répondre rapidement et laisse toi du temps aussi pour lire d'autres sources, qui seront peut être plus clairs que ce que j'ai écrit.

    Citation Envoyé par Artemus24 Voir le message
    Q-6-a) la notion du sens du courant.
    En effet, pour l'électronique on ne prend que le sens conventionnel ; qui sort du + et retourne vers le - par tous les chemins qu'il va trouver. Si il y a cinq retour possible, le courant sortant du + va se diviser en 5 (pas forcément en part égale, ça va dépendre si il y a des résistances dans le parcours) pour retourner au -.

    Mais la question que tu te poses obliges à aller regarder à la loupe ce qu'il y a dans une entrée logique pour comprendre ce qu'est le courant de "fuite" à l'état haut (courant entrant IIH) et à l'état bas (courant sortant IIL). Ce n'est pas contre intuitif mais ça nécessite d'aller assez loin dans l'explication car une GPIO en entrée ce n'est pas qu'un courant entrant. C'est aussi un courant sortant.

    Regardons rapidement car ça serait terriblement complexe de détailler simplement l'intérieur (je deviens un bête en infographie ). Tu as raison de voir une entrée comme quelque chose qui consomme du courant mais à la loupe on voit que c'est légèrement plus compliqué. Je crois que nous avions parlé de tout ça dans un sujet parlant des pullup/down.






    Citation Envoyé par Artemus24 Voir le message
    Q-6-b) la notion de seuil déterminant ce qui est un 1 ou un 0 dans la lecture de la GPIO.
    Je comprends alors que la notion du signal à 0 se traduit par un tension entre 0V et 0,9V.
    Tandis que la notion du signal à 1 se traduit par une tension entre 1,6V et 3.3V.
    C'est tout à fait exacte !

    Citation Envoyé par Artemus24 Voir le message
    Je veux bien, mais cela est en contradiction avec :
    --> ma première question Q-6-a) qui est le sens du courant.
    --> la formule U=R*I dont l'invariant est la tension.
    Tu devrais mieux comprendre avec les schéma. Notamment pour le LOW, deuxième schéma (un courant sortant valant IIL = 5µA d'après la doc du Raspberry). Dans ce schéma si tu mets un pulldown de dingue, par exemple 180k&#937; * 5µA = 0.9V on est tout juste.... et le GPIO risque de ne pas voir un 0.


    Citation Envoyé par Artemus24 Voir le message
    Q-6-c) je ne comprends pas la notion de court-circuit.


    Citation Envoyé par Artemus24 Voir le message
    Il y a un coupe-circuit qui est représenté par le BP.
    Je constate qu'il y a deux chemins dans ce montage :
    --> (C-1) le VCC puis la résistance pull-up, et enfin l'entrée de la GPIO.
    --> (C-2) Le VCC, la résistance pull-up, le BP, le GND.

    Quand ce BP n'est pas enfoncé, la GPIO lit un 1, par l'intermédiaire du chemin (C-1).
    Regarde mon second schéma.

    Citation Envoyé par Artemus24 Voir le message
    Maintenant, si j'appuie sur le BP, il y a un court-circuit (j'espère que c'est le bon terme).
    Le courant passe par le chemin (C-2). Oui, mais le chemin (C-1) n'a pas disparu pour autant.
    Regarde mon second schéma.

    Citation Envoyé par Artemus24 Voir le message
    Faisons abstraction de ce qui est commun aux deux chemins, à savoir VCC et la résistance pull-up [...]
    Le second schéma que j'ai posté, avec le courant sortant, devrait répondre à cette question.

    Citation Envoyé par Artemus24 Voir le message
    Q-6-e) et la tension ?

    Si la GPIO est bien en entrée, il faut bien faire la distinction entre ce 1 et ce 0.
    Cela revient à dire qu'il existe une notion de seuil.
    Sauf que j'ai cru que la résistance modifie les ampères et non le voltage.
    Oui il y a des seuils de détection dans les composants électroniques. La tension augmente au fur et à mesure que le courant va baisser et la résistance augmenter.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

###raw>template_hook.ano_emploi###