Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства
- Название:Изучаем Arduino: инструметы и методы технического волшебства
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3585-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства краткое содержание
Для радиолюбителей
Изучаем Arduino: инструметы и методы технического волшебства - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Наиболее распространены дисплеи, содержащие 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, имеющую набор функций для взаимодействия с параллельными ЖК-дисплеями. Библиотека довольно обширна и реализует такие функции, как мигающий курсор, автоматическая прокрутка текста, создание пользовательских символов, изменение направления вывода текста.
В этой главе мы рассмотрим только самые необходимые инструменты, чтобы понять, как взаимодействовать с дисплеем. Полное описание библиотечных функций и примеры, иллюстрирующие их использование, можно найти на сайте Arduino:
http://arduino.cc/en/Reference/LiquidCrystal.
10.3. Вывод текста на дисплей
В нашем первом примере выведем на экран индикатора текст и число, меняющееся со временем. Это упражнение проиллюстрирует, как инициализировать дисплей, отображать текст и перемещать курсор.
Сначала необходимо подключить библиотеку LiquidCrystal:
#include
Затем нужно инициализировать объект LiquidCrystal:
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() без указания расположения курсора текст выводится, начиная с позиции в верхнем левом углу.
ВНИМАНИЕ!
Функция print() не проверяет длину строк и попытка напечатать последовательность символов, превышающую число знаков в строке, приведет к непредсказуемым последствиям. Всегда проверяйте, чтобы выводимый текст помещался на экране индикатора.
Теперь можно написать простую программу, которая отображает текст в первой строке и во втором столбце, а также выводит значение счетчика, которое увеличивается на единицу каждую секунду. В листинге 10. 1 приведен текст данной программы. Загрузите ее на плату Arduino и убедитесь, что все работает правильно.
Если изображение на дисплее отсутствует, отрегулируйте контрастность с помощью потенциометра.
Листинг 10.1. Вывод текста и значений счетчика на экран ЖК-дисплея - LCD_text.ino
// Текст и значение инкрементируемого счетчика на экране
// Подключение библиотеки:
#include
// Начальное значение time = O
int time = 0;
// Инициализация экземпляра библиотеки LiquidCrystal
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup()
{
// Настройка экземпляра дисплея - число столбцов и строк:
lcd.begin(16, 2);
// Вывод текстового сообщения на экран дисплея
lcd.print("Jeremy's Display");
}
void loop()
{
// Установить курсор на вторую строку в первую позицию
lcd.setCursor(0,1);
- 208 -
// Вывод значения счетчика
lcd.print(time);
// Пауза 1 секунда
delay(1000);
// Увеличение значения счетчика
time++;
}
Программа должна быть вам понятна. В начале подключается библиотека LiquidCrystal. Переменной времени time присваивается нулевое начальное значение и затем оно увеличивается в цикле раз в секунду. Объект LiquidCrystal назван lcd и ему присвоены значения контактов, соответствующие схеме соединения.
Читать дальшеИнтервал:
Закладка: