このプログラムは、シリアルポートからArduinoのLCDに、そしてシリアルモニターにテキストを書き込むことを目的としています。ただし、代わりに乱数の長い文字列を出力します。文字を配列に格納する必要があるため、シリアルポートを再度読み取ることなくテキストをLCD内で移動できます(これは後で配置する予定です)。私は何が間違っているのですか?
コードは次のとおりです。
// These are the pins our LCD uses.
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
Serial.begin(9600); //Set the serial monitor.
lcd.begin(16, 2); //Set the LCD
}
char ch;
int index = 0;
char line1[17]; //17 is the max length of characters the LCD can display
char line2[17];
void loop() {
lcd.setCursor(0,0); //Set the cursor to the first line.
if( Serial.available() ) { //If the serial port is receiving something it will begin
index=0; //The index starts at 0
do {
char ch = Serial.read(); //ch is set to the input from the serial port.
if( ch == '.' ) { //There will be a period at the end of the input, to end the loop.
line1[index]= '\0'; //Null character ends loop.
index = 17; //index = 17 to end the do while.
}
else
{
line1[index] = ch; //print the character
lcd.print('line1[index]'); //write out the character.
Serial.print('line1[index]');
index ++; //1 is added to the index, and it loops again
}
} while (index != '17'); //Do while index does not = 17
}
}