Adventure Design

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

3. lcd 제어하기

이제 시리얼 머신의 디자인 핵심! LCD를 다뤄볼 차례인데요.

사실 이 과정은 매우 간단하기 때문에.. 자세한 설명은 스킵하겠습니다.

(거짓말이구요. 나중에 차차 추가하겠습니다. ㅋㅋㅋㅋㅋ)

원래 버저버튼을 눌러서 LCD 출력이 바뀌는 코드를 작성하고 싶었으나,

왜인지 모르게 버저버튼을 사용해 회로를 구성하면, 버저를 누르는 순간 

제 컴퓨터와 아두이노간의 통신이 끊기는 일이 자주 발생합니다. 흑흑

그래서 임시방편으로, 시리얼 통신을 사용했습니다.

시리얼 통신으로 제가 컴퓨터에 값을 넣어주면, 그에 따라 LCD의 출력이 바뀌는 형태입니다.

 

컴퓨터으로 제가 lcd에 출력된 a, b, c의 선택지중 한가지를 선택하면

너의 선택은 무엇이다~ 하고 lcd가 알려주는 구조입니다.

 


 

소스코드


LiquidCrystal_I2C lcd(0x3F, 16, 2);
 
void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
}
 
void loop() { 
 
 
    char serial_num;
    
    lcd.setCursor(0,0); 
    lcd.print("  a) chocolate  "); 
 
    lcd.setCursor(0,1);
    lcd.print("b) oreo c) berry");
 
    serial_num = Serial.read();
 
    if(serial_num == 'a')
    {
      lcd.clear();
      lcd.setCursor(0,0);     
      lcd.print("Your Choice: ");
 
      lcd.setCursor(0,1);           
      lcd.print("   chocolate   ");
      delay(3000);
      
    }
 
    else if(serial_num == 'b')
    {
      lcd.clear();
      lcd.setCursor(0,0);         
      lcd.print("Your Choice: ");
 
      lcd.setCursor(0,1);         
      lcd.print("      Oreo     ");
      delay(3000);
 
    }
 
    else if(serial_num == 'c')
    {
      lcd.clear();
      lcd.setCursor(0,0);           // 1번째 줄 0번째 셀부터 입력하게 합니다.
      lcd.print("Your Choice: ");
 
      lcd.setCursor(0,1);           // 1번째 줄 0번째 셀부터 입력하게 합니다.
      lcd.print("      Berry     ");
      delay(3000);
    }
 
}

 

댓글

댓글 본문
graphittie 자세히 보기