아두이노:LCD 사용: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
잔글 (→LCD 1602 키패드 쉴드) |
잔글편집 요약 없음 |
||
54번째 줄: | 54번째 줄: | ||
|} | |} | ||
= LCD 1602 키패드 쉴드 = | |||
* 아두이노 우노(가장 잘 맞음), 메카와 호환되는데, 직관적으로 꽂으면 된다. | * 아두이노 우노(가장 잘 맞음), 메카와 호환되는데, 직관적으로 꽂으면 된다. | ||
* 아날로그 핀을 그대로 사용할 수 있는데, 디지털핀도 표기는 되어있지 않지만 이용할 수는 있다. | * 아날로그 핀을 그대로 사용할 수 있는데, 디지털핀도 표기는 되어있지 않지만 이용할 수는 있다. | ||
* 키버튼은 A0로 들어온다.(제조사별로 값이 달라 A0 값을 프린트하게 해보아야 한다.) | * 키버튼은 A0로 들어온다.(제조사별로 값이 달라 A0 값을 프린트하게 해보아야 한다.) | ||
== 코드 == | |||
{| class="wikitable" | |||
!코드 | |||
!설명<nowiki/> | |||
!비고 | |||
|- | |||
|수신정보 | |||
| | |||
| | |||
|} | |||
== 제조사별 코드 == | |||
=== DFRobot === | |||
https://wiki.dfrobot.com/LCD_KeyPad_Shield_For_Arduino_SKU__DFR0009<nowiki/>이 공식 문서이다. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+DFRobot사의 제품. | |+DFRobot사의 제품. | ||
87번째 줄: | 101번째 줄: | ||
|1022~1023 | |1022~1023 | ||
|} | |} | ||
int read_LCD_buttons() | | | ||
|- | |||
|버튼 함수 | |||
|보통 다음과 같이 버튼신호를 구별한다.<syntaxhighlight lang="c#"> | |||
// LCD 관련 변수 설정. | |||
int lcd_key = 0; // 들어온 키 값을 해석한 값을 담을 변수. | |||
int lcd_key_in = 0; // LCD에서 들어오는 키 값을 담을 변수. | |||
int read_LCD_buttons() // 입력신호를 해석할 함수. | |||
{ | { | ||
lcd_key_in = analogRead(0); // 센서에서 들어온 값을 읽는다. | |||
// | // 상하좌우, 선택 순으로 인덱스를 지정한다. | ||
if (lcd_key_in > 1000) return 0; // 입력이 없는 경우. | |||
if ( | if (lcd_key_in > 700) return 5; // 선택버튼. | ||
if (lcd_key_in > 450) return 3; // 좌 | |||
if ( | if (lcd_key_in > 300) return 2; // 하 | ||
if ( | if (lcd_key_in > 100) return 1; // 상 | ||
if ( | return 4; // 우 | ||
if ( | |||
return | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| | | | ||
|- | |- | ||
| | |LCD 설정 | ||
| | |보통 다음과 같이 버튼신호를 구별한다.<syntaxhighlight lang="c#"> | ||
#include <LiquidCrystal.h> // 관련 라이브러리. | |||
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD panel에서 사용되는 핀 선택. | |||
unsigned long tepTimer; // LCD 화면 갱신시간을 위하여 설정하는 변수. | |||
void setup(){ | |||
lcd.begin(16, 2); // start the library | |||
} | |||
void loop(){ | |||
lcd.setCursor(0, 0); // LCD 시작점 지정. | |||
if(millis() - tepTimer > 500){ // 500ms마다 함수를 갱신한다. | |||
tepTimer = millis(); // 현재 시간을 변수에 담는다. | |||
// LCD에 띄우는 내용. | |||
lcd.print("내용입니당"); | |||
} | |||
} | |||
</syntaxhighlight> | |||
| | | | ||
|} | |} | ||
128번째 줄: | 158번째 줄: | ||
제대로 연결, 코드에도 문제가 없는데 안나온다면 접근주소를 건드려보자. | 제대로 연결, 코드에도 문제가 없는데 안나온다면 접근주소를 건드려보자. | ||
|} | |} | ||
2024년 6월 11일 (화) 09:15 판
아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노
- 아두이노:개요
- 아두이노:하드웨어
- 아두이노:코드
- 아두이노:핀 사용
- 아두이노:시리얼 통신
- 아두이노:편의함수
- 센서 사용
- 아두이노:LCD 사용
- 아두이노:스위치 사용
- 아두이노:릴레이
- 아두이노:WIFI
- 아두이노:해결되지 않은 다양한 의문들
- 수업용 간단 실습
- 분류:아두이노 프로젝트
개요
과정 | 설명 | 코드 |
---|---|---|
setup | 셋업에 넣을 코드. | lcd.init(); //액정 초기화
lcd.backlight(); //액정 백라이트 켜기 |
loop | 루프에 넣을 코드. | lcd.setCursor(0,0); //표시 시작지점 설정
lcd.print("illumination="); //내용 작성 lcd.setCursor(13,0); //시작지점 설정 lcd.print(a); //내용 작성 |
16x2 LCD
보통 I2C 변환모듈을 달아두어 4핀으로 제어한다.
사용법
I2C변환모듈을 설치한 경우
코드해석 및 문제해결
코드 | 설명 | 문제해결 |
---|---|---|
LiquidCrystal_I2C lcd(0x27,16,2); | lcd 변수를 지정한다.
(접근주소, 16칸, 2줄)이라는 의미 |
접근주소로 보통 0x3F 혹은 0x27를 넣는다.
제대로 연결, 코드에도 문제가 없는데 안나온다면 접근주소를 건드려보자. |
LCD가 안나올 때 | 밝기가 너무 밝거나 어두워 글자가 보이지 않을 때가 있다. | 변환모듈 뒷면에 돌릴 수 있는 나사가 있는데, 이게 밝기를 조절해준다. |
LCD 1602 키패드 쉴드
- 아두이노 우노(가장 잘 맞음), 메카와 호환되는데, 직관적으로 꽂으면 된다.
- 아날로그 핀을 그대로 사용할 수 있는데, 디지털핀도 표기는 되어있지 않지만 이용할 수는 있다.
- 키버튼은 A0로 들어온다.(제조사별로 값이 달라 A0 값을 프린트하게 해보아야 한다.)
코드
코드 | 설명 | 비고 |
---|---|---|
수신정보 |
제조사별 코드
DFRobot
https://wiki.dfrobot.com/LCD_KeyPad_Shield_For_Arduino_SKU__DFR0009이 공식 문서이다.
코드 | 설명 | 비고 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
수신정보 |
|
|||||||||||||||||
버튼 함수 | 보통 다음과 같이 버튼신호를 구별한다.// LCD 관련 변수 설정.
int lcd_key = 0; // 들어온 키 값을 해석한 값을 담을 변수.
int lcd_key_in = 0; // LCD에서 들어오는 키 값을 담을 변수.
int read_LCD_buttons() // 입력신호를 해석할 함수.
{
lcd_key_in = analogRead(0); // 센서에서 들어온 값을 읽는다.
// 상하좌우, 선택 순으로 인덱스를 지정한다.
if (lcd_key_in > 1000) return 0; // 입력이 없는 경우.
if (lcd_key_in > 700) return 5; // 선택버튼.
if (lcd_key_in > 450) return 3; // 좌
if (lcd_key_in > 300) return 2; // 하
if (lcd_key_in > 100) return 1; // 상
return 4; // 우
}
|
|||||||||||||||||
LCD 설정 | 보통 다음과 같이 버튼신호를 구별한다.#include <LiquidCrystal.h> // 관련 라이브러리.
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD panel에서 사용되는 핀 선택.
unsigned long tepTimer; // LCD 화면 갱신시간을 위하여 설정하는 변수.
void setup(){
lcd.begin(16, 2); // start the library
}
void loop(){
lcd.setCursor(0, 0); // LCD 시작점 지정.
if(millis() - tepTimer > 500){ // 500ms마다 함수를 갱신한다.
tepTimer = millis(); // 현재 시간을 변수에 담는다.
// LCD에 띄우는 내용.
lcd.print("내용입니당");
}
}
|
코드 | 설명 | 문제해결 |
---|---|---|
LiquidCrystal_I2C lcd(0x27,16,2); | lcd 변수를 지정한다.
(접근주소, 16칸, 2줄)이라는 의미 |
접근주소로 보통 0x3F 혹은 0x27를 넣는다.
제대로 연결, 코드에도 문제가 없는데 안나온다면 접근주소를 건드려보자. |