LCD 패널 제어
2024. 7. 1. 11:29ㆍJetson
✅ LCD 패널 제어
#include <Wire.h>
// I2C 주소를 검색해보자! -> 1~119까지 주소를 가지고 있음!
void setup() {
Serial.begin(9600);
Wire.begin(); // Wire 라이브러리 사용하겠다!
while(!Serial) {} // Serial이 없다면
Serial.println("");
for (byte i = 1; i < 120; i++) {
Wire.beginTransmission(i); // 1~119번 주소의 장치를 검색
if (Wire.endTransmission() == 0) { // I2C 통신이 가능한 장치가 있다면
Serial.print("Address : ");
Serial.print("0x");
Serial.println(i, HEX);
delay(10);
}
}
}
void loop() {
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // 검색된 I2C 주소와 lcd의 열, 행
void setup() {
lcd.init(); // lcd 사용 시작
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello World!");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis() / 1000); // 1초마다 초로 출력해보기!
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2); // 검색된 I2C 주소와 lcd의 열, 행
void setup() {
lcd.init(); // lcd 사용 시작
lcd.backlight();
// lcd.setCursor(0, 0);
// lcd.print("Hello World!");
}
void loop() {
// lcd.setCursor(0, 1);
// lcd.print(millis() / 1000); // 1초마다 초로 출력해보기!
// 1. 커서를 깜빡 거리기
lcd.setCursor(0, 0);
lcd.print("Cursor blink");
lcd.blink(); // 커서를 깜빡거리게 하는 함수
delay(2000); // 2초
// 2. 커서를 깜빡 거리지 않게 하기
lcd.clear(); // lcd 내용 지우기
lcd.noBlink(); // 커서를 깜빡거리지 않게 하는 함수
lcd.print("Cursor noblink");
delay(2000);
// 3. lcd 내용을 보이지 않게 하기
lcd.clear();
lcd.print("Display off");
delay(1000);
lcd.noDisplay(); // lcd display 보이지 않게 하는 함수
// 4. lcd 내용 보이게 하기
lcd.clear();
delay(2000);
lcd.print("Display on");
lcd.display();
delay(2000);
lcd.clear();
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2); // 검색된 I2C 주소와 lcd의 열, 행
const char data[] = "Hello World";
const int textSize = sizeof(data) - 1; // 종결 문자기 때문에 -1 해줘야 함
void setup() {
lcd.init(); // lcd 사용 시작
lcd.backlight();
lcd.print(data);
// lcd.setCursor(0, 0);
// lcd.print("Hello World!");
}
void loop() {
for (int pos = 0; pos < textSize; pos++) {
lcd.scrollDisplayLeft(); // lcd 왼쪽으로 스크롤 // scrollDisplayRight() -> 오른쪽
delay(200); // 0.2초
}
// lcd.setCursor(0, 1);
// lcd.print(millis() / 1000); // 1초마다 초로 출력해보기!
// // 1. 커서를 깜빡 거리기
// lcd.setCursor(0, 0);
// lcd.print("Cursor blink");
// lcd.blink(); // 커서를 깜빡거리게 하는 함수
// delay(2000); // 2초
// // 2. 커서를 깜빡 거리지 않게 하기
// lcd.clear(); // lcd 내용 지우기
// lcd.noBlink(); // 커서를 깜빡거리지 않게 하는 함수
// lcd.print("Cursor noblink");
// delay(2000);
// // 3. lcd 내용을 보이지 않게 하기
// lcd.clear();
// lcd.print("Display off");
// delay(1000);
// lcd.noDisplay(); // lcd display 보이지 않게 하는 함수
// // 4. lcd 내용 보이게 하기
// lcd.clear();
// delay(2000);
// lcd.print("Display on");
// lcd.display();
// delay(2000);
// lcd.clear();
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2); // 검색된 I2C 주소와 lcd의 열, 행
// const char data[] = "Hello World";
// const int textSize = sizeof(data) - 1; // 종결 문자기 때문에 -1 해줘야 함
void setup() {
lcd.init(); // lcd 사용 시작
lcd.backlight();
Serial.begin(9600);
// lcd.print(data);
// lcd.setCursor(0, 0);
// lcd.print("Hello World!");
}
void loop() {
if (Serial.available()) { // 뭔가 받아 온게 있다면
lcd.clear();
while (Serial.available() > 0) {
// lcd.setCursor(0, 0);
char c = Serial.read();
lcd.print(c); // lcd에 시리얼 통신 수신 결과 쓰기
}
}
// for (int pos = 0; pos < textSize; pos++) {
// lcd.scrollDisplayLeft(); // lcd 왼쪽으로 스크롤 // scrollDisplayRight() -> 오른쪽
// delay(200); // 0.2초
// }
// lcd.setCursor(0, 1);
// lcd.print(millis() / 1000); // 1초마다 초로 출력해보기!
// // 1. 커서를 깜빡 거리기
// lcd.setCursor(0, 0);
// lcd.print("Cursor blink");
// lcd.blink(); // 커서를 깜빡거리게 하는 함수
// delay(2000); // 2초
// // 2. 커서를 깜빡 거리지 않게 하기
// lcd.clear(); // lcd 내용 지우기
// lcd.noBlink(); // 커서를 깜빡거리지 않게 하는 함수
// lcd.print("Cursor noblink");
// delay(2000);
// // 3. lcd 내용을 보이지 않게 하기
// lcd.clear();
// lcd.print("Display off");
// delay(1000);
// lcd.noDisplay(); // lcd display 보이지 않게 하는 함수
// // 4. lcd 내용 보이게 하기
// lcd.clear();
// delay(2000);
// lcd.print("Display on");
// lcd.display();
// delay(2000);
// lcd.clear();
}
✅ 실습
- 📌 수신한 문자가 6이라면
- 오른쪽으로 스크롤
- 📌 수신한 문자가 4라면
- 왼쪽으로 스크롤
- 📌 수신한 문자가 2라면
- 화면을 지우고 (0, 1)로 이동해서 "Hello IoT" 출력
- 📌 수신한 문자가 8이라면
- 화면을 지우고 (0, 0)로 이동해서 "Hello IoT" 출력
- 📌 특수문자 활용(p. 17)
- http://www.sparkfun.com/datasheets/LCD/HD44780.pdf
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
if(Serial.available()>0){
while (Serial.available()>0){
char c = Serial.read();
if (c == '6') {
lcd.scrollDisplayRight();
} else if (c == '4') {
lcd.scrollDisplayLeft();
} else if (c == '2') {
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Hello IoT!");
} else if (c == '8') {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Hello IoT!");
}
}
}
}
'Jetson' 카테고리의 다른 글
적외선 센서, 키패드 제어, 7-세그먼트, 적외선 온도센서 (1) | 2024.07.03 |
---|---|
DC 모터 제어 (0) | 2024.07.01 |
Widget Button (1) | 2024.06.28 |
Data collection (0) | 2024.06.27 |
Wireless_Joystick (0) | 2024.06.24 |