Разобрать схему подключения LCD дисплея 16х2 к платам Arduino Uno и Mega 2560.
Рассмотреть программную реализацию вывода на дисплей тестовой информации.
ТЕОРИЯ
Дисплей LCD-1602G самое популярное устройство для отображения информации для начинающих. Не высокая цена, возможность не сложного подключения и простота программирования делают его участником большинства не сложных проектов.
Подключение дисплея LCD1602 по параллельному интерфейсу немного сложнее, чем через конвертер по шине I2C, а также требуется дополнительный элемент — потенциометр для регулировки контрастности. Минусом такого подключения является необходимость задействовать практически все порты ARDUINO UNO. На сегодняшний день практически не используется.
Шина данных дисплея состоит из 8 линий (D0-D7), но если подключить только старшие 4 линии (D4-D7). Вы можете подключать выводы D0-D7, E и RS дисплея, к любым выводам Arduino, указав их в скетче при объявлении объекта библиотеки.
Для удобного подключения дисплея LCD1602 рекомендуется использовать конвертер LCD-1602-IIC-Adapter
ПЕРЕЧЕНЬ КОМПОНЕНТОВ
ARDUINO UNO R3 (оригинальная плата)
ARDUINO MEGA 2560 (оригинальная плата с микросхемой ATmega 2560)
LCD дисплей 16х2 с модулем I2C
Монтажная плата
Соединительные провода
МАКЕТ СХЕМЫ. ПОДКЛЮЧЕНИЕ К ARDUINO UNO.
Практическая реализация макета
Для начала приведем общий листинг программы.
#include <Wire.h> // Подключаем библиотеку для работы с протоколом I2C
#include <LiquidCrystal_I2C.h> // Подключаем библиотеку <Экран> с блоком I2C
LiquidCrystal_I2C lcd(0x27,16,2);// Обозначаем именем lcd объект-дисплей. Андрес объекта 0х27. Характеристики: 16 символов, 2 строки.
Стоит еще раз отметить, что в строке 4 первым значением в скобках стоит назначаемый адрес для дисплея (0х27). Если адрес указан верно, то в момент запуска программы вы будете наблюдать секундное выключение дисплея и последующее включение с нужной информацией. Если это не произошло, адрес указан не верно. На занятиях нам попадались дисплеи с адресом 0х30.
В блоке void setup() у нас две команды.
lcd.init();
lcd.backlight();
lcd.init(); отвечает за инициализацию дисплея, а lcd.backlight(); за включение подсветки. Попробуйте выключить программно подсветку, в определенных условиях внешнего освещения можно получить интересный эффект.
Думаю, не сложно понять из анализа этого блока программы, что первая цифрав скобках определяет номер позиции в строке, с которой будет выводиться надпись. Вторая цифра определяет строку, в которой будет выводиться надпись.
МАКЕТ СХЕМЫ. ПОДКЛЮЧЕНИЕ К ARDUINO MEGA 2560.
В связи с большим количеством портов Arduino Mega 2560 подключение LCD дисплея имеет определенные особенности. В отличии от Arduino UNO, за реализацию обмена данными по протоколу I2C в Arduino Mega отвечают порты 20,21 которые изначально и предполагались для подключения сигналов SDA и SCL. В остальном работа с LCD-дисплеем остается классической для такого типа устройств.