0

I have a problem , when send 1 or 0 by Bluetooth module the serial monitor print two time (RECEIVED SMS) . what's the wrong ?

This is my code :

   char BluetoothData = 0 ; 
void setup() {
  // initialize serial communication:
  Serial.begin(9600);
    for (int pin = 1; pin <= 13; pin++)
     {
       pinMode(pin, OUTPUT); // sets the digitals pin  as outputs
       digitalWrite(pin, LOW); // sets the digitals pin off defult intial states 
     }  
       Serial.println("ALL LEDs NOW OFF \n "); 
       Serial.println("Please, Enter : ( 1 to Turn on All LEDs )  or ( 0 to Turn off LEDs ) \n");
}
void loop() {            
  // read the sensor:
  if (Serial.available() > 0) {

        BluetoothData = Serial.read();
            Serial.print("*** RECEIVED SMS *** : ==>> ");
            Serial.println(BluetoothData);

        if (BluetoothData == '1'){ 
        for (int Pin = 1; Pin <= 13; Pin++) {
          digitalWrite(Pin, HIGH);
          }  
          Serial.println("ALL LEDs NOW ON");
         }
        // turn all the LEDs off:
   else if (BluetoothData == '0') {
        for (int Pin = 1; Pin <= 13; Pin++) {
          digitalWrite(Pin, LOW);
          }
          Serial.println("ALL LEDs NOW OFF"); 
         }
  }
   delay(100);  
} 

This is photo for serial monitor

enter image description here

  • Please do not post photos of the output, rather select the text, then copy/paste the text into the question, as indented code – user3629249 Apr 2 at 23:37
  • for ease of readability and understanding: 1) please consistently indent the code. Indent after every opening brace '{'. Unindent before every closing brace '}'. Suggest each indent level be 4 spaces. – user3629249 Apr 2 at 23:39
  • the posted code does not contain a main() function, not the necessary #include statements. So how are we to reproduce the problem? – user3629249 Apr 2 at 23:41
  • I cannot understand all the functions and terms of the site. I weak in that, is there a video that explains the matter? – Khalid Abu-Khadija Apr 3 at 7:34
2

Probably the first time because you received the character '1' or '0'. The second character is probably a '\0' or '\d', an end-of-string or end-of-line character.

You can easily check this by printing the value of each received character, like

Serial.println((int)(BluetoothData));

You probably see the value for '0' (48), '1' (49), end of string '0' of end of line '13' or maybe '10' (new line).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.