Arduino/캐릭터 LCD

입력한 글이 캐릭터 LCD창에서 밑에서 위로 올라가는 것처럼 보이게 하기

DesignatedRoom 2020. 10. 27. 18:25

아래의 serialEvent함수는 Serial.available함수와 같은 역할을 한다.

 

소스 코드

//  시리얼 창으로 문자열을 입력하면, 캐릭터 LCD창에서는 
//  입력한 글이 밑에서 위로 올라가는 것처럼 보이도록 작성해보자.
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop() {
 
}

//  각 배열의 길이가 16인 이유는
//  캐릭터 LCD는 가로로 16글자를 입력할 수 있기 때문이다.

char buf[16];
char line0[16],line1[16];
int line = 0;

void serialEvent(){
  memset(buf,' ',16);
  int readCount=Serial.readBytes(buf,16);
  lcd.print(buf);
  if(line==0){line=1;}
  if(line==1){lcd.setCursor(0,1); strcpy(line0,line1);line=2;}
  if(line==2){
  lcd.setCursor(0,0);lcd.print(line1);
  memset(line1,' ',16);
  strcpy(line1,buf);
  lcd.setCursor(0,1);}
}