IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Basculer l'état d'une Led avec boutons poussoirs


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut Basculer l'état d'une Led avec boutons poussoirs
    Bonjour,
    je suis actuellement sur la réalisation d'un projet sous arduino, cependant, je bloque à un certain point, le plus important...
    J'aimerai savoir le code nécessaire pour "reset" le programme.
    Je m'explique,
    Je veux qu'une Led s'allume, lorsqu'un bouton poussoir passe au NL 1, peu importe le nombre de fois que l'interrupteur est enclenché, la Led doit resté allumée dès la 1ère commande, j'aimerais donc par la suite, à l'aide d'un autre interrupteur, éteindre la Led (d'où le fait de "reset"), pour ensuite la re-déclencher dans le futur.
    Je n'ai pas vraiment l'idée pour construire ce programme.. Etant donné que je suis sur Arduino depuis seulement quelques semaines, je ne suis pas du tout au point à ce niveau la, si quelqu'un pourrais m'aider..
    Merci à vous !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Bonjour,

    Si ce sont des boutons poussoirs à appui momentané, il faut détecter des fronts (bascule HIGH->LOW ou LOW->HIGH selon ton câblage).

    2 possibilités :
    - dans la boucle loop(), tu mémorises l'état du bouton et tu regardes par rapport à l'état précédent mémorisé s'il y a bascule ;
    - la détection d'un appui déclenche une interruption (cf. attachInterrupt()), évènement RISING OU FALLING.

    Attention aux phénomènes de rebonds dans le bouton.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut
    Merci pour ta réponse, mais j'ai créer ce programme, je te montre ce qu'il fait lorsque je l'allume...
    Le bouton poussoir laisse passer le courant quand il est levé(Niveau 1) et empêche le passage quand on appuie dessus(Niveau 0).
    Quand la serrure est dans la position dans laquelle je peux enlever la clé (Niveau 1), le courant passe, si je ne peux pas enlever la clé, le courant ne passe pas(Niveau 0)

    Je veux donc, que la Led verte soit allumée, avec le Bouton Poussoir enfoncé (Niveau 0) avec la serrure en Niveau 1, et dès que le bouton poussoir est relevé, la lumière rouge s'allume. Pour reset le système, je suis censé tourner la serrure dans le Niveau 0.
    Il y a vraisemblablement un problème, mais je ne trouve pas.. Je cherche depuis hier, mais je n'arrive à rien, ci contre, le code, ainsi qu'une vidéo montrant le problème..

    (Je programme sur Arduino, avec une carte Arduino Uno)

    La vidéo du probleme : https://www.youtube.com/watch?v=_WHG...ature=youtu.be

    Nom : Screenshot_68.png
Affichages : 7997
Taille : 122,0 Ko

    Je laisse le code quand même en dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    const int IC=13;  //Déclaration des constantes et des variables
    const int BR = 11;
    const int led=8; //led verte
    const int led1=9; //led rouge
     
    int etatIC;
    int saveIC = 0; 
    int etatBR;
     
    void setup() 
    {
      pinMode(IC,INPUT);    // IC est une entrée  
      pinMode(BR, INPUT);   // BR est une entrée
      pinMode(led,OUTPUT);  // led est une sortie
      pinMode(led1,OUTPUT);  // led1 est une sortie
     
      Serial.begin(9600);   // initialisation du port de communication entre la carte arduino et le pc
    }
     
    void loop() 
    {
      etatIC = digitalRead(IC);  // "etatIC" prend la valeur du digitalRead(IC)
        if(etatIC == 1)      // Si le bouton n'est pas appuyé
          {  
            ++saveIC;          // Ajoute un à la variable "saveIC"
            Serial.println(saveIC);    // Affiche la valeur de "IC"
            delay(500);     // Recommence à chaque secondes
          }
     
        if(saveIC > 0)     // Si "saveIC" est supérieur à 0
          {
            digitalWrite(led, LOW);   //Eteinds la led
             digitalWrite(led1, HIGH);  // On allume la led
          }
     
     
     etatBR = digitalRead(BR);   // "etatBR" prend la valeur "digitalRead(BR)
      if(etatBR == 0)      // Si on appuis sur le bouton 
        {
         saveIC = 0;      // On réinitialise les variable
         delay(500);
         digitalWrite(led, HIGH);  // On allume la led
         digitalWrite(led1, LOW);  // On eteinds la led
        }
    }

    Merci beaucoup pour vos reponses...

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut
    désolé je ne peux pas lire les vidéos

    je suis pas tout a fait sure d'avoir tout compris dans la séquence

    tu as donc deux interrupteurs : un a clé et un bouton poussoir

    tu cherches une séquence :
    1. int clé a 0 bouton poussoir à 1 : aucunes lumières allumées ?
    2. si tu appuis sur le bouton poussoir (qui passe a 0) : la lumière verte s'allume
    3. quand tu le relaches (il repasse à 1) la lumière verte s'éteint ? et la rouge s'allume
    4. si tu rappuis sur le bouton poussoir : aucun effet tout reste dans l'état précédent
    5. quand l'interupteur à clés est à 1 : tout s'éteinds ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut

    ce que je vois du programme ne corresponds pas a la description de ce que je comprends

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Par défaut
    Je suis désolé si je suis pas clair, mais c'est difficile a expliquer clairement, je vais donc tout recommencer depuis le début (Je souhaite créer une alarme).
    Je veux que, le système se déroule comme cela à la base:
    "Bouton poussoir à 0(Enfoncé)" et "Int clé à 1(Je peux retirer la clé)" La lumière verte est allumée, la route éteint. (La porte est fermée donc appuie sur le BP, et la clé est enlevé de l'int, la lumière verte est allumée, aucune intrusion.)
    "Bouton poussoir à 1(Relaché)" et "Int clé à 1(Je peux toujours retirer la clé)" La lumière verte s'éteint, la rouge s'allume.(La porte a été ouverte, donc le BP a été relaché x fois, donc intrusion, la lumière rouge est allumée.)
    "Bouton poussoir à 1(Relaché)" et "Int clé à 1(Je peux toujours retirer la clé)" La lumière verte est toujours éteinte, la rouge reste allumée.(La porte a été refermée, donc le BP a été renfoncé x fois, donc intrusion, la lumière rouge reste allumé.)
    "Bouton poussoir à 0(Enfoncé)" et "Int clé à 0(J'ai tourné la serrure pour faire passer à 0, puis remis dans l'état 1 la clé, donc pour reset le système à la base)" La lumière verte s'allume, la rouge s'éteint.(Le propriétaire est venu dans la pièce vérifier si il y avait eu une intrusion, il a donc réinitialiser le système à la base pour indiquer qu'il était chez lui, et qu'il n'était pas un intru pour le système.)

    J’espère avoir été plus clair dans ce que j'aimerai que mon programme fasse...

    Merci encore.

Discussions similaires

  1. [MySQL] Parcourir une requete avec bouton suivant et precedent
    Par Mut dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/02/2011, 14h45
  2. [PHP 5.2] récupération de l'état d'une checkbox avec un formulaire ?
    Par [ZiP] dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2009, 10h21
  3. Effacer une ligne avec bouton
    Par ptitepo dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/05/2008, 13h16
  4. Réponses: 3
    Dernier message: 06/06/2006, 17h38
  5. peut on rafraichir une page avec bouton radio?
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/06/2006, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo