arduino en bluetooth

hallo ik heb een probleem :~
ik heb een programma geschreven en er staat een fout in.
Als je het programma zou laten controleren via arduino zou hij zeggen dat er geen fouten in staan,
maar als ik het upload op mijn arduinobordje gebeurt er alleen iets als ik op 'a' druk in mijn terminal.niet als je op 'z' drukt.

#include <Time.h> 
#include <Wire.h> 
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t
#include <LiquidCrystal.h> 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int switchPin = 6;
int switchState = 0;
int prevSwitchState = 0;
int reply;
char INBYTE;

void setup() {
  Serial.begin(9600);
 
 setSyncProvider(RTC.get);   // the function to get the time from the RTC
 if(timeStatus()!= timeSet)
 Serial.println("Unable to sync with the RTC");
 else
 Serial.println("RTC has set the system time"); 
 
 pinMode(10, OUTPUT);
}

void loop() {
  Serial.println("druk a in voor de tijd weer te geven, druk z in voor het alarm ");
  while (!Serial.available());   // stay here so long as COM port is empty   
  INBYTE = Serial.read();        // read next available byte
  if( INBYTE == 'a' )    digitalClockDisplay(); 
   delay(1000);
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();
 
lcd.setCursor(2, 0);                                            // Set LCD cursor position (column, row)
lcd.print(hour());
lcd.print(":");
lcd.print (minute());
lcd.print(":");
lcd.print(second());
lcd.print(" ");
lcd.print("");
lcd.setCursor(3, 1);                                           // Set LCD cursor position (column,row) 
lcd.print(day());
lcd.print(".");
lcd.print(month());
lcd.print(".");
lcd.print(year());

// Print text to LCD
                                     // Delay to read text
                               // Clear the display

}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
  
  
  if( INBYTE == 'z' ) switchState = digitalRead(switchPin);

    if (switchState != prevSwitchState) {
      if (switchState == LOW) {


        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("! Overstroming !");
        lcd.setCursor(4, 1);

        switch(reply) {
        case 0:
          lcd.print("Ga naar");
          delay(3000);
        case 1:
          lcd.setCursor(3, 1);
          lcd.print("marktplein");
          delay(3000);
        case 2:
          lcd.setCursor(3, 1);
          lcd.print("te Veurne ");
          delay(3000);
        }
      }
    }
    prevSwitchState = switchState;
  }

kunnen jullie mij helpen ?

Buien het feit om dat je wel op een hele bijzondere plek gaat kijken of INBYTE een "z" bevat moet je wel INBYTE weer vullen... Nu kom je alleen in die routine als je een "a" indrukt. Anders kom je er nooit. En als je eenmaal in die routine komt vul je hem niet meer dus staat er nog een "a" in.

Je doet er beter aan om als er iets in de buffer staat dan lees je een character in INBYTE en ga je via bijvoorbeld een switch case selectie kijken wat je wil doen als het een "a" is of als het een "z" is. En verder is het handig voor je zelf en ook anderen als het wat van die witte vlekken op het scherm vult met commentaar. Kost niets extra en maakt het voor jezelf en andere eenvoudiger om door soms exotische programma's te gaan. :grin: