LCD Arduino не отображается правильно - PullRequest
0 голосов
/ 07 апреля 2020

Моя проблема заключается в том, что при вводе строки в последовательном мониторе она выглядит следующим образом:

Ошибка LCD Arduino SetCursor не работает, а также есть еще один странный символ, созданный до фактического вывод.

Это мой пример кода:

void setup() {

    lcd.begin(16, 2);
    Serial.begin(9600);
    lcd.print("hello, world!");
}

void loop() {

    String readString;
    String Q;
    while (Serial.available()) {
        delay(1);
        if (Serial.available()>0) {
            char c = Serial.read();
            if(isControl(c)){
                break;
            }
            readString += c;
        }
    }
    Q = readString;
    if (Q == "1"){
        lcd.setCursor(0,1);
        lcd.print("Hello");
    }
    if (Q == "2"){
        lcd.setCursor(0,1);
        lcd.print("World");
    }
}

1 Ответ

0 голосов
/ 07 апреля 2020

Прежде всего, вы должны понимать функции библиотеки LCD.
Чтобы установить курсор на первую строку, вам нужно

 lcd.setCursor(0,0);  // row index starts with 0

, если вы только вернули курсор назад без очистки экрана, могут быть странные символы , sodo a

 lcd.clear(); //clears the whole screen

ИЛИ определите пустую строку:

 String lineClear ="                ";  // should be 16 spaces for a 16x2 display

и выполните последовательность очистки (например, для верхней строки)

 lcd.setCursor(0,0);
 lcd.print(lineClear);
 lcd.print("Hello");

Помните Синтаксис:

 lcd.setCursor(col, row)  
 // index for 16x2 is col 0-15,row 0-1 
 // index for 20x4 is col 0-19,row 0-3 

и в настройках также выполните

lcd.clear(); 

после инициализации lcd, чтобы удалить возможные артефакты из буфера

...