우리는 귀하의 프라이버시를 소중히 여깁니다
"모든 쿠키 허용"을 클릭하면 사이트 탐색을 개선하고, 사이트 사용을 분석하며, 마케팅 및 성능 노력에 도움을 주기 위해 쿠키를 귀하의 장치에 저장하는 데 동의한 것으로 간주됩니다. 이 주제에 대한 추가 정보는 당사의 정책에서 확인할 수 있습니다. 개인정보 보호정책
Winstar는 다양한 산업 및 임베디드 애플리케이션에 적용할 수 있는 표준형 문자 LCD 모듈(Character LCD Module)을 제공합니다. WH0802, WH1202, WH1601, WH1602, WH1604, WH2002, WH2004, WH2402, WH4002 시리즈 등 다양한 표준 디스플레이 타입을 지원하며, 최소한의 제어 핀으로 디스플레이를 구현할 수 있어 고객이 적합한 MCU를 보다 쉽게 선정할 수 있습니다.
일반적인 문자 LCD 모듈은 그림 1과 같이 I2C 인터페이스 지원을 위해 별도의 변환 보드(Transfer Board)를 추가하는 방식이 많이 사용됩니다. 하지만 이러한 방식은 LCM 전체 두께 증가, 제조 공정 추가, 생산 수율 저하 등의 문제가 발생할 수 있습니다.
그림 1: I2C 인터페이스 지원을 위해 변환 보드가 추가된 일반적인 문자 LCD 모듈
그림 2: 별도의 변환 보드 없이 I2C 및 SPI 인터페이스를 지원하는 Winstar WH1602 문자 LCD 모듈
별도의 변환 보드 없이 Arduino Uno 개발 보드와 직접 연결하여 다양한 통신 인터페이스로 아래 Winstar 문자 LCD 모듈을 제어할 수 있습니다.
상기 3종 LCM 시리즈는 RW1063 LCD 컨트롤러 IC를 내장하고 있으며, 직렬 인터페이스(I2C 및 SPI)와 병렬 인터페이스(6800)를 모두 지원합니다.
참고: 디스플레이 인터페이스에 대한 자세한 내용은 "디스플레이 인터페이스 바로 알기"를 참조하십시오.
| 핀 번호 | 기호 | 설명 |
|---|---|---|
| No.1 | Vss | 접지 |
| No.2 | Vdd | 로직 전원 공급 |
| No.3 | V0 | 콘트라스트 조정 |
| No.4 | RS | 명령어/데이터 선택 |
| No.5 | RW | 6800 8/4비트 인터페이스 전용 읽기/쓰기 선택 신호 |
| No.6 | E | 6800 8/4비트 인터페이스 전용 Enable 신호 |
| No.7 | DB0/SA0 | 6800 8비트 인터페이스 전용 데이터 버스 라인 0 I2C 인터페이스용 SA0 주소 설정 라인 |
| No.8 | DB1/SA1 | 6800 8비트 인터페이스 전용 데이터 버스 라인 1 I2C 인터페이스용 SA1 주소 설정 라인 |
| No.9 | DB2 | 6800 8비트 인터페이스 전용 데이터 버스 라인 2 |
| No.10 | DB3 | 6800 8비트 인터페이스 전용 데이터 버스 라인 3 |
| No.11 | DB4 | 6800 8/4비트 인터페이스 전용 데이터 버스 라인 4 |
| No.12 | DB5/CSB/CSB | 6800 8/4비트 인터페이스 전용 데이터 버스 라인 5 I2C 및 SPI 인터페이스용 CSB Enable 선택 라인 |
| No.13 | DB6/SDA/SCLK | 6800 8/4비트 인터페이스 전용 데이터 버스 라인 6 I2C 인터페이스용 SDA 데이터 라인 SPI 인터페이스용 SCLK 클록 신호 |
| No.14 | DB7/SCL/SID | 6800 8/4비트 인터페이스 전용 데이터 버스 라인 7 I2C 인터페이스용 SCL 클록 라인 SPI 인터페이스용 SID 데이터 라인 |
| No.15 | A+ | 백라이트(B/L) + 전원 공급 |
| No.16 | K- | 백라이트(B/L) - 전원 공급 |
위 표의 V0 핀은 문자 표시 콘트라스트 조정을 위해 20kΩ 가변 저항을 연결하여 사용합니다. 테스트 과정에서 문자가 표시되지 않거나 배경 화면만 계속 표시되는 경우, 가변 저항을 조정하여 적절한 콘트라스트로 설정하십시오.
V0 가변 저항의 연결 방법은 그림 3과 같습니다.

그림 4는 4가지 LCM 통신 인터페이스(I2C, SPI, 6800 8비트/4비트)를 Arduino Uno와 연결하는 방법을 보여줍니다. I2C 및 SPI 인터페이스는 적은 수의 GPIO 핀만으로 문자 LCD 모듈을 제어할 수 있음을 확인할 수 있습니다.
I2C 인터페이스의 경우 Arduino Uno는 I2C 핀에 내부 풀업 저항을 제공하므로 SDA 및 SCL 핀에 별도의 풀업 저항을 추가로 연결할 필요가 없습니다. 단, 프로그램에서 내부 풀업 저항 기능을 비활성화하는 경우에는 외부 풀업 저항을 연결해야 합니다.
(a) I2C 인터페이스 연결

(b) SPI 인터페이스 연결

(c) 6800-4비트 인터페이스 연결

(d) 6800-8비트 인터페이스 연결

그림 4: Arduino Uno와 4가지 LCM 통신 인터페이스 연결 방법
모든 통신 인터페이스에서 LCM의 전체 명령어 세트를 사용할 수 있는 것은 아닙니다. SPI 인터페이스의 경우 RW 제어 라인과 MISO 핀이 없기 때문에 읽기 명령(Read Command)을 지원하지 않습니다. 쓰기 동작에서는 RS 제어 라인을 통해 명령어 데이터 또는 표시 데이터를 전송할지 결정합니다.
I2C 인터페이스 역시 RW 제어 라인이 없으므로 읽기 명령을 지원하지 않습니다. 명령어 데이터 또는 표시 데이터를 전송하기 전에 명령 제어 코드(A0=0) 또는 데이터 제어 코드(A0=1)를 먼저 전송하여 다음에 전송되는 바이트가 명령어 데이터인지 표시 데이터인지 결정합니다.
그림 5와 그림 6은 SPI 인터페이스를 통해 LCM을 제어할 때의 타이밍 다이어그램을 보여줍니다. 일반적인 MCU에서 제공하는 표준 SPI 인터페이스와 달리, LCM에서 사용하는 SPI 인터페이스는 현재 전송되는 바이트가 명령어인지 데이터인지 구분하기 위해 추가적인 RS 신호 라인이 필요합니다. 데이터 라인(SID)의 비트 데이터(BIT7~BIT0)는 클록 라인(SCLK)이 Low 상태일 때 변경되며, 클록 라인(SCLK)이 High 상태일 때 해당 비트 데이터(BIT7~BIT0)가 샘플링됩니다.

그림 5:SPI 명령어 쓰기 타이밍

그림 6:SPI 데이터 쓰기 타이밍
그림 7과 그림 8은 I2C 인터페이스를 통해 LCM을 제어할 때의 타이밍 다이어그램을 보여줍니다. Chip Select Bar(CSB)를 제외하면, I2C 인터페이스 제어 방식은 명령어 데이터 또는 표시 데이터를 쓰기 위해 매번 3바이트를 전송하는 구조입니다. 이 중 두 번째 바이트의 A0 비트는 세 번째 바이트가 명령어 데이터인지 표시 데이터인지 결정합니다.

그림 7:I2C 명령어 쓰기 타이밍

그림 8:I2C 데이터 쓰기 타이밍
프로그램 설정을 변경하면 LCM에 맞게 코드를 컴파일하고 바로 사용할 수 있습니다.
Step1: LCM 한 줄에 표시할 수 있는 최대 문자 수를 설정합니다.
예를 들어, 아래 설정은 한 줄에 최대 16문자를 표시하도록 설정합니다.

Step2: LCM의 최대 표시 라인 수를 설정합니다.
예를 들어, 아래 설정은 LCM을 2라인으로 설정합니다.

Step3: LCM 인터페이스를 설정합니다.
예를 들어, 아래 설정은 I2C 인터페이스를 선택합니다.

Step4: 프로그램을 컴파일한 후 Arduino Uno 개발 보드에 업로드합니다.
그림 9는 3종 LCM의 표시 화면 예시를 보여줍니다.
표시 화면의 콘트라스트가 너무 밝거나 어두운 경우, 그림 10과 같이 V0 핀에 연결된 가변 저항을 조정하여 적절한 콘트라스트로 설정할 수 있습니다.
| (a) 밝은 콘트라스트 문자만 희미하게 표시됨 |
(b) 적절한 콘트라스트 | (c) 어두운 콘트라스트 각 문자에 뚜렷한 그림자가 나타남 |
|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| 그림 9:3종 LCM의 표시 화면 예시 | ||

그림 10:V0 핀 조정을 통한 콘트라스트 설정
전체 데모 코드가 필요한 경우, 문의하기를 통해 연락해 주십시오.
"모든 쿠키 허용"을 클릭하면 사이트 탐색을 개선하고, 사이트 사용을 분석하며, 마케팅 및 성능 노력에 도움을 주기 위해 쿠키를 귀하의 장치에 저장하는 데 동의한 것으로 간주됩니다. 이 주제에 대한 추가 정보는 당사의 정책에서 확인할 수 있습니다. 개인정보 보호정책