Пока петля и HC05 - PullRequest
       23

Пока петля и HC05

0 голосов
/ 05 июня 2019

Добрый вечер нули,

Я объясняю свой проект: я хотел бы создать светодиодную полосу (в нашем случае 10), которая будет воспроизводить функцию цикла до получения другого заказа через модуль hc05 (bluetooth).

Пример:

Когда я посылаю 's', это заставляет меня моргать своим светодиодом и, как только я чувствую, что это происходит. И когда я посылаю 'a', функция меняется и чередуется, сохраняя мой нечетный и четный светодиод. и как только я отправляю 'q', я покидаю свое время, и мой цикл ожидает получения нового сигнала Bluetooth.

Вот мой код сейчас, я блокирую его на 3 дня и не вижу, как я могу это сделать:

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;
      }

  }
...