Winstar, farklı endüstriyel ve gömülü sistem uygulamaları için geniş bir standart Karakter LCD Modül ürün yelpazesi sunmaktadır. Standart ekran seçenekleri arasında WH0802, WH1202, WH1601, WH1602, WH1604, WH2002, WH2004, WH2402 ve WH4002 serileri bulunmaktadır. Minimum sayıda kontrol pini kullanılarak kolay entegrasyon sağlanır ve uygulama için uygun MCU seçimini kolaylaştırır.
Piyasadaki geleneksel Karakter LCD Modülleri, Şekil 1'de gösterildiği gibi I2C arayüzünü desteklemek için genellikle ek bir dönüştürücü kart kullanır. Bu yöntem, LCM kalınlığının artmasına, üretim süreçlerinin çoğalmasına ve üretim verimliliğinin düşmesine neden olabilir.
Şekil 1: I2C desteği için ek dönüştürücü kart kullanılan piyasadaki geleneksel Karakter LCD Modül.
Şekil 2: Winstar WH1602 Karakter LCD Modül, ek bir dönüştürücü karta ihtiyaç duymadan I2C ve SPI arayüzlerini destekler.
Ek bir dönüştürücü karta ihtiyaç olmadan, Arduino Uno geliştirme kartını bağlayarak aşağıdaki Winstar Karakter LCD Modülleri farklı haberleşme arayüzleri üzerinden doğrudan kontrol edilebilir.
- WINSTAR WH1602 LCM: 16 karakter × 2 satır
- WINSTAR WH2002 LCM: 20 karakter × 2 satır
- WINSTAR WH2004 LCM: 20 karakter × 4 satır
Bu üç LCM serisi, RW1063 LCD kontrolcü entegresi ile donatılmıştır ve seri arayüzleri (I2C ve SPI) ile paralel arayüzü (6800) destekler.
Not: Ekran arayüzleri hakkında daha fazla bilgi için lütfen "Ekran Arayüzlerini Tanıma" başlıklı dokümana bakınız.
LCM 핀 정의
| 핀 번호 |
기호 |
설명 |
| No.1 |
Vss |
접지 (GND) |
| 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) 전원 - |
표 1: LCM 핀 정의
위 표의 V0 핀은 20kΩ 가변 저항을 사용하여 문자 표시의 대비를 조정합니다. 테스트 중 문자가 표시되지 않거나 배경 이미지가 계속 표시되는 경우, 해당 가변 저항을 조정하여 적절한 대비로 설정하십시오.
V0 가변 저항의 연결 방법은 그림 3과 같습니다.
그림 3: V0 가변 저항 연결 방법
LCM과 개발 보드 Arduino Uno 연결 방법
그림 4는 LCM의 4가지 통신 인터페이스(I2C, SPI, 6800 8비트/4비트)와 Arduino Uno 간의 연결 방법을 보여줍니다. I2C 및 SPI 인터페이스는 적은 수의 GPIO 핀만으로 Character LCD 모듈을 제어할 수 있음을 확인할 수 있습니다.
I2C 인터페이스의 경우 Arduino Uno는 I2C 핀 내부에 풀업 저항을 제공하므로 SDA 및 SCL 핀에 별도의 풀업 저항을 추가로 연결할 필요가 없습니다. 프로그램에서 내부 풀업 저항을 비활성화하는 경우에는 외부 풀업 저항을 연결해야 합니다.
(a) I2C 인터페이스 연결

(b) SPI 인터페이스 연결

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

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

그림 4: Arduino Uno와 LCM의 4가지 통신 인터페이스 연결 방법.
LCM 명령어
모든 통신 인터페이스가 LCM의 전체 명령어 세트를 지원하는 것은 아닙니다. SPI 인터페이스의 경우 RW 제어 라인과 MISO 핀이 없기 때문에 읽기 명령을 지원하지 않습니다. 쓰기 동작에서는 RS 제어 라인을 통해 전송 데이터가 명령 데이터인지 표시 데이터인지 결정합니다.
I2C 인터페이스 역시 RW 제어 라인이 없기 때문에 읽기 명령을 지원하지 않습니다. 명령 데이터 또는 표시 데이터를 작성하기 전에 명령 제어 코드(A0=0) 또는 데이터 제어 코드(A0=1)를 먼저 전송하여 다음에 전송되는 바이트가 명령 데이터인지 표시 데이터인지 결정합니다.
SPI 및 I2C 인터페이스 타이밍
그림 5와 그림 6은 SPI 인터페이스를 통해 LCM을 제어할 때의 타이밍 다이어그램을 보여줍니다. LCM에서 사용하는 SPI는 일반적인 MCU에서 제공하는 표준 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 코드를 직접 컴파일하고 사용할 수 있습니다.
Step 1: LCM 한 줄에 표시할 수 있는 최대 문자 수를 설정합니다.
예를 들어, 아래 설정은 한 줄에 최대 16문자를 표시하도록 설정합니다.

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

Step 3: LCM 인터페이스를 설정합니다.
예를 들어, 아래 설정은 I2C 인터페이스를 사용하도록 설정합니다.

Step 4: 프로그램을 컴파일한 후 Arduino Uno 개발 보드에 업로드합니다.
그림 9는 세 가지 LCM의 표시 화면 예시를 보여줍니다.
표시 대비가 너무 밝거나 어두운 경우, 그림 10과 같이 V0 핀의 가변 저항을 조정하여 적절한 대비로 설정할 수 있습니다.
(a) 낮은 대비
밝은 문자만 표시됨 |
(b) 적절한 대비 |
(c) 높은 대비
각 문자에 뚜렷한 그림자가 표시됨 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| 그림 9: 세 가지 LCM 표시 화면 예시 |

그림 10: V0 핀 조정 방법
전체 데모 코드가 필요한 경우 문의해 주십시오.