【问题标题】:LCD Arduino not displaying correctlyLCD Arduino 无法正确显示
【发布时间】:2020-04-07 23:52:22
【问题描述】:

我的问题是当我在串行监视器中输入字符串时,它显示如下:

LCD Arduino Error 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");
    }
}

【问题讨论】:

    标签: arduino arduino-uno


    【解决方案1】:

    首先您应该了解 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 后,从缓冲区中删除可能的伪影

    【讨论】:

    • 谢谢 Codebreaker007。我发现问题一直是从 lcd 到 arduino 的电线放置不正确。我已经修复了正确的放置并且它可以工作。
    猜你喜欢
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2014-04-23
    相关资源
    最近更新 更多