【问题标题】:Lcd screen prints weird symbols instead of numbers液晶屏幕打印奇怪的符号而不是数字
【发布时间】:2015-07-27 09:14:15
【问题描述】:

我正在尝试用树莓派和 arduino 做一个闹钟。我一直有这个问题,当我使用串行通信发送一个号码时,液晶显示器不打印号码。我知道 arduino 正在获取号码,由于某种原因它不会打印它。相反,它会打印奇怪的符号和线条。 This article shows how i use serial communication between them这是我的arduino代码。

#include <LiquidCrystal.h>


const int ledPin = 13;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup()
{
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.setCursor(0,1);
  lcd.print("crystralball");
}

void loop()
{

  if (Serial.available())
  {
     flash(Serial.read() - '0');
  }
  delay(1000);
}

void flash(int n)
{
  for (int i = 0; i < n; i++)
  {
    digitalWrite(ledPin, HIGH);
    lcd.clear();
    lcd.write(n);
    Serial.print(n);
    Serial.flush();
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
  }

}

【问题讨论】:

    标签: arduino serial-port raspberry-pi


    【解决方案1】:

    您好,尝试像这样在循环中更改您的代码。

    for (int i = 0; i < n; i++){
        digitalWrite(ledPin, HIGH);
        lcd.clear();
        lcd.print(String(n));
        Serial.print(n);
        Serial.flush();
        delay(100);
        digitalWrite(ledPin, LOW);
        delay(100);
    }
    

    你必须使用方法 print 并传递一个字符串。

    【讨论】:

    • 谢谢,成功了!你能解释一下为什么它会起作用吗?
    • 因为 arduino ide 有点奇怪.. 我是在开玩笑,但你必须先将 int 值转换为字符串才能在 lcd 上写入。而在 lcd 上写入的正确方法是 print(),这是库要求的。
    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多