반응형

 

버튼을 누를 시 주사위를 랜덤으로 돌려 승패를 출력하는 실습

 

코드

#include <Wire.h>                        // i2C 통신을 위한 라이브러리
#include <LiquidCrystal_I2C.h>        // LCD 1602 I2C용 라이브러리
LiquidCrystal_I2C lcd(0x27,16,2);     // 접근주소: 0x3F or 0x27

int button = 13; // LCD에서 4,5번 사용

int nYou;
int nCom;

void setup()
{
lcd.init();
lcd.backlight();
pinMode(button, INPUT_PULLUP);
randomSeed(analogRead(A0));

lcd.setCursor(0, 0); //첫번째 줄
lcd.print("YOU : ");
lcd.setCursor(0, 1); //두번째 줄
lcd.print("COM : ");

}

void loop()
{
  if(digitalRead(button) == LOW)
  {
    lcd.setCursor(8, 0); //첫번째 줄
    lcd.print("     ");
    lcd.setCursor(8, 1); //두번째 줄
    lcd.print("     ");
    
    for (int i = 0; i < 10; i++) 
    { //횟수는 적당히 조절
      nYou = random(1, 6);
      lcd.setCursor(6, 0); //YOU : 다음 위치
      lcd.print(nYou);
      nCom = random(1, 6);
      lcd.setCursor(6, 1); //COM : 다음 위치
      lcd.print(nCom);
      delay(200);
    }
  
  
  //판정 부분
    if(nYou > nCom)
    {
      lcd.setCursor(8, 0); //0 또는 1
      lcd.print("WON! ");
      lcd.setCursor(8, 1); //0 또는 1
      lcd.print("     ");
    }
    else if(nYou < nCom)
    {
      lcd.setCursor(8, 0); //0 또는 1
      lcd.print("     ");
      lcd.setCursor(8, 1); //0 또는 1
      lcd.print("WON! ");
    }
    else //(nYou == nCom)
    {
      lcd.setCursor(8, 0); //0 또는 1
      lcd.print("DRAW!");
      lcd.setCursor(8, 1); //0 또는 1
      lcd.print("DRAW!");
    } 
  
    delay(200);
    
  } 
}

 

실행영상

 

외부 TV소리가 나오는곳에서 촬영해서 좀 시끄럽습니다. 양해바랄게요,,, ㅜ 

반응형

+ Recent posts