This program is meant to read an input, and write it out in the Arduino’s serial monitor. The issue that it only write one character in the serial monitor.
void setup()
{
Serial.begin(9600); //Set the serial monitor.
lcd.begin(16, 2); //Set the LCD
}
// Alignment variables
boolean left = true; //Set boolean left to true to begin to display text in middle of screen.
boolean right = false; //Other possible align booleans set to false
boolean select = false;
//Text show/hide variables
boolean show1 = true; //Both values set to true to display on start up.
boolean show2 = true;
//Serial input
char serialinput [4] = {0}; //For 3 value input, and null character to end.
char line1;
void loop()
{
if (Serial.available() > 0) { //If the serial monitor is open it will read a value.
line1 = Serial.read();
Serial.print(line1);
memmove (serialinput, &serialinput[1], 3); //copy the value to memory
serialinput [2] = Serial.read(); //value is read.
//if statements for each possible input.
}
Serial.read doesn’t wait for the end of a string. If you’re trying to read a few characters (implied by [4]) you only need to include a short delay() after serial.read to allow enough time for the buffer to completely dump the string.