Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino while et HC05

    5 juin 2019 à 22:34:28

    Bonsoir les zéros,

    je vous explique mon projet : j'aimerai créer une bande led (10 en l'occurence) qui jouerait une fonction en boucle jusqu'a recevoir un ordre différent via un module hc05 (bluetooth).

    Exemple:

    j'envoi 's', sa me fait clignoter mes led et dès que j'en ai envie j'envoi 'a' et la fonction change et alterne mainteant mes led pair et impairs. et dès que j'envoi 'q' je sort de mes while et ma loop attend de recevoir un nouveau signal bluetooth.

    Voila mon code actuellement, je bloque dessus depuis 3jour et je voit pas comment je peut faire :

    const int LedPin[] = {2,3,4,5,6,7,8,9,10};
    String inputString="";
    int state = 0;
    
    void setup(){
      Serial.begin(9600);
      for(int i = 0;i< sizeof(LedPin);i++){
          pinMode(LedPin[i], OUTPUT);
      }
      
    }
    
    void loop(){
      char val;
    
      if (Serial.available() > 0) {
        val = tolower(Serial.read());   // in case the enter upper case
        switch (val) {
          case 's':
            Ledsnake();
            Serial.println("ledon");
            break;
          case 'a':
            LedAltern();
            break;
          case 'q':
            break;
        }
      }
    }
    
    void Ledsnake(){
        for(int i=0;i< sizeof(LedPin);i++){
          digitalWrite(LedPin[i],HIGH);
          delay(500);
      }
      for(int i=0;i< sizeof(LedPin);i++){
         digitalWrite(LedPin[i],LOW);
         delay(500);
      }
    }
    
    void LedAltern(){
      bool pair = false;
      
          if(pair)
          {
            for(int j = 0; j<sizeof(LedPin);j+=2)
            {
              digitalWrite(LedPin[j], HIGH);
            }
            delay(500);
            for(int j = 0; j<sizeof(LedPin);j+=2)
            {
              digitalWrite(LedPin[j], LOW);
            }
            delay(500);
            pair = false;
          }
          else
          {
            for(int j = 1; j<sizeof(LedPin);j+=2)
            {
              digitalWrite(LedPin[j], HIGH);
            }
            delay(500);
            for(int j = 1; j<sizeof(LedPin);j+=2)
            {
              digitalWrite(LedPin[j], LOW);
            }
            delay(500);
            pair = true;
          }
    
      }
    En espérant que vous pourrez m'aidez. a plus et bonne soirée amis zéros !
    • Partager sur Facebook
    • Partager sur Twitter
      6 juin 2019 à 9:49:23

      Salut,

      Il faudrait sortir ton case du test ligne 16. Sinon tes fonction ne seront pas appelées avec un buffer vide.

      Bonne continuation.

      • Partager sur Facebook
      • Partager sur Twitter

      Bonhomme !! | Jeu de plateforme : Prototype.

      Arduino while et HC05

      × 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