Sry, das ist eine Speicherung vorher, um auszuprobieren, ob es mit peek()!=-1 (leer) funktionert, kam aber zum selben Ergebnis. Jetzt heißt es:
if(bt.available()){
dataVal=bt.peek()-48;
if(dataVal>=1 && dataVal<=4) blt();
else rewindBt();
}
dataVal ist eine globale Variable die die letzte gesendete Zahl enthält (0 entspricht ja 48).
Danach überprüfe ich, ob die Variable einer brauchbaren Zahl entspricht (Menü geht von Option 1 bis 4), wenn sie brauchbar ist werden weitere Menüs aufgerufen.
Wenn sie nicht brauchbar ist, so wird bt geleert.
Ich verwende im Moment ja auch keine Delays, sondern überprüfe jede loop ob
- etwas gezeichnet werden muss
- Daten über Bluetooth verfügbar sind
Nur ist es so dass delay mein Problem lösen würde, da der Arduino dann ja nicht mehr voll ausgelastet ist.
Welche Möglichkeiten gibt es noch außer Software Serial?