[Numérique] Ajout d'un anti rebond
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Ajout d'un anti rebond



  1. #1
    sandrecarpe

    Ajout d'un anti rebond


    ------

    Bonsoir à tous,
    Je souhaite rajouter un anti rebond sur 1 et 2 de J6 sur mon schéma. Malheureusement, j'ai déjà gravé la plaque donc je vais essayé de faire ça comme je peux, le plus proprement possible. Si j'ai bien compris comment ça fonctionne, c'est en fait un filtre RC. Donc je peux rajouter un condensateur au point entre R5 et la base de Q1 et la masse ? Et bien sur, je fais en sorte que ça colle toujours avec le fonctionnement de mon transistor.


    Nom : circuit.jpg
Affichages : 218
Taille : 38,1 Ko


    Donc confirmez-vous mon hypothèse ?

    Merci, bonne soirée à vous

    -----

  2. #2
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Sans voir encore la PJ ..
    C'est un antirebond sur une entrée de µC ?

  3. #3
    sandrecarpe

    Re : Ajout d'un anti rebond

    Oups, j'ai oublié de préciser un truc. En fait j'ai un raspberry qui contrôle tout ça (les entrées 1 et 2 de J6 sur le schéma), mais j'aimerais rajouter sur la même entrée qu'utilise le raspberry, un bouton pour faire une marche forcée. Mais du coup je ne sais pas si c'est un bonne idée, y a t-il un risque d'endommager les entrées du µC ?

    Je pouvais faire l'anti rebond par soft mais le résultat est vraiment pas satisfaisant
    Dernière modification par sandrecarpe ; 15/01/2016 à 23h47.

  4. #4
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Citation Envoyé par sandrecarpe Voir le message
    Donc confirmez-vous mon hypothèse ?
    Ca sert à rien ....
    C'est quoi qui commande la pin 1 de J6 ?

  5. A voir en vidéo sur Futura
  6. #5
    sandrecarpe

    Re : Ajout d'un anti rebond

    C'est mon raspberry, il sort un signal logique (je suppose que vous vous en doutez). Je me rends compte en même temps que j'écris que oui ça ne sert à rien x) Désolé...
    Du coup, changement de problématique, est-ce que je peux câbler un bp entre la pin 1 de J6 et le 3.3V sans précaution particulière ?

  7. #6
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Citation Envoyé par sandrecarpe Voir le message
    mais j'aimerais rajouter sur la même entrée qu'utilise le raspberry, un bouton pour faire une marche forcée.
    la même sortie !
    Mais du coup je ne sais pas si c'est un bonne idée, y a t-il un risque d'endommager les entrées du µC ?
    Endommager la sortie ? OUI

    Je pouvais faire l'anti rebond par soft mais le résultat est vraiment pas satisfaisant
    Ce n'est pas le résultat ... mais ton soft d'antirebond qui n'est pas satisfaisant !

  8. #7
    sandrecarpe

    Re : Ajout d'un anti rebond

    Je parlais de la même "entrée" en parlant de la pin (1), qui est l'entrée de ce montage, enfin bon^^
    Il faudrait rajouter une diode ?
    Nom : circuit.jpg
Affichages : 169
Taille : 40,9 Ko

    Edit: le BP irait plutot au 3.3V...
    Dernière modification par sandrecarpe ; 16/01/2016 à 00h12.

  9. #8
    sandrecarpe

    Re : Ajout d'un anti rebond

    Citation Envoyé par DAUDET78 Voir le message
    Ce n'est pas le résultat ... mais ton soft d'antirebond qui n'est pas satisfaisant !
    Certes, mais je pense aussi que la librairie que j'ai à disposition n'est pas des plus efficace

  10. #9
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Citation Envoyé par sandrecarpe Voir le message
    Certes, mais je pense aussi que la librairie que j'ai à disposition n'est pas des plus efficace
    De l’intérêt de savoir faire sa cuisine tout seul ! Au moins, on sait ce qu'on bouffe ....

    Moi, je ne comprend plus !
    - En #3, tu parles d'antirebond par soft. Mais alors, il faut que ton poussoir soit sur une entrée du µC qui, avec un antirebond, va gérer la pin J6-1
    - En #7, tu proposes un schéma de marche forcée qui est bon. Mais il n'y a pas d'antirebond

    Et pourquoi tu veux un antirebond ???? Pour moi, c'est le mystère !

    PS : Sur ton schéma #1 , tu mets ton poussoir entre émetteur et collecteur de Q1 et c'est torché .

  11. #10
    sandrecarpe

    Re : Ajout d'un anti rebond

    Mais encore faut-il savoir cuisiner !

    Bon, je me suis mal exprimé
    Actuellement (mais à vrai dire c'est pas important), j'ai une entrée du raspberry dédié à la détection de la marche forcée, mais comme j'ai pas fait de circuit anti rebond...bah j'ai des rebonds, et j'arrive pas à corriger ça correctement par soft.

    Du coup, je voudrais voir s'il est possible de rajouter la marche forcée au niveau du schéma que je propose en sachant que la pin 1 de J6 est piloté et connecté directement à une des sorties du raspberry.

    Mais si le schéma 7 est correct, pourquoi pas me lancer là dessus

    Voilà, j'espère avoir éclairé le sujet
    Dernière modification par sandrecarpe ; 16/01/2016 à 10h22.

  12. #11
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Citation Envoyé par sandrecarpe Voir le message
    Mais si le schéma 7 est correct, pourquoi pas me lancer là dessus
    Mais je t'ai donné la bonne solution (plus simple) :
    Citation Envoyé par Daudet
    Sur ton schéma #1 , tu mets ton poussoir entre émetteur et collecteur de Q1 et c'est torché
    Plutôt que de mettre un emplâtre sur une jambe de bois , tu ferrais mieux d'apprendre à cuisiner ! L'anti-rebond soft, c'est un truc basique en µC
    - soit tu essayes de comprendre comment marche la recette de ta librairy (et surtout les ressources qu'elle utilise. Conflit de timer, d'interruption ?)
    - soit tu développes le bout de soft pour ça (c'est du niveau CM1)

  13. #12
    sandrecarpe

    Re : Ajout d'un anti rebond

    Je vous montre le code en question :

    Code:
    #include <wiringPi.h>
    #include <iostream>
    
    #define PIN_MF_ECLAIRAGE 24
    
    
    using namespace std;
    
    volatile int count = 0;
    
    void foo(void *arg)
    {
        wiringPiISR(PIN_MF_ECLAIRAGE, INT_EDGE_NONE, foo, (void*)1997); //désactivation des interruptions
    
        usleep(1000*200); //tempo
    
        count++;
        cout << (int) arg << " " << count << " " << digitalRead(PIN_MF_ECLAIRAGE) << endl; //"argument, compteur,  etat de la pin
    
        wiringPiISR(PIN_MF_ECLAIRAGE, INT_EDGE_BOTH, foo, (void*)1997); //réactivation des interruptions
    }
    
    int main()
    {
    
        //initialisation de la librairie
        int iErr = wiringPiSetup();
        if(iErr == -1)
        {
                cout << "ERROR : Failed to init WiringPi " << iErr << endl;
                return -1;
        }
        //fin de l'initialisation
       
        pullUpDnControl(PIN_MF_ECLAIRAGE, PUD_UP); //activation de la pull up sur la pin 24
        pinMode(PIN_MF_ECLAIRAGE, INPUT); //pin 24 utilisée en entrée
        wiringPiISR(PIN_MF_ECLAIRAGE, INT_EDGE_BOTH, &foo, (void*)1997); //mise en place des interruptions
    
    
        while(true);
    }

    Voici ce que j'ai en sortie après 4-5 appui sur le bouton :
    Colonne 1 : argument
    Colonne 2 : count
    Colonne 3 : etat de la pin

    1997 1 0
    1997 2 1
    1997 3 1
    1997 4 1
    1997 5 0
    1997 6 0
    1997 7 0
    1997 8 0
    1997 9 1
    1997 10 1
    1997 11 1
    1997 12 1
    1997 13 1
    1997 14 1
    1997 15 1
    1997 16 1
    1997 17 1
    1997 18 1
    1997 19 1
    1997 20 1
    1997 21 0
    1997 22 0
    1997 23 0
    1997 24 0
    Si vous avez quelque chose à me proposer niveau soft je vous écoute
    Merci
    Dernière modification par sandrecarpe ; 16/01/2016 à 14h58.

  14. #13
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    J'ai fait du soft pendant 30 ans et j'ai raccroché le clavier en 2005 lors de ma mise en retraite. Je laisse ça aux d'jeuns .
    Je ne m'intéresse plus qu'au hard où on trouve de moins en moins de gens compétents
    Je veux bien t'expliquer un algorithme que j'ai utilisé ....

  15. #14
    sandrecarpe

    Re : Ajout d'un anti rebond

    Parce que bon...je pensais aussi que c'était plutôt évident à faire

    Je veux bien t'expliquer un algorithme que j'ai utilisé ....
    Ca me sauvera peut-être

  16. #15
    invitee05a3fcc

    Re : Ajout d'un anti rebond

    Tu utilises un timer (par exemple 40ms)
    Tu as un flag Inold1
    Tu as un flag Inold2
    Tu as un flag Inold3
    Dans le programme d'interruption, tu viens lire l'entrée In
    • In=Inold1=Inold2 . Pas de changement . return
    • In<>Inold1 . y a changement . Inold1=In return
    • In=Inold1 et In<>Inold2 . le changement est stable. Inold2=In . Si Inold2="1" then [action] . return

    Donc si un "1" est détecté deux fois à 40ms d'intervalle, On exécute le programme [action]

    Le programme [action] qui doit être très court (on est en interruption !), c'est incrémenter un compteur, mettre une sortie à "1" ou positionner un flag Inold3 à "1"
    Dans le "main" on vient tester régulièrement le flag Inold3 . Si il est à "1" , on peut exécuter une longue tache et ensuite on repositionne le flag Inold3 à "0"

    On voit que tous les flag sont des variables "Bit" . Si on fait un antirebond sur 8 entrées on utilises 2 variables "byte" et chaque bit, de par sa position , représente l'état d'un bouton.

    PS : sauf erreur de ma pôvre mémoire, ces explications ne sont pas idiotes

Discussions similaires

  1. anti rebond
    Par invite6af9789d dans le forum Électronique
    Réponses: 9
    Dernier message: 02/05/2011, 09h48
  2. Anti rebond
    Par invite31cc1da1 dans le forum Électronique
    Réponses: 3
    Dernier message: 24/03/2009, 22h32
  3. anti rebond
    Par invite56f9974a dans le forum Électronique
    Réponses: 7
    Dernier message: 26/07/2007, 14h03
  4. anti rebond
    Par invite219d4326 dans le forum Électronique
    Réponses: 29
    Dernier message: 17/07/2007, 13h56
  5. Anti rebond
    Par inviteeddea82a dans le forum Électronique
    Réponses: 3
    Dernier message: 07/08/2004, 11h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...