Skocz do zawartości

Arduino – przełączanie LED


Grinch93

Pomocna odpowiedź

Cześć. Arduino mam od kilku dni więc jeszcze nie za bardzo ogarniam. Postanowiłem napisać program który po wpisaniu frazy "mode1" będzie migał diodą czerwoną, a dioda zaczyna świecić do momentu wpisania ponownie "mode1" nie miga.  Tak wygląda mój kod:

 

#define czerwona 9

String odebraneDane = "";
boolean czerwona1 = false;

void setup() {
  Serial.begin(9600);
  
  pinMode(czerwona, OUTPUT);
  
  digitalWrite(czerwona, LOW);
    }


void loop() {
    if(Serial.available() > 0) {
          odebraneDane = Serial.readStringUntil('\n'); 
          
      if (odebraneDane == "mode1") {
        czerwona1 = !czerwona1;
      digitalWrite(czerwona, czerwona1);
      delay(500);

}
}
}
  

 

Link do komentarza
Share on other sites

Udało mi się rozwiązać problem. 

Brakowało tam pętli do..while. 

Teraz program 10 razy zmieni stan diody czyli zaświeci się 5 razy ale wystarczy zmienić kod w miejscu while na : while ( licznik> 0); i dioda będzie migała cały czas.

#define czerwona 9

String odebraneDane = "";
boolean czerwona1 = false;
int licznik = 0;
void setup() {
  Serial.begin(9600);

  pinMode(czerwona, OUTPUT);

  digitalWrite(czerwona, LOW);
}


void loop() {
  if (Serial.available() > 0) {
    odebraneDane = Serial.readStringUntil('\n');

    if (odebraneDane == "mode1") {
      do {
        czerwona1 = !czerwona1;
        digitalWrite(czerwona, czerwona1);
        delay(1000);
        licznik = licznik + 1;
      } while (licznik < 10);
      digitalWrite(czerwona, LOW);



    }
  }
}

 

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.