CLCD는 정보를 직접적으로 출력할 수 있어서 매우 유용하다. 시리얼 모니터로 출력을 할 수도 있지만 아두이노 자체에서 출력을 한다는 것에 큰 의의가 있고 편리함이 있다고 생각한다. 이것을 이용하면 간단하면서도 재미있는 것들을 만들 수 있다. 그 중에서 생각난 것(시간과 관련된 것)을 소개해볼까 한다.


1. PC 사용 시간 출력

   아두이노를 PC와 연결해놓으면 PC를 부팅해서 전원이 공급되는 순간부터 바로 아두이노가 동작한다. 따라서 타이머로 설정하면 PC 사용 시간을 알 수 있다. 현재 실제로 사용중이기도 하다.


 다소 조잡하지만 스케치는 아래와 같다.

// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte newChar[8] = { B00000, B11111, B00001, B11111, B00001, B00001, B00001, B00000 };
int h=0,m=0,s=0;

void setup() {
// set up the LCD's number of columns and rows:
lcd.createChar(0, newChar);
lcd.begin(16, 2);


lcd.print("PC Using Time ");
lcd.write(*newChar);
lcd.write(*newChar);
}
void loop() {
lcd.setCursor(0, 1);
if(s!=0&&(s%60)==0)
{
  s=0;
  m++;
}

if(m!=0&&(m%60)==0)
{
  m=0;
  h++;
}

lcd.print(h);
lcd.print("h  ");
lcd.print(" ");
lcd.print(m);
lcd.print("m  ");
lcd.print(" ");
lcd.print(s);
lcd.print("s");
lcd.print(" ");
lcd.print(" ");
lcd.print(" ");
lcd.print(" ");
s++;
delay(1000);


 이 스케치에 대한 결과물은 다음 사진에서 확인할 수 있다.


 ㅋㅋ와 같은 문자를 입력하기 위해서는 http://mikeyancey.com/hamcalc/lcd_characters.php 이곳을 방문하여 커스터마이징 하면 된다.


2. LOL 용 리젠 타이머

   일단 이것은 수동이라는 것을 알아 두어야 한다. 자동 타이머가 있다고 들은 것 같기도 한데 그것은 라이엇 게임즈에서 허용하지 않는 방법이다. 롤 자체의 프로그램에서 어떤 값을 일종의 하이재킹 해야 가능한 일이기 때문이다. 그만한 기술도 없고 일단 허용되지 않은 일이다. 여기서 소개하는 것은 용 리젠 시간인 6분(=360초)에 대한 단순한 타이머의 역할을 한다. 대신 아두이노에는 리셋 버튼이 있기 때문에 용을 처치하고 리셋 버튼을 누르면 다시 리젠 시간을 측정할 수 있으므로 어느 정도 잘 이용한다면 나름대로 유용 할 수 있다고 생각한다. 물론 스마트폰 앱도 많겠지만 말이다. 그냥 하나의 예제로 봐주면 감사하겠다.


 시간 카운터 하는 방법만 바꿔 주면 된다.

// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte newChar[8] = { B00000, B11111, B00001, B11111, B00001, B00001, B00001, B00000 };
int d=360;

void setup() {
// set up the LCD's number of columns and rows:
lcd.createChar(0, newChar);
lcd.begin(16, 2);

lcd.print("LOL Dragon Timer ");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
if(d==-1)
{
  d=360;
}
lcd.print(d);
lcd.print("s");
lcd.print(" ");
lcd.print(" ");
d--;


delay(1000);

}




 결과물은 위와 같고 블루, 레드, 바론에 대한 것으로도 쉽게 바꿀 수 있다.


 깊이 있는 내용은 아니지만 흥미가 있는 예제를 가지고서 자발적으로 구현에 임하면 효과적인 연습이 되지 않을까 싶다.

'프로그래밍 > Arduino' 카테고리의 다른 글

LED 주사위  (0) 2014.08.04
아두이노 LED 점멸  (0) 2013.12.01
아두이노 CLCD 출력하기  (0) 2013.11.23
아두이노(arduino) 입문  (0) 2013.07.02

+ Recent posts