• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zapamiętanie poprzedniego stanu przycisku Bluetooth
#1
Witam.
Tworzę projekt do obsługi czujników przez Bluetooth i mam problem z zatrzymaniem stanu poprzedniego naciśnięcia przycisku w aplikacji. Mianowicie chciałbym, żeby po wybraniu danej opcji poprzednia dalej działa a nowa wykonała sie równocześnie. Mój kod wygląda tak:
Kod:
void loop() { 
  lcd.setCursor(9, 1);
  lcd.setCursor(0, 1);
  //lcd_key = Keypad_buttons();
  predkosc();
  delay(100);
    while(Bluetooth.available()){
    zmiana = Bluetooth.read();
    }
    if(digitalRead(12) == 1){
    lcd.clear();
    lcd.print("Bluetooth ");

    if(zmiana == 1){
      bt_rangefinder();
    }
    else if (zmiana == 0){
      bt_rangefinder_cal();
    }
    else if (zmiana == 3){
       Bluetooth.println("WYŁĄCZONY");
    }
    else if (zmiana == 4){
    czujnik_bt();
    }
    }
    else{
      lcd_rangefinder();
    }
 
}
 
Odpowiedź
#2
Robisz sobie dwie zmienne i przepisujesz do nich wartości. Jak jest wciśnięty inny przycisk to przepisujesz z aktualnego do poprzedniego i od razu do aktualnego aktualnie wciśnięty.
W Twoim kodzie nie widać żadnej próby rozwiązania tego problemu, a używając delay() nie ma sensu robić programu, który ma szanse prawidłowo działać. Najpierw naucz się wykorzystywać millis().
Jak chcesz sterować Arduino z BT/UART to wysyłaj całą linijkę tekstu, odbieraj całą linię tekstu (do znaku końca linii lub nowej linii NL/CR), dopiero potem analizuj jakie polecenie otrzymałeś.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości