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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.