Partage
  • Partager sur Facebook
  • Partager sur Twitter

double condition

Sujet résolu
    31 janvier 2022 à 23:09:35

    bonjour/bonsoir,

    je viens de débuter l'Arduino et je rencontre déjà un problème qui me parait tout bête mais que je n'arrive pas a résoudre.

    En gros j'essaye de mettre 2 switches pour activer 2 led séparément mais ça ne fonctionne pas … Et je ne comprends pas pourquoi :')

    Si qqun sait comment m'aider je veut bien :D

    Merci 

    int LED = 2;
    int switch1 = 13;
    int LED2 = 3;
    int switch2 = 12;
    
    void setup() {
      pinMode(LED, OUTPUT);
      pinMode(switch1, INPUT);
      pinMode(LED2, OUTPUT);
      pinMode(switch2, INPUT);
    }
    
    void loop() {
      if(digitalRead(switch1) == 1){
        digitalWrite(LED, HIGH);
      }
      else{
        digitalWrite(LED, LOW);
      }
      if(digitalRead(switch2) == 1){
        digitalWrite(LED2, HIGH);
      }
      else{
        digitalWrite(LED2, LOW);
      }
    }

    je mets aussi le montage que j'ai fait (sur un simulateur) bon il est pas très beau mais c'est juste pour tester 



    • Partager sur Facebook
    • Partager sur Twitter
      1 février 2022 à 14:31:11

      Bonjour, que fait ton programme du coup? En quoi ne fonctionne-t-il pas?

      Ton compilateur va-t-il plus loin que le premier else? En général on met un else pour le dernier élément d'une boucle if.

      • Partager sur Facebook
      • Partager sur Twitter
        1 février 2022 à 14:45:00

        Tout d'abord, il manque une résistance sur ta LED, tu vas cramer ta LED et/ou ta carte arduino si tu n'en mets pas.

        Ensuite, il manque aussi la résistance de polarisation de l'état inverse sur tes entrées interrupteurs.

        En effet, quand l'interrupteur est fermé, il commune le 5V sur la pin donc tu va lire un HIGH, mais quand l'interrupteur est ouvert, la pin n'est connectée à rien du tout, elle fait officie d'antenne radio et peut capter tout et n'importe quoi et donc être aussi bien à HIGH qu'à LOW.

        Vu que tu utilise un interrupteur coté 5V, il va te falloir ajouter une résistance entre ta pin et le GND qui va servir à polariser ta pin à l'état LOW quand l'interrupteur est ouvert.

        Mais généralement, on fait plutôt l'inverse avec une résistance de pull up coté 5V et un interrupteur coté GND.

        Je t'invite à aller faire un petit tour sur ce tutoriel pour en apprendre d'avantage : https://eskimon.fr/tuto-arduino-204-un-simple-bouton

        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2022 à 18:41:05

          lorrio a écrit:

          Tout d'abord, il manque une résistance sur ta LED, tu vas cramer ta LED et/ou ta carte arduino si tu n'en mets pas.

          Ensuite, il manque aussi la résistance de polarisation de l'état inverse sur tes entrées interrupteurs.

          En effet, quand l'interrupteur est fermé, il commune le 5V sur la pin donc tu va lire un HIGH, mais quand l'interrupteur est ouvert, la pin n'est connectée à rien du tout, elle fait officie d'antenne radio et peut capter tout et n'importe quoi et donc être aussi bien à HIGH qu'à LOW.

          Vu que tu utilise un interrupteur coté 5V, il va te falloir ajouter une résistance entre ta pin et le GND qui va servir à polariser ta pin à l'état LOW quand l'interrupteur est ouvert.

          Mais généralement, on fait plutôt l'inverse avec une résistance de pull up coté 5V et un interrupteur coté GND.

          Je t'invite à aller faire un petit tour sur ce tutoriel pour en apprendre d'avantage : https://eskimon.fr/tuto-arduino-204-un-simple-bouton


          a oui effectivement j'ai fait un peu n'importe quoi :') je vais donc regarder le lien que tu m'as envoyé pour comprendre tout ça. 

          Merci beaucoup :D 

          • Partager sur Facebook
          • Partager sur Twitter

          double condition

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown