Опубликовано

ЖК-дисплей 1602 с модулем I2C

По материалам руководства для набора “Умный дом на базе Arduino. Большой набор + КНИГА

В 10-й главе книги Дж. Блума «Изучаем Arduino: инструменты и методы технического волшебства» подробно описано применение LCD-дисплея в проектах Arduino (стр. 202).

При разработке больших проектов на Arduino Uno очень часто для подключения различных устройств не хватает выводов. Например, для подключения одного LCD-дисплея в проекте из книги Дж. Блума (стр. 205, рис. 10.2) задействовано 6 цифровых выводов (D2 ÷ D7) и два вывода питания платы Arduino.

Чтобы сократить количество выводов для подключения LCD-дисплеев, можно использовать специальный интерфейсный модуль IIC/I2C (рис. L2.1), с помощью которого обмен данными между LCD-дисплеем (ЖКД) и Arduino осуществляется по последовательному протоколу I2C (Inter-Integrated Circuit), который подробно описан в 8-й главе книги Дж. Блума.

В этом случае будут задействованы только 4 вывода Arduino:

  • GND (Земля),
  • VCC (Питание +5V),
  • A4 (SDA, Serial Data — последовательные данные),
  • A5 (SCL, Serial Clock — cигнал последовательного тактирования).

Внешний вид, назначение контактов

Удобно приобрести модуль LCD-дисплея, на котором модуль IIC/I2C уже установлен (см. рис. L2.1). На модуле LCD-дисплея расположен потенциометр для управления контрастом дисплея.

L2-1-LCD

Рис. L2.1. Плата ЖКД 1602 с модулем I2C

Схема подключения

04-02-2-lcd

Рис. L2.2. Схема подключения LCD-дисплея с модулем I2C

Основные характеристики

Наименование Значение
Напряжение, В От 4,5 до 5,5
Ток, мА 1,5
Ток подсветки дисплея, мА 120
Напряжение подсветки дисплея, В От 4,1 до 4,3

Программный код

  1. Загрузите библиотеку LiquidCrystal I2C by Frank de Brabander для работы Arduino с LCD-дисплеем по протоколу I2C. Для этого откройте Менеджер библиотек, выполнив команду Инструменты | Управлять библиотеками. Справа вверху в строке поиска введите LiquidCrystal I2C. В открывшемся списке выберите LiquidCrystal I2C by Frank de Brabander. Нажмите кнопку Установка.
  2. Загрузите скетч из листинга L2.1. Адрес шины I2C по умолчанию: 0x27.

Примечание

Библиотеку также можно скачать в виде ZIP-файла по ссылке https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library и подключить в среду разработки Arduino IDE с помощью команды Скетч | Подключить библиотеку | Добавить .ZIP библиотеку….

Листинг L2.1. Тест LCD-экрана

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

//задаем адрес экрана 0x27, 16 символов, 2 строки

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {

lcd.init(); // Инициализируем экран включаем подсветку

lcd.backlight();

//Устанавливаем положение курсора для первой строки.

lcd.home();

//выводим строку 1

lcd.print("String 1 Test");

//выводим строку 2

lcd.setCursor(0, 1);

lcd.print("String 2 Test");

}

void loop() {

}

Библиотека LiquidCrystal_I2C не поддерживает кириллические символы. Для их отображения по адресу https://github.com/ssilver2007/LCD_1602_RUS скачайте и установите библиотеку LCD_1602_RUS (автор Сергей Сироткин). При этом основная библиотека LiquidCrystal_I2C должна быть уже установлена. Имейте в виду, что максимально возможно отображение восьми уникальных по начертанию русских символов (например: Ж, Д, И, Ю и т. п.).

Загрузите скетч из листинга L2.2 — теперь символы кириллицы должны отображаться корректно.

Листинг L2.2. Тест кириллических шрифтов на LCD-экране

#include <LCD_1602_RUS.h>

LCD_1602_RUS lcd(0x27, 16, 2);

void setup()

{

lcd.init();

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("Первая строка");

lcd.setCursor(0, 1);

lcd.print("Вторая строка");

}

void loop()

{

}