Robofun 機器人論壇

標題: I2C 1602LCD 螢幕顯示的問題 [打印本頁]

作者: greenman0723    時間: 2016-3-31 22:35
標題: I2C 1602LCD 螢幕顯示的問題
各位,我是ARDUINO的新手~最近有個關於I2C 1602LCD 螢幕顯示的問題
我發現我使用土壤濕度或者水位,因為他會有個位數跳到百位數的數值起伏,如果一開始是個位數還好,如果開始跳到十位數或者百位數再跳回十位或者個位數時,螢幕就會殘影十位數與百位數的數值,而造成數字上的判讀錯誤。
請問各位是如何克服這個問題的呢??

感謝~

用clear指令配合delay一秒雖然可以解決,但是螢幕一直閃閃閃好不舒服....

又或者能不能將土壤或者水位計的數值改為001,也就是三位數表現,不知道會不會解決(程式碼怎麼讓該數值以三位數表現呢)
作者: 超新手    時間: 2016-4-1 06:27
本帖最後由 超新手 於 2016-4-1 08:26 編輯

除了剛開機(setup),執行clear及顯示必要的字
其他時候(loop),不要用 clear
也不要整個螢幕更新
用固定三位數
把游標移到百位數
每次更新只修改百十個三個數字
作者: greenman0723    時間: 2016-4-1 16:58
請問具體固定三位數的程式寫法該如何寫呢?
我目前寫的方式為
  lcd.setCursor(0, 0);
  lcd.print("M=");
  lcd.print(analogRead(0));

因為該數字會跳一位數或三位數,所以會有殘影....再麻煩各位大大了...
作者: 超新手    時間: 2016-4-1 18:13
本帖最後由 超新手 於 2016-4-1 18:16 編輯

沒試過..有問題自己修改
void setup()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("M=");
}
void loop()
{
  lcd.setCursor(2, 0);
  char str[8];
  sprintf(str, "%3d", analogRead(0));
  lcd.print(str);
  delay(1000);

}




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2