Skip to main content
Bumped by Community user
Bumped by Community user
added 4 characters in body
Source Link
dda
  • 1.6k
  • 1
  • 12
  • 18

I am trying to compare whether the user input matches a user ID or not. When I read the input from serial, the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against the stored user ID and I don't understand why it's taking the '\n' value instead of the actual user input.

int Gled = 7;
int Rled = 8;
int wait = 5000;
char UserID = "12345";
char data;
char incoming;

void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
}

void loop() {
  if(Serial.available()>0) {
    while(1) {
      data=Serial.read(); //read user input and move to data char
      if(data !='n'='\n')
        incoming = data; //if data dontdoesn't equal newline data = incoming
      if (data == '\n')
        break; // newline char detected break
      if (data == -1) //continue reading all of user input
        continue;
      Serial.print(data);
      Serial.print(incoming);
    }
    Serial.println(incoming);
    if(incoming == UserID) { //if user input matches run statement
      digitalWrite(Gled, HIGH);
      Serial.println();
      Serial.println("Access Granted");
      Serial.println("Hello User Name");
      delay(wait);
      Serial.println("Login time exceeded, you are now logged out.");
      Serial.println("Reenter your UserID to log back in.");
      digitalWrite(Gled, LOW);
      Serial.end();
      Serial.begin(9600);
    } else if(incoming != UserID){
      //user input doesn't match run statement
      digitalWrite(Rled, HIGH);
      Serial.println();
      Serial.println("Access Denied");
      Serial.end();
      delay(wait);
      Serial.begin(9600);
      digitalWrite(Rled, LOW);
      Serial.println("Please Enter a Valid ID to Continue.");
    }
  }
}

I am trying to compare whether the user input matches a user ID or not. When I read the input from serial, the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against the stored user ID and I don't understand why it's taking the '\n' value instead of the actual user input.

int Gled = 7;
int Rled = 8;
int wait = 5000;
char UserID = "12345";
char data;
char incoming;

void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
}

void loop() {
  if(Serial.available()>0) {
    while(1) {
      data=Serial.read(); //read user input and move to data char
      if(data !='n')
        incoming = data; //if data dont equal newline data = incoming
      if (data == '\n')
        break; // newline char detected break
      if (data == -1) //continue reading all of user input
        continue;
      Serial.print(data);
      Serial.print(incoming);
    }
    Serial.println(incoming);
    if(incoming == UserID) { //if user input matches run statement
      digitalWrite(Gled, HIGH);
      Serial.println();
      Serial.println("Access Granted");
      Serial.println("Hello User Name");
      delay(wait);
      Serial.println("Login time exceeded, you are now logged out.");
      Serial.println("Reenter your UserID to log back in.");
      digitalWrite(Gled, LOW);
      Serial.end();
      Serial.begin(9600);
    } else if(incoming != UserID){
      //user input doesn't match run statement
      digitalWrite(Rled, HIGH);
      Serial.println();
      Serial.println("Access Denied");
      Serial.end();
      delay(wait);
      Serial.begin(9600);
      digitalWrite(Rled, LOW);
      Serial.println("Please Enter a Valid ID to Continue.");
    }
  }
}

I am trying to compare whether the user input matches a user ID or not. When I read the input from serial, the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against the stored user ID and I don't understand why it's taking the '\n' value instead of the actual user input.

int Gled = 7;
int Rled = 8;
int wait = 5000;
char UserID = "12345";
char data;
char incoming;

void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
}

void loop() {
  if(Serial.available()>0) {
    while(1) {
      data=Serial.read(); //read user input and move to data char
      if(data !='\n')
        incoming = data; //if data doesn't equal newline data = incoming
      if (data == '\n')
        break; // newline char detected break
      if (data == -1) //continue reading all of user input
        continue;
      Serial.print(data);
      Serial.print(incoming);
    }
    Serial.println(incoming);
    if(incoming == UserID) { //if user input matches run statement
      digitalWrite(Gled, HIGH);
      Serial.println();
      Serial.println("Access Granted");
      Serial.println("Hello User Name");
      delay(wait);
      Serial.println("Login time exceeded, you are now logged out.");
      Serial.println("Reenter your UserID to log back in.");
      digitalWrite(Gled, LOW);
      Serial.end();
      Serial.begin(9600);
    } else if(incoming != UserID){
      //user input doesn't match run statement
      digitalWrite(Rled, HIGH);
      Serial.println();
      Serial.println("Access Denied");
      Serial.end();
      delay(wait);
      Serial.begin(9600);
      digitalWrite(Rled, LOW);
      Serial.println("Please Enter a Valid ID to Continue.");
    }
  }
}
deleted 35 characters in body; edited title
Source Link
dda
  • 1.6k
  • 1
  • 12
  • 18

reading Reading serial buffer taking new linenewline character instead of user input

I am trying to compare ifwhether the user input matches the UserIDa user ID or not. When I serial read the input from serial, the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against the stored UserIDuser ID and I dontdon't understand why itsit's taking the '\n' value instead of the actual user input.

  int Gled = 7;
  int Rled = 8;
  int wait = 5000;
  char UserID = "12345";
  char data;
  char incoming;

 void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
 }

 void loop() {
  if(Serial.available()>0) {
    while(1) {
      data=Serial.read();     //read user input and move to data char
      if(data !='n')          
        incoming = data;     //if data dont equal newline data = incoming
      if (data == '\n') 
        break;               // newline char detected break
      if (data == -1)         //continue reading all of user input 
         continue;
      Serial.print(data);
      Serial.print(incoming);
    }
    Serial.println(incoming);
    if(incoming == UserID){        { //if user input matches run statement
      digitalWrite(Gled, HIGH);
      Serial.println();
      Serial.println("Access Granted");
      Serial.println("Hello User Name");
      delay(wait);
      Serial.println("Login time exceeded, you are now logged out.");
      Serial.println("Reenter your UserID to log back in.");
      digitalWrite(Gled, LOW);
      Serial.end();
      Serial.begin(9600);
    
      }
   else if(incoming != UserID){   
      //user input dontdoesn't match run statement
      digitalWrite(Rled, HIGH);
      Serial.println();
      Serial.println("Access Denied");
      Serial.end();
      delay(wait);
      Serial.begin(9600);
      digitalWrite(Rled, LOW);
      Serial.println("Please Enter a Valid ID to Continue.");
 
      }
    }
 }

reading serial buffer taking new line character instead of user input

I am trying to compare if user input matches the UserID or not. When I serial read the input the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against stored UserID and I dont understand why its taking the '\n' value instead of the actual user input.

  int Gled = 7;
  int Rled = 8;
  int wait = 5000;
  char UserID = "12345";
  char data;
  char incoming;

 void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
 }

 void loop() {
  if(Serial.available()>0){
   while(1){
     data=Serial.read();     //read user input and move to data char
     if(data !='n')          
        incoming = data;     //if data dont equal newline data = incoming
     if (data == '\n') 
        break;               // newline char detected break
     if (data == -1)         //continue reading all of user input 
         continue;
     Serial.print(data);
     Serial.print(incoming);
   }
   Serial.println(incoming);
   if(incoming == UserID){         //if user input matches run statement
     digitalWrite(Gled,HIGH);
     Serial.println();
     Serial.println("Access Granted");
     Serial.println("Hello User Name");
     delay(wait);
     Serial.println("Login time exceeded, you are now logged out.");
     Serial.println("Reenter your UserID to log back in.");
     digitalWrite(Gled,LOW);
     Serial.end();
     Serial.begin(9600);
    
      }
   else if(incoming != UserID){        //user input dont match run statement
     digitalWrite(Rled,HIGH);
     Serial.println();
     Serial.println("Access Denied");
     Serial.end();
     delay(wait);
     Serial.begin(9600);
     digitalWrite(Rled,LOW);
     Serial.println("Please Enter a Valid ID to Continue.");
 
      }
    }
 }

Reading serial buffer taking newline character instead of user input

I am trying to compare whether the user input matches a user ID or not. When I read the input from serial, the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against the stored user ID and I don't understand why it's taking the '\n' value instead of the actual user input.

int Gled = 7;
int Rled = 8;
int wait = 5000;
char UserID = "12345";
char data;
char incoming;

void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
}

void loop() {
  if(Serial.available()>0) {
    while(1) {
      data=Serial.read(); //read user input and move to data char
      if(data !='n')
        incoming = data; //if data dont equal newline data = incoming
      if (data == '\n')
        break; // newline char detected break
      if (data == -1) //continue reading all of user input
        continue;
      Serial.print(data);
      Serial.print(incoming);
    }
    Serial.println(incoming);
    if(incoming == UserID) { //if user input matches run statement
      digitalWrite(Gled, HIGH);
      Serial.println();
      Serial.println("Access Granted");
      Serial.println("Hello User Name");
      delay(wait);
      Serial.println("Login time exceeded, you are now logged out.");
      Serial.println("Reenter your UserID to log back in.");
      digitalWrite(Gled, LOW);
      Serial.end();
      Serial.begin(9600);
    } else if(incoming != UserID){ 
      //user input doesn't match run statement
      digitalWrite(Rled, HIGH);
      Serial.println();
      Serial.println("Access Denied");
      Serial.end();
      delay(wait);
      Serial.begin(9600);
      digitalWrite(Rled, LOW);
      Serial.println("Please Enter a Valid ID to Continue.");
    }
  }
}
Source Link
1fastk
  • 15
  • 1
  • 7

reading serial buffer taking new line character instead of user input

I am trying to compare if user input matches the UserID or not. When I serial read the input the program is taking the last character which is newline char '\n' and moving it into the char data value to compare against stored UserID and I dont understand why its taking the '\n' value instead of the actual user input.

  int Gled = 7;
  int Rled = 8;
  int wait = 5000;
  char UserID = "12345";
  char data;
  char incoming;

 void setup() {
  Serial.begin(9600);
  pinMode(Gled,OUTPUT);
  pinMode(Rled,OUTPUT);
  Serial.println("Please Enter your username or ID:");
 }

 void loop() {
  if(Serial.available()>0){
   while(1){
     data=Serial.read();     //read user input and move to data char
     if(data !='n')          
        incoming = data;     //if data dont equal newline data = incoming
     if (data == '\n') 
        break;               // newline char detected break
     if (data == -1)         //continue reading all of user input 
         continue;
     Serial.print(data);
     Serial.print(incoming);
   }
   Serial.println(incoming);
   if(incoming == UserID){         //if user input matches run statement
     digitalWrite(Gled,HIGH);
     Serial.println();
     Serial.println("Access Granted");
     Serial.println("Hello User Name");
     delay(wait);
     Serial.println("Login time exceeded, you are now logged out.");
     Serial.println("Reenter your UserID to log back in.");
     digitalWrite(Gled,LOW);
     Serial.end();
     Serial.begin(9600);
    
      }
   else if(incoming != UserID){        //user input dont match run statement
     digitalWrite(Rled,HIGH);
     Serial.println();
     Serial.println("Access Denied");
     Serial.end();
     delay(wait);
     Serial.begin(9600);
     digitalWrite(Rled,LOW);
     Serial.println("Please Enter a Valid ID to Continue.");

      }
    }
 }