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. #41
    Expert éminent sénior
    Salut Vincent Petit.

    Citation Envoyé par Vincent Petit
    Est ce que tout t'apparaît clair ?
    Avec tes explications, oui. Ok pour la suite !

    En résumé :

    a) le générateur est à tension fixe. De ce fait, le voltage ne peut pas varier. Ce qui revient à dire que l'inconnue est l'intensité. Reste à calculer la résistance équivalente.

    b) des résistances en série, on ajoute leur valeur en ohms :
    --> RT = R1 + R2.

    L'intensité est la même dans les deux résistances.

    c) des résistances en parallèle, on ajoute l'inverse de leur valeur en ohms.
    --> 1/RT = 1/R1 + 1/R2.

    la tension est la même dans les deux branches.

    d) la loi d'ohms : U = R * I.

    Il faut déterminer qui est variable ou qui est fixe entre la tension et l'intensité.
    La résistance est alors une constante dont-il faut connaitre aupréalable.

    Mais (il y a toujours un mais), tu as dit :
    Citation Envoyé par Vincent Petit
    Et là STOP !
    J'aimerai savoir pourquoi ne pas continuer la simplification du schéma, à 1 résistance ?
    Cette simplification permet de calculer l'intensité total :

    La résistance équivalente donne :
    --> 1/R = 1/820 + 1/846
    --> R = 416 ohms.

    Et l'intensité donne :
    --> U = R * I
    --> 1.5 = 416 ohms * i
    --> I = 3.6mA

    or, il se trouve que :
    --> 1.77 + 1.82 = 3.59mA
    Comme j'ai fait abstraction des arrondis, on peut dire que le résultat est le même.

    Citation Envoyé par Vincent Petit
    Accessoirement on peut même maintenant calculer si on le voulait la puissance dissipée par chaque résistance U * I pour s'assurer qu'aucune d'elle ne va partir en fumée.
    Après la loi d'ohms, le montage en parallèle, le montage en série, il y a la puissance à connaitre.
    Ce qui revient à dire que chaque composant est caractérisé par la tension, l'intensité et la résistance.

    Citation Envoyé par Vincent Petit
    ps : tu me pardonneras tous les erreurs d'arrondis mais je t'invite à prendre en compte tous les chiffres après la virgules avec une calculette pour que tu vois qu'on retombe exactement sur les bons résultats.
    Ce n'est pas les arrondis qui me posent des problèmes mais la démarche à suivre.
    Avec tes explications cela me parait bien plus simple.

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

  2. #42
    Expert éminent sénior
    Salut à tous.

    Q-5) Dans un pull-up ou un pull-down, quand j'utilise un bouton poussoir, où placer le condensateur ?

    Voici la représentation d'un pull-up



    et la représentation d'un pull-down :



    Jusque là, je n'ai aucune difficulté de compréhension.
    Dans les schémas, le VCC est en haut et le GND est en bas.
    La résistance est en haut dans le cas du pull-up.
    La résistance est en bas dans le cas du pull-down.

    Dans un de mes montages, j'ai utilisé le pull-down car je voulais :
    --> bouton poussoir enfoncé : signal à 1
    --> bouton poussoir relaché ; signal à 0

    Si j'avais utilisé le pull-up, j'aurai eu :
    --> bouton poussoir enfoncé : signal à 0
    --> bouton poussoir relaché ; signal à 1

    Autrement dit, le signal du pull-up est l'inverse du signal du pull-down.

    Je désire me prémunir de l'effet rebond d'un bouton poussoir.
    Je fais une recherche sur le net et je trouve quelques divergences dans les schémas.

    Voici le schéma avec un condensateur sur le bouton poussoir :



    Comme on peut le voir, le condensateur se trouve sur les borne du bouton poussoir.
    Ce schéma me semble logique !

    Oui, mais voilà, j'ai aussi trouvé ceci :



    Le condensateur (image de gauche), cette fois-ci se trouve aux bornes de la résistance. Bizarre !

    D'après ce que j'ai pu comprendre, ce montage est basé sur un circuit RC (pour résistance - condendsateur).



    Il y a encore plus fort, avec l'utilisation du trigger schmitt :



    Quand je désire éviter l'effet du rebond sur un bouton poussoir, j'aimerai connaitre le bon montage du pull-up et du pull-down avec condensateur.
    Comme j'utilise du 3.3Vcc ou du 5Vcc, j'ai aussi remarqué que l'usage veut prendre une résistance de 10k ohms.
    Quelle est la valeur du condensateur ?

    Je possède des 100nF comme ceux-ci :
    --> https://www.gotronic.fr/art-condensa...-100-nf-66.htm

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

  3. #43
    Modérateur

    Salut,
    Il a plusieurs manière plus ou moins abouties de faire un anti-rebond hardware (avec des portes logiques câblés en bascule D, avec une diode pour contrôler les temps de charge/décharge, une porte trigger de schmitt, ...) mais ceux là suffisent dans la grande majorité des cas et sont économiques :



    Le fonctionnement est assez simple finalement. Pour un montage pullup quand le bouton est relâché (image ci dessous à gauche) le condensateur se charge au travers de la résistance de 10kΩ et de la 100Ω. Quand le bouton est enfoncé le condensateur se décharge au travers de la 100Ω. La capa se charge lentement car au travers de 10kΩ + 100Ω et elle se décharge rapidement au travers de la 100Ω seulement



    Pour la pulldown c'est l'inverse. La capa se charge rapidement au travers de la 100Ω seulement et elle se décharge lentement car au travers de 10kΩ + 100Ω.



    La valeur de la capa n'est pas critique, 100nF conviendra très bien. Pour la calculer précisément il faudrait observer la tête des rebonds à l'oscilloscope pour mesurer leurs durées sachant qu'ils vont changer aussi avec l'age du capitaine. Le rôle de la capa est de maintenir la tension même quand l'interrupteur rebondi.

    Si tu veux que j'aille plus loin dans l'explication, je peux aussi.
    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

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

    Merci pour tes explications.

    Citation Envoyé par Vincent Petit
    Le fonctionnement est assez simple finalement.
    Quand on sait, cela parait simple. Sauf que je ne connais pas le fonctionnement du condensateur.

    Voici comme je le percois après avoir lu sur le net.
    Un condensateur branché entre le GND et le VCC, me parait au premier abord, assez bizarre comme fonctionnement.
    Il régularise la tension en se chargeant quand il y a un pic et se décharge quand il y a une chute.
    Mais il doit se comporter comme un accumulateur, enfin je devrais plutôt dire comme une batterie.
    Ce qui me fait dire qu'il y a un sens de circulation du courant.

    Sa borne + est coté Vcc et sa borne - coté GND.

    Il se charge parce qu'il y a une différence de potentielle entre sa borne + et sa borne -.
    S'il n'y a plus de différence de potentielle à ses bornes, le condensateur se décharge.
    Je le comprends ainsi. Sauf que je ne comprends pas le sens de circulation du courant.
    D'après ta deuxième image, le sens est inversé et ça, je ne le comprends pas.

    On va prendre le pull-up.
    Il a toujours une tension à ses bornes que ce soit quand le bouton poussoir est enfoncé ou relâché.
    Et il y a toujours un chemin entre le Vcc, la résistance de 10k ohms, la résistance de 100 ohms, le condensateur et le GND.
    Voire la deuxième image, partie gauche.

    Je ne comprends pas non plus, comment le condensateur se charger ou se vider.
    Pour moi, il se charge quand le condensateur est vide et qu'il y a une ddp à ses bornes.
    Il se décharge, quand le condensateur est plein et qu'il n'y a plus de ddp à ses bornes.

    Mais quand est-il du pull-down ?
    (première image, partie droite)
    Il n'y a pas de chemin pour effectuer le chargement, puisque le bouton est relâché et donc le courant ne passe pas.

    Je suppose que le schéma du pull-down est faux ou alors je ne le comprends pas.
    Il me semble logique de mettre le condensateur aux bornes du bouton poussoir.
    En procédant ainsi, il court-circuite le bouton poussoir.

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

  5. #45
    Modérateur

    Salut Artemus24,
    C'est vrai que le condensateur a un comportement plus complexe que la résistance, d'ailleurs à un certain moment il devient nécessaire d'utiliser les nombres complexes pour décrire son comportement mathématique. L'allure de la tension aux bornes d'un condensateur a cette forme :

    Lors de la charge Vcondensateur = Vsur une des armatures * (1 - e -(t / R*C) )

    Lors de la décharge Vcondensateur = Vsur une des armatures * (e -(t / R*C) )

    - Avec -t le temps qui passe
    - R*C est appelé constante de temps τ c'est pour ça que souvent on voit la formule Vcondensateur = Vsur une des armatures * (e -(t / &#964 ). Sache aussi qu'un condensateur tout seul, sans résistance externe a quand même une petite résistance à l'intérieur, qu'on appelle ESR. Donc même pour un condensateur tout seul, les formules ci dessus restent vraies.

    Si on trace la charge et décharge d'un condensateur ça donnerait ceci, de belles courbes exponentielles.


    Source : https://f5zv.pagesperso-orange.fr/RA...B/RM23B23.html

    Dans le cadre d'un antirebond, ça fonctionne comme le montre le graphique. Le schéma n'est là que pour simuler des rebonds. En rouge c'est la tension qui rebondie (très exagérée), on peut imaginer que j'ai appuyé sur un interrupteur et que la tension est montée d'un coup à 5V. Seulement, malgré que mon doigt reste sur le bouton la lame à l'intérieure rebondi pendant un certain temps ce qui créait des retours à 0V jusque 3.7ms, ensuite la partie mécanique à l'intérieur du bouton s'est stabilisée. 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.

    Je prends un exemple avec des chiffres.

    On imagine qu'un micro voit un 0 (low) pour une tension entre 0V et 1.5V et un 1 (high) pour une tension entre 3.5V et 5V. Entre les deux on est dans un état transitoire mais ce n'est pas bien grave, le principal c'est de ne pas y rester. Sans le condensateur, avec seulement la courbe rouge, on voit que le micro aurait vu des 1 et 0 pendant tous les rebonds mais avec le condensateur ce qu'on voit c'est qu'une fois les rebonds passés la tension n'a pas encore été prise pour un 1 (3.5V) mais c'est limite avec une 10kΩ, avec un 20kΩ c'est mieux.

    Dans la vraie vie, les rebonds ne sont pas si prononcés, ils sont plus rapide que les 500µs représentés ici.



    Citation Envoyé par Artemus24
    Mais il doit se comporter comme un accumulateur, enfin je devrais plutôt dire comme une batterie.
    Ce qui me fait dire qu'il y a un sens de circulation du courant.
    C'est presque ça. Il se comporte comme un accu en fournissant du courant au besoin et en se déchargeant en conséquence mais il est aussi capable d'absorber du courant d'une de ces armatures pour l'envoyer vers l'autre armature. Si il est chargé à 5V et que tu lui présentes 6V il va absorber du courant du 6V vers le 5V pour se charger d'1V de plus. Si tu lui présentes 0V en le court-circuitant direct, il va se vider.

    Citation Envoyé par Artemus24
    Il se charge parce qu'il y a une différence de potentielle entre sa borne + et sa borne -.
    S'il n'y a plus de différence de potentielle à ses bornes, le condensateur se décharge.
    Je le comprends ainsi.
    C'est ça. Un condensateur chargé met un certain temps à se décharger tout seul sans circuit (si il a les pattes en l'air). Dans les télévisions, les anciennes, il fallait mieux attendre quelques 10aines de seconde après l'extinction avant d'aller mettre ses doigts là dedans.

    Citation Envoyé par Artemus24
    Sauf que je ne comprends pas le sens de circulation du courant.
    D'après ta deuxième image, le sens est inversé et ça, je ne le comprends pas.
    Comme je le disais plus haut. Quand C est déchargé on lui présente 5V sur une armature, l'autre est à 0V, alors il absorbe du courant et se charge jusqu'à atteindre 5V. Mais quand on appuie sur l'interrupteur, C qui est chagé à 5V va se vider au travers de la 100Ω vers le 0V.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

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

    Je vais détailler un peu plus la problématique :

    1) j'ai un bouton poussoir. Celui possède que deux états :
    --> soit position haute ou position relâchée, aucun courant ne passe.
    --> soit position basse ou position enfoncée, un courant passe.

    Schématique, l'état de ce bouton poussoir se comporte comme un booléen.
    Avec VRAI quand le courant passe et FAUX dans le cas contraire.

    2) mon programme qui gère ce bouton poussoir.
    Bien que le bouton poussoir délivre un état (ou un booléen), ce n'est pas ça qui m'intéresse.
    Dans mon programme, j'utilise un TIMER qui va interroger périodiquement le bouton poussoir.
    J'interroge l'état de ce bouton poussoir, mais le comparant à l'état de la période précédente.
    En fait, je recherche uniquement le passage de FAUX à VRAI.
    Cela se traduit par la table de vérité suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    +----------------+--------------+-------------------+
    | Etat Précédent | Etat Courant |   Signification   |
    +----------------+--------------+-------------------+
    |      VRAI      |     VRAI     | Etat enfoncé      |
    |      VRAI      |     FAUX     | Action de relaché |
    |      FAUX      |     VRAI     | Action d'enfoncé  |
    |      FAUX      |     FAUX     | Etat relâché      |
    +----------------+--------------+-------------------|
    En rouge, ce qui m'intéresse.
    Autrement dit, c'est sur l'action d'enfoncé le bouton, c'est-à-dire quand il passe de l'état relâché à l'état enfoncé.

    Cela se traduit par le test suivant : "non PREC and COUR" qui doit être VRAI.
    (PREC : variable donnant l'état précédent du bouton poussoir; COUR : variable donnant l'état courant du bouton poussoir)
    La différence est dans la durée de la période du TIMER, qui doit s'aligner sur le temps minimum d'un changement d'état du bouton poussoir.

    3) le pull-up et le pull-down.
    La différence entre les deux pull est dans la signification du VRAI et du FAUX du bouton poussoir.

    Pour le pull-down, le FAUX est zéro ou LOW et le VRAI est 1 ou HIGH.
    Pour le pull-up, c'est l'inverse, à savoir le FAUX est 1 ou HIGH et le VRAI est zéro ou LOW.

    Dans mes montages, j'utilise le pull-down car je préfère deux choses :
    --> que le FAUX corresponde à zéro ou LOW.
    --> qu'aucun courant ne passe quand le bouton poussoir est relâché.

    4) le condensateur.
    En plus de ce comporter comme un accumulateur, le condensateur se comporte aussi comme un interrupteur.
    Quand une tension est appliquée à ses bornes, et qu'il est totalement chargé, aucun courant ne passe.
    Quand aucune tension n'est appliqué à ses bornes, c'est-à-dire quand il se décharge, le courant passe.

    Ce qui nous intéresse est le temps mit pour charger ou décharger le condensateur.
    Pour cela, nous devons utiliser un circuit RC (R pour résistance et C pour condensateur).
    L'association de ces deux composants électroniques se fait soit en série ou soit en parallèle.

    Dans le cas d'un montage série, le temps de charge est long.
    Dans le cas d'un montage parallèle, le temps de décharge est long.

    5) la problématique.
    Nous devons combiner le pull-up (ou le pull-down) avec le circuit RC (en parallèle ou en série).
    Nous avons des rebonds lorsque le bouton poussoir est enfoncé.

    Pour résoudre ce problème dans le cas du pull-up, le condensateur doit se décharger à ce moment là.
    Pour ralentir la décharge, nous devons monter la résistance en parallèle sur le condensateur.
    De ce fait, le schéma du pull-up du poste #43 (image de gauche) ne peut pas convenir.
    Pourquoi ? Parce que la résistance est en série et provoque un chargement long.

    Pour résoudre ce problème dans le cas du pull-down, le condensateur doit se charger à ce moment là.
    Pour ralentir la charge, nous devons monter la résistance en série sur le condensateur.
    De ce fait, le schéma du pull-down du poste #43 (image de droite) ne peut pas convenir.
    Pourquoi ? Parce que la résistance est en parallèle et provoque un déchargement long.

    Mes compétences s'arrêtent là car je ne sais pas où positionner correctement le condensateur afin d'avoir l'effet voulu.
    Ce qui me dérange aussi, c'est la position de la résistance de limitation qui devrait se trouver à gauche du point P2.

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

  7. #47
    Modérateur

    Re
    Ah, je vois !

    On fait tu as tout compris et la seule chose qui biaise ton raisonnement c'est la présence de la 100 Ohms qui est optionnelle, elle protège le bouton poussoir pour limiter un peu une décharge brutale du condensateur. Sans la 100 Ohms l'interrupteur court-circuiterait le condensateur "chargé". D'un autre côté, pour malmener un bouton poussoir il faudrait court-circuiter un condensateur bien plus gros.

    Tu peux faire un essai chez toi, tu charges un gros condensateur de 4700µF, avec une pile 9V par exemple ensuite tu retires la pile, le condo reste chargé, et si tu court-circuites les deux pattes du condo tu verras que ça fait un beau flash !!!! Ce n'est pas dangereux mais c'est impressionnant. On imagine facilement qu'un interrupteur se fasse un peu mal mener par un tel flash à l'intérieur. Mettre une résistance de 100 Ohms permet de rendre la forme du courant plus exponentielle, donc plus douce et moins brutale.

    Ce soir, je vais faire un petit dessin (graphique) de l'allure de la tension sans la 100 Ohms :
    - l'interrupteur court-circuitera directement le condensateur dans le cas du pullup (ça charge lentement, ça décharge instantanément)
    - l'interrupteur agira directement sur l'entrée du micro dans le cas du pulldown (ça charge instantanément, ça décharge lentement)


    Et je pense que ton : 5) Problématique va d'un coup disparaître.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  8. #48
    Responsable Modération

    Bonjour

    Citation Envoyé par Artemus24 Voir le message
    Dans mes montages, j'utilise le pull-down car je préfère deux choses :
    --> que le FAUX corresponde à zéro ou LOW.
    --> qu'aucun courant ne passe quand le bouton poussoir est relâché.
    C'est une mauvaise réflexion.
    Le premier point c'est de la paresse, mettre un ! dans le code et le signal est inversé. COUR = ! digitalread(...);.
    Le deuxième est une erreur de pensée, il ne passe aucun courant quand le bouton poussoir est relâché, que tu sois en pull-up ou en pull-down. Le Pull-up pouvant être interne au micro la consommation sera moindre dans ce mode que dans n'importe quel mode avec résistance extérieure. En mode anti-rebond matériel il n'y a aucune différence entre les deux également. Les équations du condo font que ce n'est que la variation de tension qui "consomme" du courant. Que l'état de repos soit déchargé (pull-down) ou chargé (pull-up) la consommation sera la même (avec les mêmes valeurs de composants).

    Avec des circuits anciens de type TTL, au repos le pull-up consomme moins que le pull-down car les entrées sont asymétriques.

    Bonne suite

    Delias

  9. #49
    Expert éminent sénior
    Citation Envoyé par Vincent PETIT Voir le message
    Tu peux faire un essai chez toi, tu charges un gros condensateur de 4700µF, avec une pile 9V par exemple ensuite tu retires la pile, le condo reste chargé, et si tu court-circuites les deux pattes du condo tu verras que ça fait un beau flash !!!!
    Il faut préciser qu'à cette valeur, on a surtout des condensateurs chimiques polarisés. Et il faut absolument respecter la polarité, sinon le condensateur fera beaucoup plus qu'un flash (il explose, et cela peut être dangereux) !

  10. #50
    Modérateur

    Tu as raison Auteur
    Avec l'habitude ça m'a paru tellement évident que je n'ai même pas abordé ce point.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #51
    Expert éminent sénior
    Salut à tous.

    @ Vincent Petit : Excuse moi si j'ai dû détailler mon problème.
    Comme tu maîtrises parfaitement ton sujet, j'en suis encore très loin de tout comprendre.
    Il est fort probable que je fais des erreurs de raisonnements.

    Citation Envoyé par Vincent Petit
    En fait tu as tout compris ...
    Pas vraiment.

    J'ai lu ce que j'ai pu trouver sur le net, et cela m'a aidé à comprendre un peu plus le fonctionnement du condensateur.
    Mon problème est que je ne possède pas le matériel (oscilloscope et autre) pour faire des expériences de compréhensions.

    Ta façon de raisonner démontre une grande expérience dans le domaine de l'électronique.
    Ce qui est évident pour toi, je dois le découvrir à mes dépends (ou par le raisonnement).

    Citation Envoyé par Vincent Petit
    ... et la seule chose qui biaise ton raisonnement c'est la présence de la 100 Ohms qui est optionnelle, ...
    Je peux me tromper, mais cette résistance de limitation sert à protéger le GPIO.
    A moins qu'elle sert à autre chose, d'où mon erreur de raisonnement.

    Citation Envoyé par Vincent Petit
    ... elle protège le bouton poussoir pour limiter un peu une décharge brutale du condensateur.
    D'accord, donc pas du tout ce que je pensais.

    J'ai cru comprendre que tes pull (première image) étaient des montages types.
    Or ils ne sont pas spécifiques à ce que je cherche à faire.
    Tout au contraire, aucun des deux ne me convient.

    Pour le pull-up, tu disais :
    Citation Envoyé par Vincent Petit
    La capa se charge lentement car au travers de 10kO + 100O et elle se décharge rapidement au travers de la 100O seulement
    Or c'est exactement l'inverse que je recherche. Pourquoi ?
    Parce que la gestion de mon bouton poussoir concerne le changement d'état allant de relâché à enfoncé.

    Ce n'est pas le pull-up qui m'intéresse mais bien le pull-down et tu disais à ce sujet :
    Citation Envoyé par Vincent Petit
    Pour la pulldown c'est l'inverse. La capa se charge rapidement au travers de la 100O seulement et elle se décharge lentement car au travers de 10kO + 100O.
    Cela devrait me convenir aussi sauf que je ne comprends pas le schéma du pull-down vis-à-vis du pull-up, ni comment il peut fonctionner.
    Voici ce que je ne comprends pas :

    a) d'après ce que j'ai compris, le condensateur doit être relié au Vcc et au GND, ce qui est le cas dans le pull-up.
    Dans le pull-down, le bouton poussoir fait office de coup circuit, et donc le condensateur n'est ni en phase de charge ni en phase de décharge. En fait, il est vide.
    Ce qui me fait dire que le schéma du pull-down est faux. J'aurai mis le condensateur aux bornes du bouton poussoir.
    De ce fait, il est bien relié à Vcc et à GND, et il y a bien une résistance comme dans le circuit RC.

    Le condensateur se charge lentement, à cause de la résistance pull-down.
    Quand celui-ci est chargé, le courant ne passe plus et cela me convient parfaitement.
    Quand on enfonce le bouton poussoir, il se décharge et le courant passe par la résistance de limitation de 100 ohms.
    Or ce qui me dérange dans ce montage, c'est que je n'obtiens pas ce que je cherche, à savoir une charge rapide et une décharge lente pour lisser l'effet du rebond.

    b) l'autre point est le choix de mettre le condensateur aux bornes de la résistance pull-down.
    Pourquoi ne pas mettre le condensateur aux bornes du bouton poussoir ?
    Sinon, pourquoi le schéma du pull-down ne serait pas la symétrie du pull-up ?

    Dans le poste #45, l'image que tu mets avec les rebonds, je comprends tes explications.
    Sauf que cette image, à moins de me tromper, ne correspond pas à un pull-up, puisque la monté en charge (en bleu) devrait être descendante.
    Ben oui, quand le bouton est relâché, le signal est à 1. Quand on l'enfonce, il passe à zéro.

    A priori, ce schéma devrait être celui d'un pull-down.
    Sauf que le pull-down se décharge lentement et le schéma montre plutôt un chargement lent, ce qui n'est pas le cas.

    En fait, il correspond à un circuit RC dont la résistance est montée en série, avec un bouton poussoir monté aussi en série.
    Peux-tu me confirmer mon analyse ?

    Citation Envoyé par Vincent Petit
    Mettre une résistance de 100 Ohms permet de rendre la forme du courant plus exponentielle, donc plus douce et moins brutale.
    Je suppose que la valeur de ce 100 Ohms n'est pas arbitraire. Pourquoi 100 ohms ?

    Avec l'introduction du condensateur, je suppose que l'on doit gérer aussi bien la charge et que la décharge.
    Ce qui complique encore un peu plus le schéma du pull (up ou down) selon ce que l'on veut obtenir au final.

    Citation Envoyé par Vincent Petit
    Et je pense que ton : 5) Problématique va d'un coup disparaître.
    Pour la solution que je cherche, certainement oui.

    Mais il reste la différence de fonctionnement du pull-down, entre un condensateur branché aux bornes de la résistance pull-down (en parallèle) et un condensateur branché au borne du bouton poussoir.
    (déjà dit plus haut)

    Citation Envoyé par Delias
    Le premier point c'est de la paresse, mettre un ! dans le code et le signal est inversé. COUR = ! digitalread(...);.
    Justement, je ne suis pas d'accord avec toi. Le bon sens veut que le zéro signifie pas de courant alors que le 1 signifie passage du courant.
    C'est comme si dans un ascenseur, en appuyant sur le bouton pour monté, tu descends. Désolé de le dire, mais c'est pas logique.

    Au contraire, inversé le sens de lecture est la solution de facilité qui démontre la paresse du concepteur du schéma.

    Citation Envoyé par Delias
    C'est une mauvaise réflexion.
    En quoi est-ce une mauvaise réflexion puisque le pull-down fonctionne correctement dans mon montage ?

    Cela me rappelle les partisans de la non utilisation du "GOTO" dans un programme dit structuré, et était incapable de faire simple sans son usage.
    Je ne cherche pas à complexifier à outrance un montage, mais qu'il corresponde à ce que je cherche à faire, et en toute simplicité.
    Même si cela déroge à une pratique de votre métier que je ne connais pas, vu que je ne suis pas électronicien mais informaticien.

    Citation Envoyé par Delias
    Le premier point c'est de la paresse, mettre un ! dans le code et le signal est inversé. COUR = ! digitalread(...);.
    Je ne vois pas pourquoi qualifier cela de paresse ?
    Parce que je ne veux pas inverser le résultat d'un signal ?
    Non, c'est une contrainte qui n'a aucune raison d'être.
    Et en plus, ce n'est pas logique.

    La paresse est dans celui qui a conçu le montage électronique.
    Pourquoi faire le choix de mettre un pull-up au lieu d'un pull-down ?
    La cause se trouve plus dans les mauvaises habitudes que dans la volonté de s'adapter à un changement

    Autre point il y a un manque de respect pour ceux qui viennent par la suite dans la chaîne de conception.
    Je laisse ce problème à celui qui vient après moi.

    Je trouve aberrant de laisser passer un courant, comme dans le cas du pull-up, quand le montage est dans sa position stable (bouton relâché).
    Trouverais-tu normal, chez toi, qu'une ampoule consomme du courant, même si tu ne l'utilises pas ?
    Je te donne un argument, regardes ta consommation électrique pour faire le bon choix.

    Tout cela se résume à des choix ou des conventions qui n'engagent que ceux qui les pratiques.

    Citation Envoyé par Delias
    Le deuxième est une erreur de pensée, il ne passe aucun courant quand le bouton poussoir est relâché, que tu sois en pull-up ou en pull-down.
    Désolé de le dire, mais dans le schéma du pull-down, le bouton poussoir fait office de coup circuit.
    Tu as beau me dire le contraire, je vois bien que si le bouton est relâché, le courant ne peut pas passer.
    Sinon, d'où viendrait le Vcc de 5 volts ?

    Ou alors, tu me parles de la phase de déchargement du condensateur.

    Citation Envoyé par Delias
    Le Pull-up pouvant être interne au micro la consommation sera moindre dans ce mode que dans n'importe quel mode avec résistance extérieure.
    Si ton argument est la consommation, avec un pull-down, il n'y a aucun courant qui passe (je parle d'un montage sans condensateur).

    Citation Envoyé par Delias
    En mode anti-rebond matériel il n'y a aucune différence entre les deux également.
    Avec condensateur, il y a une différence. Le comportement est inversé. Voire les commentaires de Vincent Petit sur le pull-up et le pull-down avec condensateur.

    Excuse moi de dire cela, Delias, mais essayes-tu de m'embrouiller ?

    Citation Envoyé par Auteur
    Et il faut absolument respecter la polarité, sinon le condensateur fera beaucoup plus qu'un flash (il explose, et cela peut être dangereux) !
    Merci pour l'avertissement, mais je n'avais pas l'intention de faire quoi que ce soit.

    Je rappelle que je suis débutant et non un électronicien chevronné.

    Merci de votre participation à tous.

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

  12. #52
    Expert éminent sénior
    Salut à tous.

    Avec mes messages trop long, on s'y perd. Alors je vais faire court.

    J'ai trouvé un schéma totalement similaire à celui de Vincent Petit :



    C'est un pull-up, dans lequel, on a ajouté un condensateur et une résistance de 100k en série, aux bornes du bouton poussoir (=BP).



    Il est dit que la tension monte et descend doucement, comme le montre le second schéma.
    Ce qui me fait dire que ce condensateur avec sa résistance en série est le circuit RC (condensateur/résistance).

    Pourquoi n'en serait-il pas de même pour le pull-down ?
    Qu'est-ce qui est différent dans le pull-down pour ne pas appliquer la même logique du pull-up ?

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

  13. #53
    Modérateur

    Salut,
    Pour mieux comprendre on va retirer la résistance de protection de l'interrupteur qui nuit à la compréhension. J'expliquerai à la fin qu'elle est sa contribution.

    Pour le pullup c'est assez clair : en 1 l'interrupteur est ouvert, le condensateur se charge au travers de R avec une forme exponentielle, jusqu'à atteindre +5V. On fois que c'est fait la tension à ses bornes est de 5V. En 2, l'interrupteur se ferme et met à 0V le condensateur, celui-ci est court-circuité. Si je faisais un zoom sur le graphique 2, on verrait que le passage de 5V à 0V est un tout petit peu exponentielle à cause de la résistance interne du condensateur.

    Si je résume ; charge lente et décharge rapide





    Pour le pulldown : en 1 l'interrupteur est fermé, le condensateur se charge instantanément pour atteindre +5V. On fois que c'est fait la tension à ses bornes est de 5V. Si je faisais un zoom sur le graphique 1, on verrait que le passage de 0V à 5V est un tout petit peu exponentielle à cause de la résistance interne du condensateur, ça n'est pas aussi instantané même si c'est hyper rapide. En 2, l'interrupteur est ouvert et le condensateur se décharge au travers de R avec une forme exponentielle, jusqu'à atteindre 0V

    Si je résume ; charge rapide et décharge lente





    La présence de la résistance de protection de l'interrupteur, R8 dans le schéma de ton précédent message (au dessus, le montage pullup), permet de ne pas avoir un décharge trop rapide en la rendant bien plus exponentielle. Cependant le fait d'introduire cette résistance va rendre la charge 2x plus lente. La charge du condo va se faire au travers de R6 + R8 et la décharge au travers de R8 seulement. Il y a des parades à cette asymétrie, une diode judicieusement placée va venir court-cicuiter une des résistances de charge et rendre charge et décharge symétrique.

    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.

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

  14. #54
    Expert éminent sénior
    Salut à tous.

    Merci d'être revenu dans la discussion, Vincent Petit.
    Tes explications sont clairs et j ne cherche pas à polémiquer mais à comprendre.
    Je reste quelqu'un de logique, et quand ce n'est pas logique, je ne comprends pas.

    Citation Envoyé par Vincent Petit
    Pour mieux comprendre on va retirer la résistance de protection de l'interrupteur qui nuit à la compréhension.
    Je n'ai jamais dit que je ne comprenais pas le rôle de cette résistance.

    Mais parlons-nous de la même chose ? Pour moi, la résistance de protection est celle qui protège le GPIO.
    Or cette résistance, est selon moi, la résistance de limitation, qui dans le circuit RC st en série et limite ou ralenti la charge du condensateur.



    Dans mon schéma final, j'ai trois résistances (enfin je crois qu'ils sont nécessaire) :
    --> la résistance de protection du GPIO.
    --> la résistance de rappel (pull-down resistor) ou de tirage (pull-up resistor).
    --> la résistance de limitation que ce soit pour la charge ou la décharge du condensateur.

    Si nous parlons de la même résistance, donc de limitation, il y a deux choses que je ne comprends pas

    a) pourquoi n'y-a-t-il pas une symétrie, par rapport à l'axe horizontal (la droite passant par p2), entre le pull-up et le pull-down ?
    Je parle bien sûr de ton schéma ci-après :



    Autant la figure de gauche ne me pose aucun problème, même avec la résistance (de limitation) de 100 ohms.
    Et de surcroît, tes explications dans le post #45 concernant le pull-up me semble logique.

    Alors pourquoi sur la figure de droite, le condensateur est sur le résistance de rappel (pull-down resistor) ?
    C'est cette absence de symétrie que je ne comprends pas.

    J'aimerai que tu me répondes à cette question : pourquoi le condensateur ne se trouve pas aux bornes du bouton poussoir dans le cas du pull-down ?

    b) dans le cas du circuit RC, il existe deux cas, à savoir la résistance en série et la résistance en parallèle.
    Je comprends le rôle joué par la résistance (de limitation) en série.
    Quelle rôle joue la résistance (de limitation) en parallèle ?



    La résistance en série sert à ralentir la charge, et la résistance en parallèle sert à ralentir la décharger.
    Est-ce bien cela ?

    Tu es trop en avance sur mon raisonnement. Je reviendrais plus tard sur la seconde partie de ton poste #45.

    P.S.1: j'ai fait un programme en 'C' à partir de la bibliothèque "linux/gpio.h".
    Celui-ci gère une interruption sur un événement, qui est un bouton poussoir.
    J'ai deux cas, soit le rising (le front montant) et le falling (le frond descendant).
    Quand j'ai seulement le pull-down, j'ai parfois plusieurs rising ou falling qui se suivent quand je manipule le BP.
    Quand je place un condensateur 100nF, j'en ai encore, mais beaucoup moins.
    Bien sûr, le condensateur se trouve aux bornes du BP.

    P.S.2: j'aimerai faire des schémas comme les tiens, pour illustrer mes explications. Comment dois-je m'y prendre ?

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

  15. #55
    Modérateur

    Salut,
    Je vais essayer de répondre par partie.
    Citation Envoyé par Artemus24 Voir le message
    Mais parlons-nous de la même chose ?
    Afin d'être d'accord sur ce dont on parle ; R1 pullup, R2 protection de l'interrupteur (optionnelle), R3 protection du GPIO (optionnelle).



    Citation Envoyé par Artemus24 Voir le message
    a) pourquoi n'y-a-t-il pas une symétrie, par rapport à l'axe horizontal (la droite passant par p2), entre le pull-up et le pull-down ?
    Je parle bien sûr de ton schéma ci-après :
    La seule symétrie dont on a besoin se trouve au niveau du bloc orange pullup ou down. Les blocs bleus et verts restent identiques car leurs rôles ne changent pas. Le bloc bleu est un intégrateur (un circuit RC série est un intégrateur), si on fait de grosses variations en entrée comme des rebonds le condensateur n'aura pas le temps de se charger et par des équations mathématiques on arrive à montrer qu'il es un intégrateur. Le bloc vert est simplement la résistance de protection du GPIO.



    Dans le cas du montage pullup quand on n'appuie pas sur le bouton le bloc orange donne un 1 au bloc bleu. Ensuite on appuie sur le bouton, le bloc orange donne un 0 puis les rebonds vont commencer et faire 1010101 et cela se stabilisera à 0. Le rôle du bloc bleu c'est d'intégrer tous ces rebonds 1010101 afin de présenter au bloc vert un 0 peu importe les rebonds.

    Dans le cas du montage pulldown quand on n'appuie pas sur le bouton le bloc orange donne un 0 au bloc bleu. Ensuite on appuie sur le bouton, le bloc orange donne un 1 puis les rebonds vont commencer et faire 0101010 et cela se stabilisera à 1. Le rôle du bloc bleu c'est d'intégrer tous ces rebonds 0101010 afin de présenter au bloc vert un 1 peu importe les rebonds.

    Dans les deux phrases ci dessus, on voit que le bloc bleu a le même rôle, il n'y a donc pas de raison de changer la place du condensateur.



    Citation Envoyé par Artemus24 Voir le message
    Alors pourquoi sur la figure de droite, le condensateur est sur le résistance de rappel (pull-down resistor) ?
    C'est cette absence de symétrie que je ne comprends pas.

    J'aimerai que tu me répondes à cette question : pourquoi le condensateur ne se trouve pas aux bornes du bouton poussoir dans le cas du pull-down ?
    Je le ferai demain. Tu verras que le comportement est complètement différent et ça ne va pas du tout répondre au besoin car d'un RC série (intégrateur) on va se retrouver avec un circuit CR série (un dérivateur).


    Citation Envoyé par Artemus24 Voir le message
    b) dans le cas du circuit RC, il existe deux cas, à savoir la résistance en série et la résistance en parallèle.
    Je comprends le rôle joué par la résistance (de limitation) en série.
    Quelle rôle joue la résistance (de limitation) en parallèle ?



    La résistance en série sert à ralentir la charge, et la résistance en parallèle sert à ralentir la décharger.
    Est-ce bien cela ?
    Je réponds demain car c'est un peu plus compliqué que ça. Le RC parallèle tel qu'il est dessiné ci dessus n'a que très peu d'application mais si on prend ce RC et qu'on ajoute des choses autours comme c'est le cas dans les montages anti-rebond alors le montage va s'analyser autrement, c'est à dire avec ce qui se passe autour et on va s'éloigner de la simple équation qui régit le RC parallèle.



    Citation Envoyé par Artemus24 Voir le message
    Tu es trop en avance sur mon raisonnement. Je reviendrais plus tard sur la seconde partie de ton poste #45.

    P.S.1: j'ai fait un programme en 'C' à partir de la bibliothèque "linux/gpio.h".
    Celui-ci gère une interruption sur un événement, qui est un bouton poussoir.
    J'ai deux cas, soit le rising (le front montant) et le falling (le frond descendant).
    Quand j'ai seulement le pull-down, j'ai parfois plusieurs rising ou falling qui se suivent quand je manipule le BP.
    Quand je place un condensateur 100nF, j'en ai encore, mais beaucoup moins.
    Bien sûr, le condensateur se trouve aux bornes du BP.

    P.S.2: j'aimerai faire des schémas comme les tiens, pour illustrer mes explications. Comment dois-je m'y prendre ?
    D'accord, attendons dans ce cas
    Pour les schémas, tu peux passer par ce site https://www.digikey.com/schemeit/project/ puis dans Schematic Symbole tu y trouveras pleins de composants - les résistances et capas sont dans "Passives"



    Sinon j'ai tellement l'habitude de manipuler le logiciel de dessin Inkscape que j'arrive même à dessiner mes composants et ajouter des illustrations. Mais il y a un temps d'apprentissage non négligeable.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  16. #56
    Expert éminent sénior
    Salut Vincent Petit.

    Citation Envoyé par Vincent Petit
    Dans les deux phrases ci dessus, on voit que le bloc bleu a le même rôle, il n'y a donc pas de raison de changer la place du condensateur.
    Les rebonds ne se font pas au niveau de la résistance (R1) du pull-down mais bien au niveau du bouton poussoir.
    J'avais compris que le bon emplacement du condensateur est aux bornes du bouton poussoir.

    Autre chose, le rôle du condensateur est d'être chargé.
    Dans le schéma du pull-down, tant que l'on n'appuie pas sur le bouton poussoir, le condensateur est vide.
    Si je comprends bien, il se charge quand on presse le bouton, c'est-à-dire au moment où il y a des rebonds.
    Je ne pense pas que ton schéma du pull-down puisse faire un anti-rebond car le condensateur ne joue pas son rôle correctement.

    Selon moi, il devrait être chargé avant de presser sur le bouton (dans le cas du schéma pull-down).
    Quand on presse le bouton, les rebonds arrivent et en se déchargeant, il va lisser le frond montant (passer de 0 à 1).
    J'espère avoir été clair sur ce qui me pose problème avec ton schéma du pull-down.

    A moins qu'en se déchargeant, le condensateur force le signal à rester à 0.
    Je ne sais pas si le problème vient de là.

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

  17. #57
    Modérateur

    Salut,
    Je crois avoir compris ce qui pose problème dans cette réflexion et je me suis rendu compte que j'ai amené une ambiguïté en allant pas assez loin dans un de mes dessins. Voir plus bas !


    Citation Envoyé par Artemus24 Voir le message
    Les rebonds ne se font pas au niveau de la résistance (R1) du pull-down mais bien au niveau du bouton poussoir.
    J'avais compris que le bon emplacement du condensateur est aux bornes du bouton poussoir.
    Je comprends qu'au vu de l'emplacement du condensateur sur le montage pullup, on pouvait penser que pour le pulldown il fallait tout inverser. Tu as essayé de trouver une logique "symétrique" et géométrique du montage et c'est probablement la chose la plus normale quand on n'est pas électronicien.

    Par contre si on regarde ça au travers d'un découpage en bloc fonctionnel, comme on le fait à l'école, le bloc orange, le bloc bleu et le bloc vert le raisonnement de l'inversion du condensateur n'est plus aussi logique. Le plus dur étant de trouver à quel bloc appartient un composant.


    Parfois c'est plus compliqué surtout si le concepteur a fait des optimisations ou a utiliser des astuces complexes où un composant a un rôle dominant dans deux blocs. Quelques exemples simples ;

    Dans le bloc "Interrupteur", la résistance de pulldown est a mettre dedans car elle sert à ce que l'interrupteur n'est pas une extrémité en l'air.
    Dans le bloc "Intégrateur", on retrouve le circuit RC classique dont la tension monte exponentiellement (plus lentement que celle de l'entrée), si on retire le R et qu'on ne laisse que C, on a toujours un bloc intégrateur mais plus rapide.
    Dans le bloc "Protection", on a la résistance pour le GPIO.
    Si tu avais un bloc "Voyant LED" il paraît logique que cela correspond à une LED + sa résistance de limitation.

    Et il faut regarder comment les blocs influent les uns sur les autres. Voici l'allure des courants à trois instants différents. A la mise sous tension, il n'y a rien de particulier le GPIO voit un 0. Quand le bouton est enfoncé, le condensateur se charge au travers de R2. Quand le bouton est relâché le condensateur se décharge au travers de R2 et R1. Dans la formule qui régit la tension aux bornes d'un condensateur, on doit introduire R * C à un moment donné mais quand on regarde on voit que la charge sera R1 * C mais la décharge sera (R1 + R2) * C, c'est à dire que le bloc intégrateur est influencé



    Citation Envoyé par Artemus24 Voir le message
    Dans le schéma du pull-down, tant que l'on n'appuie pas sur le bouton poussoir, le condensateur est vide.
    Si je comprends bien, il se charge quand on presse le bouton, c'est-à-dire au moment où il y a des rebonds.
    Exacte ! Et surtout, il se charge lentement et le but est d'être plus lent que les rebonds.

    Nous y voilà ! Je pense et j'espère que ceci sera plus clair. Afin que tu comprennes bien mon illustration. Je vais revenir rapidement sur le montage pullup et sans la résistance de protection de l'interrupteur.

    Description pullup :
    A la mise sous tension la capa se charge jusque 5V, on appuie sur le bouton ce qui court-circuite la capa qui tombe quasi immédiatement à 0. L'interrupteur rebondi comme ci on l'avait relâché, la capa commence à se charger mais elle se retrouve stopée par un nouveau rebond "bouton enfoncé" qui re-court-circuite la capa et qui retombe quasi immédiatement à 0, ainsi de suite. Ensuite le bouton est stabilisé avec le doigt dessus ce qui maintient tout à 0V. Enfin on relâche le bouton. Je ne l'ai pas dessiné ici pour ne pas encombrer le dessin, mais au relâchement il y a aussi des rebonds (le raisonnement reste le même). J'ai placé des seuils de détection High et Low et on voit que dès qu'on a appuyé sur le bouton, le GPIO va voir des Low malgré les rebonds.



    Description pulldown :
    A la mise sous tension tout est déchargé, donc égale à 0V. En appuyant sur le bouton, la capa se charge quasi instantanément à 5V. Puis un rebond arrive simulant le relâchement du bouton et la capa commence à se décharger dans la résistance, mais elle n'a pas le temps de se décharger entièrement que le prochain rebond la recharge quasi instantanément et ainsi de suite. Ensuite le bouton est stabilisé avec le doigt dessus ce qui maintient tout à 5V. Enfin on relâche le bouton. Je ne l'ai pas dessiné ici pour ne pas encombrer le dessin, mais au relâchement il y a aussi des rebonds (le raisonnement reste le même). J'ai placé des seuils de détection High et Low et on voit que dès qu'on a appuyé sur le bouton, le GPIO va voir des High malgré les rebonds.




    J'espère que c'est plus clair comme ça ? Si oui, quelques considérations et problème :

    - Le fait de rajouter une 100 Ohms va rendre la décharge, dans le montage pullup, bien plus douce (exponentielle) ou la charge, dans le montage pulldown bien plus douce (exponentielle).

    - L'ajout d'une 100 Ohms va créer une asymétrie qu'il faut étudier, si tu as une charge rapide et une décharge lente le problème c'est qu'il restera de l'énergie dans le condo et on aura une monté en forme d'escalier. Sur l'illustration ci dessous, un voit le condo (en bas) qui se charge a une certaine vitesse, mais la décharge est plus lente. Le soucis c'est la charge repart alors que la capa n'a pas eu le temps de se décharger. En #45 la simulation montre ce problème - parce que les rebonds n'ont pas la même durée entres eux. Le premier rebond laissa la capa se charger plus longtemps que le rebond suivant qui était sensé le décharger sur la même durée. Donc ça monte !

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

  18. #58
    Expert éminent sénior
    Salut Vincent Petit.

    Citation Envoyé par Vincent Petit
    Je crois avoir compris ce qui pose problème dans cette réflexion et je me suis rendu compte que j'ai amené une ambiguïté en allant pas assez loin dans un de mes dessins. Voir plus bas !
    Enfin une prise de conscience de ce qui nous diverge dans l'interprétation des schémas pull-up et pull-down.

    Citation Envoyé par Vincent Petit
    Exacte ! Et surtout, il se charge lentement et le but est d'être plus lent que les rebonds.
    Le cœur de mon problème se trouve ici !

    Dans le pull-down, la gestion des rebonds se fait au chargement du condensateur.
    Le chargement est lent et le déchargement est rapide.
    Il y a bien lissage du frond ascendant (passe du 0 au 1).
    Comme le déchargement est plus rapide que le chargement, le lissage a tendance à être tiré vers le bas.

    Tandis que dans le pull-up, cela se fait au déchargement du condensateur.
    Le chargement est rapide, et le déchargement est lent.
    Il y a bien lissage du frond descendant (passe du 1 au 0).
    Comme le chargement est plus rapide que le déchargement, le lissage a tendance à être tiré vers le haut.

    A bien comprendre, ton pull-down est l'inverse du pull-up dans son fonctionnement.

    Citation Envoyé par Vincent Petit
    J'espère que c'est plus clair comme ça ?
    C'est maintenant plus clair.

    Citation Envoyé par Vincent Petit
    si tu as une charge rapide et une décharge lente le problème c'est qu'il restera de l'énergie dans le condo et on aura une monté en forme d'escalier.
    Ca y est, je crois avoir compris le problème.
    Le condensateur doit se décharger plus rapidement qu'il se charger.
    Cette information, je ne la connaissais pas !

    Ce n'est pas encore terminé.

    a) A bien comprendre, le schéma pull-up est moins bon que celui du pull-down, en se basant sur le critère vitesse chargement/déchargement.
    Dois-je comprendre qu'il faut toujours privilégier une déchargement plus rapide qu'un chargement pour avoir un bon fonctionnement du condensateur ?
    Peux-tu donner ton opinion sur ta préférence et surtout pourquoi ?

    b) Comment évaluer la valeur du condensateur et de la résistance de protection du BP ?
    Il s'agit des GPIO, et en particulier des BP, donc du 3.3Vcc.

    c) il y a la constante de temps R * C qui détermine la durée du déchargement.
    Comme je travaille avec un timer, chaque intervalle doit posséder un laps de temps qui doit être équivalent à combien de cette constante de temps ?
    J'ai trouvé la relation suivante :
    --> 1 * T = 63.2% de charge
    --> 2 * T = 86.5% de charge
    --> 3 * T = 95.0% de charge
    --> 4 * T = 98.2% de charge
    --> 5 * T = 99.3% de charge
    --> 5 * T = 99.8% de charge

    Que dois-je prendre comme largeur de ma période ?
    Je dois laisser du temps au condensateur pour se charger.
    A combien de sa charge, le condensateur est opérationnel ?

    P.S.: comme nous arrivons au bout de cette cinquième question, j'ai trouvé que le sujet était plutôt compliqué.
    Les explications sur le net ne sont pas du tout clair.

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

  19. #59
    Modérateur

    Citation Envoyé par Artemus24 Voir le message
    Dans le pull-down pull-up, la gestion des rebonds se fait au chargement du condensateur.
    Le chargement est lent et le déchargement est rapide.
    Il y a bien lissage du frond ascendant (passe du 0 au 1).
    Comme le déchargement est plus rapide que le chargement, le lissage a tendance à être tiré vers le bas.

    Tandis que dans le pull-up pull-down, cela se fait au déchargement du condensateur.
    Le chargement est rapide, et le déchargement est lent.
    Il y a bien lissage du frond descendant (passe du 1 au 0).
    Comme le chargement est plus rapide que le déchargement, le lissage a tendance à être tiré vers le haut.
    Tout ok !

    Citation Envoyé par Artemus24 Voir le message
    A bien comprendre, ton pull-down est l'inverse du pull-up dans son fonctionnement.
    Oui c'est ça.

    Citation Envoyé par Artemus24 Voir le message
    a) A bien comprendre, le schéma pull-up est moins bon que celui du pull-down, en se basant sur le critère vitesse chargement/déchargement.
    Dois-je comprendre qu'il faut toujours privilégier une déchargement plus rapide qu'un chargement pour avoir un bon fonctionnement du condensateur ?
    Peux-tu donner ton opinion sur ta préférence et surtout pourquoi ?
    Ce qu'il faut faire c'est privilégier ;
    - une charge lente et une décharge rapide et complète (jusque 0V) pour un montage pull-up.
    - une décharge lente et une charge rapide et compète (jusque 5V) pour un montage pull-down.

    si on est trop beaucoup trop lent à la charge ou à la décharge, ce n'est pas grave mais il faudra en tenir compte, concrètement ça amène de la latence ; j'appuie sur le bouton, ça charge lennnnnteeemmmmennnt jusqu'a 5V et donc le High vu du micro va mettre un peu de temps a arriver par rapport au moment où j'ai appuyé sur le bouton. Néanmoins vu les ordres de grandeurs, pas sur qu'un humain voit une différence entre 1ms et 100ms ?

    Personnellement je préfère le montage pullup pour sa consommation, "le 5V charge doucement la capa et le bouton décharge d'un coup la capa", je trouve ça mieux que "le 5V charge d'un coup la capa (appel de courant sur le +5V) et le bouton décharge lentement la capa" et aussi, mais dans une moindre mesure, car l'état de la mise sous tension est un peu mieux défini. Le condensateur se charge. C'est à dire qu'après quelques ms après le démarrage, on est à 5V. En électronique, la maîtrise de la mise sous tension est quelque chose de critique. Il faut veiller à ne pas avoir de glitch ou de phénomènes transitoires et furtifs (c'est la raison pour la quelle on place des résistances de rappelle ou de tirage, pour définir un état)

    Exemple ci dessous, c'est ce que je fais habituellement dans mes design, je m'arrange pour que la capa de l'antirebond se soit chargée (exemple 1ms) et que seulement après le micro sorte du /RESET donc qu'il démarre (exemple 10ms). Ainsi je maîtrise la condition de démarrage.



    Citation Envoyé par Artemus24 Voir le message
    b) Comment évaluer la valeur du condensateur et de la résistance de protection du BP ?
    Il s'agit des GPIO, et en particulier des BP, donc du 3.3Vcc.

    c) il y a la constante de temps R * C qui détermine la durée du déchargement.
    Comme je travaille avec un timer, chaque intervalle doit posséder un laps de temps qui doit être équivalent à combien de cette constante de temps ?
    J'ai trouvé la relation suivante :
    --> 1 * T = 63.2% de charge
    --> 2 * T = 86.5% de charge
    --> 3 * T = 95.0% de charge
    --> 4 * T = 98.2% de charge
    --> 5 * T = 99.3% de charge
    --> 5 * T = 99.8% de charge

    Que dois-je prendre comme largeur de ma période ?
    Je dois laisser du temps au condensateur pour se charger.
    A combien de sa charge, le condensateur est opérationnel ?
    Alors ça ce n'est pas simple sans matériel car les fabricants d'interrupteur ne donnent pas les caractéristiques des rebonds, notamment car ils varient avec le vieillissement. Quand bien même tu faisais un antirebond soft (un tempo dès que tu détectes le tout premier appui du bouton) tu aurais le même problème ; combien de temps j'attends ?

    Ici comme on travaille à l’échelle du temps humain, je dirai qu'une constante de temps τ (R*C) = 100ms devrait être suffisant pour compenser les rebonds.

    Prenons un exemple pour exploiter ce graphique, R = 100kΩ et C = 100nF

    τ = (R*C) = 10ms

    Lorsqu'il se sera passé 1*τ (10ms) après le démarrage, la capa sera chargé à 63% de 5V soit 3.15V. Lorsqu'il se sera passé 2*τ (20ms) après le démarrage, la capa sera chargé à environ 85% de 5V soit 4.25V. Lorsqu'il se sera passé 3*τ (30ms) après le démarrage, la capa sera chargé à 95% de 5V soit 4.75V et ainsi de suite. Généralement on considère qu'a 5*τ la capa est entièrement chargée.

    Pour influencer τ on augmente soit la capa, soit la résistance.

    Si tu veux connaitre à chaque instant la tension de la capa, il faut utiliser les formules que j'ai donné en #45 Vcondensateur = 5V * (1 - e -(t / &#964 ). Par exemple, quelle est la tension à l'instant 0,2 τ ?
    τ = 10ms
    0.2*τ = 2ms
    On veut donc savoir quelle est la tension à l'instant 2ms.

    Vcondensateur = 5V * (1 - e -(t / &#964 )
    Vcondensateur = 5V * (1 - e -(0.002 / 0.01) )
    Vcondensateur = 0,906V

    C'est grâce à cette formule qu'on peut savoir au bout de combien de temps le micro va voir un High ou un Low.

    Citation Envoyé par Artemus24 Voir le message
    Les explications sur le net ne sont pas du tout clair.
    Oui je sais, tu n'es pas le seul a faire ce constat.


    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 ? Mais aussi exploitable. La réponse du point b) ne va pas être simple car on ne trouve pas vraiment d'info sur les rebonds néanmoins si on part de l'autre bout du problème "l'utilisateur ne s’apercevra pas qu'il s'est passé 100ms ou 300ms après qu'il ait appuyé sur l'interrupteur" alors on arrivera a dimensionner l'antirebond.

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

  20. #60
    Modérateur

    Petit bonus ! Je suis tombé sur ça


    Source https://www.allaboutcircuits.com/tec...-deal-with-it/

    Un site de qualité... et pourtant L'analyse n'a été poussé jusqu'au bout car le montage pulldown (à gauche) avec la capa à cet endroit va poser un problème au démarrage (montage dérivateur).

    Voici les simulations, d'abord le pulldown dont nous parlons ensemble dans cette discussion :


    Le pulldown avec la capa en parallèle (ou presque) de l'interrupteur comme envisagé sur www.allaboutcircuits.com et il y a un petit soucis au démarrage (ensuite le phénomène n'est plus gênant) :





    Sur DVP on est les plus fort !
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

###raw>template_hook.ano_emploi###