allumer une LED lorsqu'on appuie sur un bouton poussoir
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

allumer une LED lorsqu'on appuie sur un bouton poussoir



  1. #1
    inviteb3913811

    allumer une LED lorsqu'on appuie sur un bouton poussoir


    ------

    Bonjour,
    je voulais faire un petit montage dont le but est d'allumer une led connectée à la broche D0 lorsequ'on appuie sur un bouton poussoir relié à la broche B0, voici le programme que j'ai utilisé:

    void main()
    {
    ANSEL = 0;
    ANSELH = 0;
    C1ON_bit = 0;
    C2ON_bit = 0;
    TRISB0_bit = 1; // La broche RB0 est configurée en entrée
    TRISD0_bit=0; // La broche RD0 est configurée en sortie
    PORTB=0x00;
    PORTD=0x00;
    if(PORTB==0x01)
    {
    PORTD=0x01;
    }
    }
    le problème c'est quand j'appuie sur le bouton poussoir, rien ne se passe, y'a t'il quelqu'un qui peut corriger mon erreur?
    Ps: l'autre borne du bouton poussoir est reliée à 5v
    merci

    -----

  2. #2
    invite8f0ce5da

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Bon au risque de me faire taper sur les doigts vu l'inutiliter de ce post, pourquoi
    fais tu aussi compliquer alors qu'une pile, une led et un interrupteur font l'affaire??

    Maximal

  3. #3
    inviteb3913811

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Citation Envoyé par maximal Voir le message
    Bon au risque de me faire taper sur les doigts vu l'inutiliter de ce post, pourquoi
    fais tu aussi compliquer alors qu'une pile, une led et un interrupteur font l'affaire??

    Maximal
    salut Maxim,
    mon vrais but n'est pas d'allumer une LED, mais de comprendre mon erreur, ceci va me permettre la réalisation de plusieurs autre montages plus complexes

  4. #4
    Forhorse

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Déjà reconfigurer à chaque fois les registres à chaque boucle du programme ne sert à rien. C'est fait une fois pour toute au début du programme (hormis besoin particulier bien entendu)
    Ensuite, est-ce qu'il y a vraiment une boucle ?
    Enfin, "PORTB=0x00" ne sert à rien ici

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

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Il faut une boucle infinie:

    void main()
    {
    ...
    ...
    while(1){
    if(PORTB==0x01)
    {
    PORTD=0x01;
    }
    }
    }

    De cette manière ton programme surveille en permanence l'état de RB0.

  7. #6
    inviteb3913811

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    j'ai changé mon programme comme suit
    void main()
    {
    ANSEL = 0;
    ANSELH = 0;
    C1ON_bit = 0;
    C2ON_bit = 0;
    TRISB0_bit = 1; // La broche RB0 est configurée en entrée
    TRISD0_bit=0; // La broche RD0 est configurée en sortie
    PORTB=0x00;
    PORTD=0x00;
    while(1)
    {
    if(PORTB==0x01)
    {
    PORTD=0x01;
    }
    }
    }
    mais toujours le même problème

  8. #7
    invite356840e1

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Tu utilises quel pic?

  9. #8
    inviteb3913811

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    j'utilise un Pic 16f887

  10. #9
    thundertom

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Salut à tous!

    l'erreur peut aussi venir du câblage. Il faut que ton bouton puisse "forcer" l'entrée à l'état haut ET bas, c'est à dire qu'il te faut une pull-up ou pull-down connecté à ton entrée. Ou alors programmer les pull-up en interne.

    Est-ce que tu peux nous fournir un schéma de câblage?
    Fabricando fit faber

  11. #10
    ftorama

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Citation Envoyé par thundertom Voir le message
    Salut à tous!

    l'erreur peut aussi venir du câblage. Il faut que ton bouton puisse "forcer" l'entrée à l'état haut ET bas, c'est à dire qu'il te faut une pull-up ou pull-down connecté à ton entrée. Ou alors programmer les pull-up en interne.

    Est-ce que tu peux nous fournir un schéma de câblage?
    On néglige trop souvent les datasheets:
    3.4.2 WEAK PULL-UPS
    Each of the PORTB pins has an individually configurable
    internal weak pull-up. Control bits WPUB<7:0> enable or
    disable each pull-up (see Register 3-7). Each weak
    pull-up is automatically turned off when the port pin is
    configured as an output. All pull-ups are disabled on a
    Power-on Reset by the RBPU bit of the OPTION register.

  12. #11
    lhse

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Je ne sais pas ou tu as fais une erreur mais TRISB=0x00 ne sert à rien bien que ce la ne devrait pas être une source de problèmes.

    Ensuite cela n'est pas forcément une erruer de programme mais peut-être de ton projet. (Es-tu dans le bon mode).

    Pour en savoir plus il faudrait savoir avec quel programme tu travailles.

  13. #12
    invite356840e1

    Re : allumer une LED lorsqu'on appuie sur un bouton poussoir

    Comme dit plus haut je pense également à un problème de hard et non de soft

Discussions similaires

  1. Problème contrôle LED avec bouton poussoir
    Par invite06c01aec dans le forum Électronique
    Réponses: 11
    Dernier message: 02/12/2010, 17h29
  2. Bouton poussoir, Allumer et eteindre une led
    Par jojo86 dans le forum Électronique
    Réponses: 37
    Dernier message: 06/12/2008, 09h34
  3. alumer et étindre une lampe avec deux bouton poussoir
    Par invite52b8bbbc dans le forum Électronique
    Réponses: 7
    Dernier message: 22/11/2008, 20h35
  4. led + bouton poussoir
    Par invite74119562 dans le forum Électronique
    Réponses: 2
    Dernier message: 24/04/2008, 18h40
  5. Fixation bouton-poussoir & led dans menuiserie
    Par amundsen dans le forum Électronique
    Réponses: 3
    Dernier message: 06/04/2008, 19h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.