오늘은 아두이노에서 Text를 출력하는 LCD를 사용해 볼 것입니다.
회로는 너무 간단합니다.
작은 브레드보드에 Text LCD와 저항을 같이 연결하고 접지와 전원 선을 보드와 연결해주면 끝입니다.
LCD에 Hello World!라는 문구가 출력되게 하고, 실행되는 시간을 측정하겠습니다.
실행되는 시간은 밑줄에 Lap time : 으로 알려주고, 초 단위로 표시할 겁니다.
그래서 코드는 아래와 같습니다.
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,4,8,9,10,11);
void setup()
{
lcd.begin(16, 2);
lcd.print("Hello World!");
}
void loop()
{
lcd.setCursor(0,1);
lcd.print("Lap time : ");
lcd.print(millis()/1000);
delay(100);
}
그런데 여기서 #include <LiquidCrystal.h> 라는 처음 보는 문장이 있습니다.
이것은 아두이노에 기본적으로 있는 LiquidCrystal 클래스입니다.
바로 아랫줄처럼 생성자를 lcd로 선언해주었습니다.
이 때, 괄호 안에 있는 숫자들은 LCD를 연결한 핀의 숫자입니다.
void setup에서는 lcd.begin을 통해 LCD의 사용할 행과 열 수를 지정했고,
lcd.print로 Hello World!라는 문구가 출력되도록 설정했습니다.
void loop에서는 글자 그대로 lcd의 커서 위치를 설정했습니다. 이 때, 괄호 안의 숫자는 LCD의 행과 열입니다.
그렇게 lcd에 print되는 내용이 아랫줄의 첫번째 칸부터 출력되도록 설정한 것입니다.
그리고 lcd.print로 시간을 출력하는데, millis로 시간을 측정하면서
1000ms가 1s이기 때문에 1000으로 값을 나누어 주어서 초가 정수 단위로 나오게 했습니다.
millis는 시간을 측정할 때 ms(밀리세컨드) 단위로 측정하기 때문입니다.
그리고 100ms의 delay를 주어서 lcd가 너무 깜박거리지 않게 했습니다.
여기서 lcd.print안에 내용을 보시면 감이 좋은 분들은 눈치채셨을 수도 있는데
print문에서 출력할 수 있는 것은 String과 value입니다.
""를 이용해 문자열을 출력하거나 millis처럼 특정한 값을 출력하는 것이죠.
그래서 저는 어차피 Lap time : 이라는 문구는 계속 출력되어야 하고,
시간인 숫자만 바꿔주면 되기 때문에 위의 코드처럼 작성한 것입니다.
이번 회로는 LCD를 연결하기만 하면 되는 회로여서 회로를 구성하는 부분에서는 어려움이 없었지만,
새로운 class를 사용함에 따라 약간 어색하거나 헷갈릴 수 있습니다만
Arduino 홈페이지의 Reference를 참고하면 그렇게 어렵지는 않은 내용입니다.
다들 아두이노로 원하는 회로를 구성했으면 좋겠습니다. 화이팅!
'Dev > C언어' 카테고리의 다른 글
아두이노 충돌 경보기 만들기 (0) | 2020.08.12 |
---|---|
아두이노 초음파 센서 사용하기 (0) | 2020.08.09 |
아두이노 가로등 만들기 (0) | 2020.07.25 |
아두이노 millis와 interrupt로 LED 제어하기 (0) | 2020.07.20 |
아두이노 가변저항 사용하기 (0) | 2020.07.19 |