Изучаем Arduino: инструметы и методы технического волшебства - [51]

Шрифт
Интервал

}


void loop()

{

tone(SPEAKER, freq);// Частота звука

}


- 199 -

Глава 10. Взаимодействие с жидкокристаллическими дисплеями

Список деталей

Для повторения примеров главы вам понадобятся следующие детали:

• плата Arduino Uno;

• USB-кабель В (для Uno );

• микрофон;

• цифровой SPI-потенциометр МСР4231;

• перемычки;

• макетная плата;

• динамик;

• две кнопки;

• вентилятор;

• 16х2-символьный ЖК-дисплей;

• 2 резистора номиналом 4,7 кОм;

• 2 резистора номиналом 10 кОм;

• 1 резистор номиналом 150 Ом;

• 1 потенциометр 10 кОм;

• датчик температуры ТС74AО-5.0 VAT I>2C;

• набор перемычек;

• макетная плата.

Электронные ресурсы к главе

На странице http://www.exploringarduino.com/content/ch10 можно загрузить программный код, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.

- 203 -

Что вы узнаете в этой главе

При проектировании автономных устройств стараются сделать так, чтобы их работа не зависела от компьютера. До сих пор для отображения информации, более сложной, чем включение индикатора, нам требовался внешний компьютер. Добавив жидкокристаллический дисплей (LCD) на плату Arduino, можно отображать сложную информацию (показания датчиков, отсчет временных промежутков, настройки и т. д.) непосредственно в устройстве без привязки к монитору компьютера.

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

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

ПРИМЕЧАНИЕ

Видеоурок о работе с жидкокристаллическим дисплеем находится по адрес?

http://www.jeremyblum.com/2011/07/31/tutorial-13-for-arduino-liquid-crystal-displays[12]

Вы также можете найти этот видеофайл на сайте издательства Wiley.

10.1. Настройка жидкокристаллического дисплея

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

Наиболее распространены дисплеи, содержащие 16х2 символов, имеющие 16 (или 14, если нет подсветки) контактов в один ряд. Для рассмотренных далее примеров выбран 16-контактный ЖК-дисплей, на экране которого одновременно может отображаться 32 символа (16 столбцов и 2 строки).

Если у вашего дисплея нет штырьков для монтажа, необходимо сначала припаять их, чтобы можно было установить его на макетной плате. Если штыревые контакты припаяны (как на рис. 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, имеющую набор функций для взаимодействия с параллельными ЖК-дисплеями. Библиотека довольно обширна и реализует такие функции, как мигающий курсор, автоматическая прокрутка текста, создание пользовательских символов, изменение направления вывода текста.