CODE 5.6 | 버튼으로 LCD 메시지 변경하기
| 01 | #include <LiquidCrystal_I2C.h> |
| 02 | |
| 03 | LiquidCrystal_I2C lcd(0x20, 16, 2); // I2C 주소, 16칸, 2줄 설정 |
| 04 | |
| 05 | int btnPin = 2; // 푸시 버튼을 연결한 디지털 핀 |
| 06 | int lastState = HIGH; // 버튼의 이전 상태 저장 |
| 07 | |
| 08 | void setup() { |
| 09 | lcd.init(); // LCD 초기화 |
| 10 | lcd.backlight(); // LCD 화면 배경 켜기 |
| 11 | |
| 12 | pinMode(btnPin, INPUT_PULLUP); // 버튼 핀에 내부 풀업 저항 사용 |
| 13 | |
| 14 | lcd.setCursor(0, 0); // 첫 번째 줄의 첫 번째 칸으로 위치 이동 |
| 15 | lcd.print("Waiting..."); // 초기 메시지 출력 |
| 16 | } |
| 17 | |
| 18 | void loop() { |
| 19 | int currentState = digitalRead(btnPin); // 버튼 상태 읽기 |
| 20 | |
| 21 | // 버튼 상태가 바뀌었을 때만 화면 갱신 |
| 22 | if (currentState != lastState) { |
| 23 | lcd.clear(); // LCD 화면 지우기 |
| 24 | lcd.setCursor(0, 0); // 첫 번째 줄의 첫 번째 칸으로 위치 이동 |
| 25 | |
| 26 | // 버튼이 눌리면 LOW 신호가 입력됨 |
| 27 | if (currentState == LOW) { |
| 28 | lcd.print("Button Pressed!"); |
| 29 | } |
| 30 | // 버튼을 누르지 않으면 HIGH 신호가 입력됨 |
| 31 | else { |
| 32 | lcd.print("Waiting..."); |
| 33 | } |
| 34 | |
| 35 | delay(50); // 0.05초 대기 |
| 36 | } |
| 37 | |
| 38 | lastState = currentState; // 현재 상태를 이전 상태로 저장 |
| 39 | } |
댓글 없음:
댓글 쓰기