Skocz do zawartości

Użycie przycisku do przełączania się między pętlami


MrReus

Pomocna odpowiedź

Pisząc dalej swój kod napotkałem się na kolejny problem. Chce dodać funkcjonalność Bluetooth i żeby, gdy połączę się z telefonem program przeskakiwał do odpowiedniej funkcji. Użyłem pin'u STATE do sprawdzania stanu połączenia, ale niestety to nie działa.

void loop() {
if(digitalRead(STATE) == 0){
  while(digitalRead(STATE) == 0){
  if (digitalRead(buttonPin) == LOW) {
    delay(1000);
    stan = 0;
    while (stan == 0) {
      joystick();
        if (digitalRead(buttonPin) == LOW) {
          stan = 1;
          }
      }
    }
  if (digitalRead(buttonPin) == LOW) {
    delay(1000);
    stan = 1;
    while (stan == 1) {
      gyro();
      if (digitalRead(buttonPin) == LOW) {
        stan = 0;
        }
      }
    }
}
}
if(digitalRead(STATE) == 1){
  while(digitalRead(STATE) == 1){
  bluetooth_control();
  }
}

 

Link do komentarza
Share on other sites

51 minut temu, farmaceuta napisał:

A na STATE faktycznie dpstajesz stan wysoki po polaczeniu??

Tak, ale z jakiegoś powodu to nie chce działać. To znaczy może inaczej, jak pierwszą rzeczą, która zrobię jest połączenie się przez Bluetooth to działa, ale jak najpierw użyje innego trybu sterowania to już łączenie się przez Bt nic nie daje 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

18 minut temu, MrReus napisał:

To znaczy może inaczej, jak pierwszą rzeczą, która zrobię jest połączenie się przez Bluetooth to działa, ale jak najpierw użyje innego trybu sterowania to już łączenie się przez Bt nic nie daje 

A moze tu tkwi problem?

while (stan == 1) {
      gyro();
      if (digitalRead(buttonPin) == LOW) {
        stan = 0;
        }

I moze tu tez..

while (stan == 0) {
      joystick();
        if (digitalRead(buttonPin) == LOW) {
          stan = 1;
          }

Jak wejdziesz do tych "while" to juz nie sprawdzisz warunku od blu, bo "if" jest poza petlami...spruboj wkleic tego "if'a" do kazdej petli "while" na koncu...i po podlaczeniu blu powinienes wykonywac kod tak jak chcesz...

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.