소개
MCP23008 또는 MCP23017 I/O Expander 모듈을 사용한 LCD 텍스트 디스플레이를 위한 드라이버입니다. I2C통신방식을 사용합니다.
호환모듈
- LCD1602
- LCD1604
- LCD2002
- LCD2004
사양 (MCP23008)
- 8-bit remote bidirectional I/O port
- High-speed I2C interface (MCP23008)
- Hardware address pins
- Configurable interrupt output pin
- Configurable interrupt source
- Polarity Inversion register for input port data polarity config.
명령
INIT
모듈을 초기화합니다.
항목 | 타입 | 설명 |
---|---|---|
칩셋 | WRITE | 칩셋을 선택합니다. (MCP23008,MCP23017) |
열 갯수 ¹ | WRITE | 디스플레이의 열 갯수(Colums)를 입력합니다. |
행 갯수 ¹ | WRITE | 디스플레이의 행 갯수(Rows)를 입력합니다. |
도트 | WRITE | 디스플레이의 도트 크기를 선택합니다. (5×8,5×10) |
SET_CURSOR
커서를 지정한 위치로 이동합니다.
항목 | 타입 | 설명 |
---|---|---|
열 | WRITE | 열 (Column) 위치를 입력합니다. (왼쪽부터 0) |
행 | WRITE | 행 (Row) 위치를 입력합니다. (위에서 부터 0) |
텍스트를 디스플레이에 표시합니다.
항목 | 타입 | 설명 |
---|---|---|
텍스트 | WRITE | 현재 커서 위치에 표시할 텍스트를 입력합니다. |
CLEAR
디스플레이에 표시된 내용을 모두 삭제하고 커서를 HOME(좌측상단)으로 이동합니다.
HOME
커서를 HOME(좌측상단)으로 이동합니다.
DISPLAY_ON
디스플레이를 켭니다.
DISPLAY_OFF
디스플레이를 끕니다.
CURSOR_ON
커서를 표시합니다.
CURSOR_OFF
커서를 표시하지 않습니다.
BLINK_ON
커서를 깜박입니다.
BLINK_OFF
커서를 깜박이지 않습니다.
SCROLL_LEFT
표시된 텍스트를 왼쪽으로 한칸 이동합니다. 이 명령을 일정한 주기로 실행하면 좌측으로 스크롤되는효과가 나타납니다.
SCROLL_RIGHT
표시된 텍스트를 오른쪽으로 한칸 이동합니다. 이 명령을 일정한 주기로 실행하면 우측으로 스크롤되는 효과가 나타납니다.
LEFT_TO_RIGHT
텍스트를 현재 커서기준으로 좌측에서 우측방향으로 표시합니다.
RIGHT_TO_LEFT
텍스트를 현재 커서기준으로 우측에서 좌측방향으로 표시합니다.
AUTO_SCROLL_ON
텍스트가 표시될때마다 텍스트의 길이만큼 좌측으로 자동 스크롤합니다.
AUTO_SCROLL_OFF
자동스크롤을 끕니다.
BACKLIGHT_ON
백라이트를 켭니다.
BACKLIGHT_OFF
백라이트를 끕니다.
CREATE_CHAR
사용자 정의 문자를 만들어 디스플레이 내부 저장소(CGRAM)의 0~7의 위치에 로드합니다. 최대 8개의 사용자 정의 문자를 로드할 수 있습니다.
항목 | 타입 | 설명 |
---|---|---|
CGRAM 위치 | WRITE | 사용자 정의 문자를 저장할 CGRAM의 위치를 입력합니다. (0~7) |
사용자정의문자 ¹ | WRITE | 사용자 정의문자를 바이트 배열로 입력합니다. |
사용자정의문자 생성기를 활용하면 쉽게 바이트 배열을 구할 수 있습니다. (Data Type을 Hex로 설정)
WRITE_CHAR
사용자정의문자를 현재 커서위치에 표시합니다.
항목 | 타입 | 설명 |
---|---|---|
CGRAM 위치 | WRITE | 현재 커서위치에 표시할 CGRAM의 위치를 입력합니다. (0~7) |
예제
부품
부품 | 갯수 |
---|---|
LCD모듈 | 1 |
연결
LCD모듈 | GPIO |
---|---|
VCC(5V) | 5V |
GND | GND |
DAT (SDA) ¹ | 2 (I2C1 SDA) |
CLK (SCL) ¹ | 3 (I2C1 SCL) |
I2C 주소
A0, A1, A2 점퍼를 변경하여 I2C 주소를 변경할 수 있습니다. (모듈 제조사마다 다를 수 있음)
A0 | A1 | A2 | I2C주소 |
---|---|---|---|
Low | Low | Low | 0x20 |
Low | Low | High | 0x21 |
Low | High | Low | 0x22 |
Low | High | High | 0x23 |
High | Low | Low | 0x24 |
High | Low | High | 0x25 |
High | High | Low | 0x26 |
High | High | High | 0x27 |
프로젝트