반응형
◎ 아두이노 LCD 제어하기
아두이노를 사용하다보면 LCD를 자주 사용하게 되는데, LCD 관련 예제입니다~!
1. LCD 사용하기
○ 사용 부품
○ 회로 연결
○ 적용 코드
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
lcd.begin();
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
○ 작동 사진
LCD 함수 정리
lcd.begin(); | LCD를 사용을 시작 |
lcd.display(); | LCD에 내용을 표시 |
lcd.noDisplay(); | LCD에 내용을 숨김 |
lcd.setCursor(col,row); | row, col의 좌표로 커서를 위치 |
lcd.cursor(); | LCD에 커서를 표시 |
lcd.noCursor(); | LCD에 커서를 숨김 |
lcd.home(); | 커서의 위치를 0,0으로 이동 |
lcd.blink(); | 커서를 깜빡임 |
lcd.noBlink(); | 커서를 깜빡이지 않음 |
lcd.backlight(); | LCD backlight을 킴 |
lcd.noBacklight(); | LCD backlight를 끔 |
lcd.write(val); | LCD 화면에 val 출력(아스키 코드 입력 시에는 아스키 코드에 해당하는 문자 출력) |
lcd.print(val); | LCD 화면에 val 출력 |
lcd.clear(); | LCD 화면의 모든 내용 지움 |
lcd.scrollDisplayRight(); | 내용을 우측으로 1칸 이동 |
lcd.scrollDisplayLeft(); | 내용을 좌측으로 1칸 이동 |
lcd.autoscroll(); | 내용을 자동으로 우에서 좌로 스크롤 |
<출처 : 코코아팹>
2. LCD 함수를 잘 사용하시면 편리합니다.
○ 사용 부품
3) Button x 2
4) 가변저항
○ 회로 연결
○ 적용 코드
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
lcd.begin();
lcd.backlight();
pinMode(2, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
unsigned long settime = 0;
unsigned long timenow = 0;
bool button_state = 1;
bool button_hold = false;
bool pre_button_state = 1;
unsigned int long button_delay = 0;
bool Led_state = LOW;
unsigned long pretime = 0;
void loop() {
button();
int select = map(analogRead(A0),0,1024,0,60);
lcd.setCursor(0,0);
lcd.print("Time set : ");
lcd.print(select);
lcd.print("min");
lcd.print(" ");
while(Led_state == 1){
digitalWrite(3,LOW);
settime = select * 60000;
timenow = millis();
if(digitalRead(4) ==LOW){
Led_state =0;
pretime = timenow;
break;
}
if(timenow - pretime > settime){
digitalWrite(3,HIGH);
pretime = timenow;
Led_state =0;
pretime = timenow;
Serial.println("break");
break;
}
}
button_state = digitalRead(2);
if (button_hold == false) {
if (button_state != pre_button_state) {
button_hold = true;
button_delay = millis();
if (button_state == 0) {
Led_state = !Led_state;
}
pre_button_state = button_state;
}
}
}
void button() {
if (button_hold == true) {
if (millis() - button_delay >= 100) {
button_hold = false;
}
}
}
- 코드를 정리해야되는데...
귀찮아서...그만.. ㅠㅠ
○ 작동 영상
재미있는 프로젝트를 한번 만들어 보세요 ^^
반응형
'메이커 이야기 > 아두이노' 카테고리의 다른 글
[아두이노 랜덤] 완벽한 랜덤 값 생성 (2) | 2020.02.05 |
---|---|
[아두이노 키패드] 4x4 키패드 제어하기 (0) | 2020.02.04 |
[아두이노 가변저항] 아두이노 가변저항으로 LED 컨트롤_EP4 (0) | 2020.02.02 |
[아두이노 RGB] 아두이노 Color 컨트롤러 만들기_EP3 (0) | 2020.02.02 |
[아두이노 LED] Arduino LED 깜빡이기_EP2 (0) | 2020.02.02 |