z887925 發表於 2015-5-29 00:40:06

Arduino lcd 顯示問題

請問各位大大 最近在研究使用Android藍芽連接Arduino顯示LCD
輸入Hello Worid後來再輸入Apple
不過字都無法清除乾淨 還有殘留
請各位大大幫忙
以下是我的程式
#include <Wire.h>
#include <LiquidCrystal.h>

#define MAX_BTCMDLEN 128

byte cmd;
int len = 0;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

char str;
int insize, ii, tick;

void setup() {
    Serial.begin(115200);   
    Serial3.begin(115200);
    lcd.begin(16, 2);
}

void loop() {
    tick = 0;
    insize=0;
    ii=0;
    len=0;
    while ( tick<MAX_BTCMDLEN ) {
      if ( (insize=(Serial3.available()))>0 ){
            delay(10);
            for ( ii=0; ii<insize; ii++ ){
                cmd[(len++)%MAX_BTCMDLEN]=char(Serial3.read());
            }
      } else {
            tick++;
      }
    }
    if ( len ) {
      sprintf(str,"%s",cmd);
      Serial.println(str);
      lcd.clear();
      lcd.print(str);
      cmd[(len++)%MAX_BTCMDLEN] = 0;
    }
}

BlackJa 發表於 2015-5-29 22:40:08

你是不是忘了清畫面

這間公司的
http://www.ltc.com.tw/product_info.php/products_id/60591
序號指令RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1清屏0 0 0 0 0 0 0 0 0 1

z887925 發表於 2015-5-31 16:14:14

回復 2# BlackJa


有阿lcd.clear()這個不是清理螢幕的嗎?

BlackJa 發表於 2015-5-31 23:41:59

回復BlackJa


有阿lcd.clear()這個不是清理螢幕的嗎?
z887925 發表於 2015-5-31 16:14 http://www.robofun.net/forum/images/common/back.gif


加延遲時間試看看. 你的型號要不要丟出來看看.
我還沒玩到LED = = 只能猜流程面...

z887925 發表於 2015-6-3 11:14:15

回復 4# BlackJa


Arduino型號為MEGA 2560有加延遲試過了好像只是增加清平時間而已

還是無法清除乾淨

BlackJa 發表於 2015-6-10 01:04:35

我又看了一下你的程式 這段有少嗎?
通常不是要有 = 或是 <> 我有沒有看錯..?len = 0 才清除 或是 len <>0 ?
if ( len ) {
      sprintf(str,"%s",cmd);
      Serial.println(str);
      lcd.clear();
      lcd.print(str);
      cmd[(len++)%MAX_BTCMDLEN] = 0;
    }
頁: [1]
查看完整版本: Arduino lcd 顯示問題