'Clearing Arduino's serial buffer
i have a simple arduino code:
void loop()
{
  if serial.available
  {
    c = serial.read();
    if (c == 'a')
    {
      blinkled();
    }
    else
      offled();
  }
}
it should glow the led if i send a character 'a'. and it shld go off when i dont give anything when the loop goes into the next itration.
but once i give 'a'. it starts glowing and never goes off.
is it reading the char 'a' from the buffer? if so then how to clear it ?
Serial.flush() not working.
any ideas please. am new to arduino. sorry if its silly.
Solution 1:[1]
You have put your offled function INSIDE the Serial.available() path. You could only turn it off by Serial.available() being true and you pushing a different character so it reads something other than 'a'
Unfortunately the example above makes the same mistake.
Construct it so that the led turns off outside that if statement
Solution 2:[2]
You could use something like this:
void loop() {
    while (Serial.available() > 0)
    {
        char received = Serial.read();
        inData += received; 
        // Process message when new line character is received
        if (received == '\n')
        {
            Serial.print("Arduino Received: ");
            Serial.print(inData);
            // You can put some if and else here to process the message juste like that:
            if(inData == "a\n"){ // DON'T forget to add "\n" at the end of the string.
              Serial.println("OK, I'll blink now.");
              blinkled();
            }
            else if (inData == "b\n") {
              offled();
            }   
            inData = ""; // to flush the value.
        }
    }
}
EDIT : I've modified my answer based on the correct answer.
Solution 3:[3]
This could be a solution:
void loop()
{
    offled();    
    char c = Serial.read();
    while (Serial.available() <= 0 || c != 'a') { 
        blinkled();      
    }
}
    					Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | djUniversal | 
| Solution 2 | |
| Solution 3 | rfgdfg | 
