Выбрать главу

Если у вашего дисплея нет штырьков для монтажа, необходимо сначала припаять их, чтобы можно было установить его на макетной плате. Если штыревые контакты припаяны (как на рис. 10.1), можно сразу закрепить индикатор на макетной плате.

Теперь нужно подключить дисплей, смонтированный на макетной плате, к Arduino.

Все параллельные ЖК-индикаторы имеют одинаковые выходы и их можно подключить в одном из двух вариантов: 4-контактном и 8-контактном. Для передачи информации служат четыре вывода, есть также контакты готовности данных, выбора режима команд или режима индикации, установки режимов чтения или записи данных. Назначение всех контактов приведено в табл. 10.1.

- 204 -

Рис. 10.1. ЖК-дисплей с припаянными штыревыми контактами

Таблица 10.1. Контакты параллельного ЖК-дисплея

Назначение контактов следующее:

• Напряжение на контакте регулировки контрастности Vo определяет яркость дисплея, контакт подключается к среднему выводу потенциометра.

• Контакт выбора режима Rs переводит дисплей в режим приема команд или символов, данные, поступающие в дисплей, интерпретируются либо как данные, либо как символ.

- 205 -

• Контакт RW у нас всегда будет соединен с землей, это означает, что данные всегда передаются в дисплей, а не читаются из него.

• Сигнал на контакте EN сообщает, что данные готовы к приему или передаче.

• Контакты D4-D7 используются для передачи данных, а контакты DO-D3 остаются неподключенными.

Если ЖК-дисплей снабжен встроенной системой светодиодной подсветки с внутренним ограничивающим резистором, можно непосредственно подключить анод к +5 В, а катод к земле, если такого резистора нет, следует добавить токоограничивающий резистор в линию между анодом и катодом. Подробности необходимо уточнять в техническом описании конкретного дисплея.

В табл. 10.2 приведен рекомендуемый порядок соединения контактов ЖК-дисплея и платы Arduino. Можно подключить дисплей и к другим контактам ввода-вывода.

Рис. 10.2. Подключение ЖК-дисплея к макетной плате и Arduino

- 206 -

Таблица 10.2. Таблица соединения контактов

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

Контакты Arduino

RS

D2

EN

D3

D4

D4

D5

D5

D6

D6

D7

D7

Подключите ЖК-дисплей к плате Arduino по схеме, приведенной на рис. 10.2.

Теперь ЖК-дисплей готов к работе. Как только вы загрузите программу из следующего раздела на плату Arduino, то сможете отображать текст на экране. С помощью потенциометра отрегулируйте контрастность символов.

10.2. Библиотека LiquidCrystal

Arduino IDE включает библиотеку LiquidCrystal, имеющую набор функций для взаимодействия с параллельными ЖК-дисплеями. Библиотека довольно обширна и реализует такие функции, как мигающий курсор, автоматическая прокрутка текста, создание пользовательских символов, изменение направления вывода текста.

В этой главе мы рассмотрим только самые необходимые инструменты, чтобы понять, как взаимодействовать с дисплеем. Полное описание библиотечных функций и примеры, иллюстрирующие их использование, можно найти на сайте Arduino:

http://arduino.cc/en/Reference/LiquidCrystal.

10.3. Вывод текста на дисплей

В нашем первом примере выведем на экран индикатора текст и число, меняющееся со временем. Это упражнение проиллюстрирует, как инициализировать дисплей, отображать текст и перемещать курсор.

Сначала необходимо подключить библиотеку LiquidCrystaclass="underline"

#include <LiquidCrystal.h>

Затем нужно инициализировать объект LiquidCrystaclass="underline"

LiquidCrystal lcd (2,3,4,5,6,7);

Аргументы для инициализации объекта представляют собой контакты Arduino, подключенные к выводам ЖК-дисплея в следующем порядке: RS, EN, D4, DS, D6, D7. Чтобы настроить конфигурацию ЖК-индикатора, в функции setup() необходимо вызвать библиотечную функцию begin(), ее аргументы - число столбцов и строк вашего ЖК-дисплея:

lcd.begin (16, 2);

- 207 -

После этого можно вызывать библиотечные функции print() и setcursor() для вывода текста в определенном месте дисплея. Например, если вы хотите напечатать мое имя во второй строке, введите следующие команды:

lcd.setCursor (0,1);

lcd.print ("Jeremy Blum");

Позиции на экране нумеруются, начиная с (0,0), что соответствует левому верхнему углу. Первый аргумент функции setcursor() определяет номер столбца, а второй номер строки. По умолчанию курсор находится в позиции (0,0). При вызове функции print() без указания расположения курсора текст выводится, начиная с позиции в верхнем левом углу.