Skocz do zawartości

Sterowanie światłem przez bluetooth z terminala arduino działa a z telefonu nie.


PitoAB

Pomocna odpowiedź

Witam.

Mam dziwny problem. Mianowicie jeśli wgram poniższy program i korzystam z terminala w kompilatorze arduino to wszystko działa, wpisując zapal przekaźnik sterowany pinem 8 włącza się. Jeśli jednak komunikuję się przez bluetooth i z telefonu na windowsie przez BT Terminal wpiszę zapal do zmiennej "dane" zapisze się poprawnie ale warunek if (dane == "zapal") nie zadziała.

Co może byś przyczyną i jak rozwiązać ten problem?

Z góry dziękuję za pomoc.

String dane = "";

void setup() {
 Serial.begin(9600); 
 pinMode(8, OUTPUT); //pin sterujący światłem
 digitalWrite(8, HIGH);// ustawiam stan wysoki bo przekażnik załącza gdy jest stan niski

}
void loop() {
 if(Serial.available() > 0) { //Czy Arduino odebrano dane
   //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane
   dane = Serial.readStringUntil('\n'); 
   Serial.println(dane);//sprawdzenie co zapisało się do zmiennej

   if (dane == "zapal") { //warunek zapala światło
     digitalWrite(8, LOW); 
     Serial.println("zapalona");  
   }

   if (dane == "zgas") { //warunek gasi światło
     digitalWrite(8, HIGH); 
     Serial.println("zgaszona");

   }
 }
}
Link do komentarza
Share on other sites

Tak to jest przyczyną. Wielkie dzięki.

Zamieszczam poprawiony kodzik.

String dane = "";

void setup() {
 Serial.begin(9600); 
 pinMode(8, OUTPUT); //pin sterujący światłem
 digitalWrite(8, HIGH);// ustawiam stan wysoki bo przekażnik załącza gdy jest stan niski

}
void loop() { 
 if(Serial.available() > 0) { //Czy Arduino odebrano dane
   //Jeśli tak, to odczytujemy je do znaku końca linii i zapisz w zmiennej odebraneDane
   dane = Serial.readStringUntil('\n'); 
   Serial.println(dane);//sprawdzenie co zapisało się do zmiennej

   if (dane == "zapal\r" || dane == "zapal") { //warunek zapala światło
     digitalWrite(8, LOW); 
     Serial.println("zapalona");  
   }

   if (dane == "zgas\r" || dane == "zgas") { //warunek gasi światło
     digitalWrite(8, HIGH); 
     Serial.println("zgaszona"); 
   }
 }
}
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.