На главную страницу Технологии STN Управлять интерфейсом – это просто

Управлять интерфейсом – это просто

Winstar предлагает пользователям широкую продуктовую линейку стандартных символьных ЖК-модулей идеально подходящих для применения в различных проектах. Доступные серии символьных дисплев: WH0802, WH1202, WH1601, WH1602, WH1604, WH2002, WH2004, WH2402 и WH4002. Отличительной чертой индикаторов даннного типа является небольшое количество пинов, что значительно упрощает выбор микроконтроллера для управления дисплеем.

Стандартным интерфейсом символьных ЖК-модулей является 6800 параллельный интерфейс, и для работы через другие интерфейсы пользователям зачастую приходится использовать переходную плату, что приводит к увеличению толщины дисплея (см. рис. 1), дополнительным процессам на этапе сборки и увеличению себестоимости конечного продукта.

Рис. 1: Дисплей + переходная плата для передачи данных через I2C интерфейс. цифра 2-winstar-wh1602-персонаж-ЖК-модуль
Рис. 1: Дисплей + переходная плата для передачи данных через I2C интерфейс. Рис. 2: Символьный дисплей Winstar серии WH1602. Возможность передачи данных через заранее выбранный интерфейс (I2C, SPI) не используя переходную плату



Без использования переходной платы пользователю нужно только подключить отладочную плату Arduino Uno, что позволит задать другой интерфейс для управления символьными ЖК-модулями Winstar.

  • Winstar WH1602 LCM: 16 символов х 2 строки
  • Winstar WH2002 LCM: 20 символов х 2 строки
  • Winstar WH2004 LCM: 20 символов х 4 строки

Данные серии дисплеев работают на базе IC RW1063 с поддержкой I2C, SPI и 6800 параллельного интерфейса.

Примечание:Для более подробной информации пожалуйста перейдите на наш вебсайт по ссылке ниже: “Знакомство с интерфейсами дисплеев“

Обозначение пин выводов STN LCD дисплея

Таблица обозначения выводов
№ пина Обозначение Описание
No.1 Vss Заземление
No.2 Vdd Питание логики
No.3 V0 Настройка контраста
No.4 RS Выбор Command/data
No.5 RW Выбор Read/Write сигнала для интерфейса (только 6800 8/4 Бит)
No.6 E Enable сигнал для интерфейса (только 6800 8/4 Бит)
No.7 DB0/SA0 Шина данных 0 (6800 8/4 Бит)
Настройка адреса (I2C интерфейс)
No.8 DB1/SA1 Шина данных 1 (6800 8/4 Бит)
Настройка адреса (I2C интерфейс)
No.9 DB2 Шина данных 2 (6800 8/4 Бит)
No.10 DB3 Шина данных 3 (6800 8/4 Бит)
No.11 DB4 Шина данных 4 (6800 8/4 Бит)
No.12 DB5/CSB/CSB Шина данных 5 (6800 8/4 Бит)
CSB enable выбор (I2C и SPI интерфейс)
No.13 DB6/SDA/SCLK Шина данных 6 (6800 8/4 Бит)
SDA данные (I2C интерфейс)
SCLK timing синхронизация (SPI интерфейс)
No.14 DB7/SCL/SID Шина данных 7 (6800 8/4 Бит)
SCL timing синхронизация (I2C интерфейс)
SID данные (SPI интерфейс)
No.15 A+ Питание подсветки +
No.16 K- Питание подсветки -

 

Для регулировки контрастности символов V0 (настройка контраста) из приведенной выше таблицы, используется переменный резистор 20к Ом. Если отображаемая информация на дисплее все еще остается невидимой или недостаточна читаема, требуется совершить настройку путем поворота потенциометра.

Рис. 3 V0 соединение потенциометра
Рис. 3 V0 соединение потенциометра

 

Как подключить дисплей к плате Arduino Uno?

 

На рис. 4 показаны способы подключения четырех разных интерфейсов (I2C, SPI, 6800 8 бит/4 бит) к Arduino Uno. Из рис. ниже, можно заметить, что интерфейсам I2C и SPI для подключения требуется лишь небольшое количество GPIO контактов для управления символьным ЖК-дисплеем.

Для подключения I2C интерфейса Arduino Uno предоставляет подтягивающие резисторы внутри I2C выводов, и нет дополнительных подтягивающих резисторов подключенных к контактам SDA и SCL. Если внутренний подтягивающий резистор отключен в программе, необходимо подключить внешний.

(a)Подключение интерфейса I2C
 
(b) Подключение интерфейса
 
Подключение интерфейса I2C             
 
             Подключение интерфейса
 
(c)Подключение интерфейса 6800-4 Бит
 
(d)Подключение интерфейса 6800-8 Бит
 
Подключение интерфейса 6800-4 Бит             
 
             Подключение интерфейса 6800-8 Бит
 
Рис. 4 способы подключения различных интерфейсов к Arduino Uno

 

Команды ЖК-дисплея

Не каждый интерфейс может использовать полный набор команд ЖК-дисплея; у интерфейса SPI нет линии управления RW и контактов MISO, поэтому нет поддержки команды чтения. Для записи через линию управления RS, нужно определить требуется ли записывать или отображать данные команды.

В интерфейсе I2C также нет линии управления RW, поэтому нет и поддержки команды чтения. Перед записью данных команды или данных дисплея необходимо отправить код управления командой (A0=0) или код управления данными (A0=1), чтобы определить является ли следующий отправляемый байт данными команды или дисплея.

 

Тайминг SPI и I2C интерфейса

На рис. 5, 6 показаны timing диаграммы управления дисплеем через интерфейс SPI. Можно заметить, что дисплей использует SPI, который не является типичным SPI интерфейсом, предоставляемым типичным MCU, и ему требуется дополнительная сигнальная линия RS, чтобы определить, является ли текущий отправляемый байт командой или данными. Битовые данные (BIT7~BIT0) линии данных (SID) изменяются, когда линия синхронизации (SCLK) находится на низком уровне. Битовые данные (BIT7~BIT0) захватываются, когда линия синхронизации (SCLK) имеет высокий уровень (BIT7~BIT0).

Рис. 5 Тайминг SPI write command
Рис. 5 Тайминг SPI write command
Рис. 6 Тайминг SPI write data
Рис. 6 Тайминг SPI write data

На рис. 7 и 8 показаны timing диаграммы управления дисплея через I2C интерфейс. За исключением chip select bar (CSB), можно обнаружить, что управление I2C интерфейсом заключается в отправке трех байтов каждый раз для записи данных команды или данных отображения. Среди них бит A0 второго байта будет определять, является ли третий байт данными команды или дисплея.

Рис. 7: Timing для написания команд I2C интерфейса
Рис. 7 Timing для написания команд I2C интерфейса
Рис. 8: Timing для написания данных I2C интерфейса
Рис. 8 Timing для написания данных I2C интерфейса

 

Код

Дисплей можно скомпилировать и использовать напрямую, изменив настройки программы.

Шаг 1: установить максимальное количество символов в одной строке дисплея.
Пример ниже показывает установленный максимум в 16 символов.

Шаг 2: установить максимальное количество строк в дисплее
Пример ниже показывает установленный максимум в 2 строки.

Шаг 3: интерфейс дисплея
Пример ниже показывает, что задан интерфейс I2C.

Шаг 4: компиляция и загрузка программы в плату Arduino Uno.
Рис 9. показывает примеры отображения информация при разном уровне контраста
Для того, чтобы изменить уровень контраста и выбрать наиболее подходящий, нужно изменить положение потенциометра.

(a) Низкий контраст. Отображаемые символы еле заметны (b) Правильный контраст (c) Темный контраст. Тень символов при отображении
figure9-a-1-screens-of-three-lcms figure9-b-1-screens-of-three-lcms figure9-c-1-screens-of-three-lcms
figure9-a-2-screens-of-three-lcms figure9-b-2-screens-of-three-lcms figure9-c-2-screens-of-three-lcms
figure9-a-3-screens-of-three-lcms figure9-b-3-screens-of-three-lcms figure9-c-3-screens-of-three-lcms
Рис. 9Уровни контраста

Рис. 10 Потенциометр

Рис. 10 Потенциометр

Запрос примера кода инициализации.

Вернуться к списку
go top
close