Подключение LCD экрана LCM1602 с I2C к Arduino. Подключение LCD экрана LCM1602 с I2C к Arduino Поменять i2c адрес дисплея 1602

Пожалуй один из самых популярных экранов на рынке. Собран на популярном контроллере HD44780U. Из названия модели следует, что экран состоит из двух строк по 16 символов. Поддержки русского языка в этой конкретной модели нет.

Шина данных ш2с позволяет по двум проводам подключать до 127 устройств, при чем одновременно. Данный I2C реализован на чипе PCF8574T.

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

Синяя штука — переменное сопротивление, позволяет настроить контрастность экрана.

Перемычка слева — отвечает за подсветку экрана.

Блок из 4х контактов подключается к arduino так:

GND — GND
VCC — 5V
SDA — A4 (если Arduino MEGA, то к D20)
SCL — A5 (если Arduino MEGA, то к D21)

Библиотека

Скетч

У дисплея может быть другой IIC адрес, вместо 0x27 может оказаться 0x3F. Чтобы точно определить адрес можете воспользоваться сканером i2c устройств .

#include #include //задаем адрес LCD экрана 0x27, 16 символов, 2 строки LiquidCrystal_I2C lcd(0x27, 16, 2); void setup () { lcd.init(); // Инициализируем экран //включаем подсветку lcd.backlight(); //Устанавливаем позицию начиная с которой выводится текст. lcd.setCursor (2, 0); //выводим строку 1 lcd.print ("Hello, World!" ); //аналогично выводим вторую строку lcd.setCursor (1, 1); lcd.print ("www.сайт" ); } void loop () { }

В этой статье расскажу, как использовать интерфейсный модуль I2C для управления LCD дисплеем (2×16 / 20х4) с помощью Arduino. Данный модуль позволяет уменьшить количество используемых выводов контроллера, вместо 8 или 4-битного соединения, требуется только 2 вывода (SDA и SCL).

Технические параметры

Поддержка дисплеев: LCD 16×02 / 20×04
Дополнительно: регулировка контрастности
Напряжение питания. 5В
Интерфейс: I2C
Габариты: 54мм x 19мм x 15мм

Общие сведения интерфейсного модуля I2C

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

Теперь немного о самом модуле, построен он на микросхеме PCF8574T. Резисторы R8 (4.7кОм) и R9 (4.7кОм) необходимы для подтяжки линий SDA и SCL, в идеале при подключении двух и более устройств по шине I2C необходимо использовать подтяжку только на одном устройств, позже напишу почему. На плате предусмотрены три перемычки (по схеме видно что линии A0, A1, A2 подтянуты к питанию через резисторы R4, R5, R6), необходимы они для смены адресации устройства, всего их 8 вариантов. Изменение адресации дает нам возможность подключения до восьми устройств по шине IC2 c микросхемой PCF8574T, варианты адресов показаны на рисунке (по умолчанию адрес устройства 0x27). Так же модуль оснащен потенциометром R11 с его помощью можно изменить контрастность LCD дисплея.

Для соединения на модуле расположено три группы контактов:

Первая группа:
SCL: линия тактирования (Serial CLock)
SDA: линия данных (Serial Dфta)
VCC: «+» питание
GND: «-» питание

Вторая группа:
VSS: «-» питание
VDD: «+» питание
VO: Вывод управления контрастом
RS: Выбор регистра
RW: Чтение/запись (режим записи при соединении с землей)
E: Еnable (строб по спаду)
DB0-DB3: Младшие биты интерфейса
DB4-DB7: Старшие биты интерфейса
A: «+» питания подсветки
K: «-» питания подсветки

Третья группа: (по умолчанию установлена перемычка)
VCC:
A от LCD:

Подключение к Arduino

Необходимые детали:
Arduino UNO R3 x 1 шт.
LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
Интерфейсный модуль I2C, IIC, TWI для LCD x 1 шт.
Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Кабель USB 2.0 A-B x 1 шт.

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

Для наглядности, приведу еще одну схему.

Для этого эксперимента необходимо скачать и установить библиотеку «LiquidCrystal_I2C». Затем скопируйте и вставьте этот пример кода в окно программы IDE Arduino и загрузите в контроллер.

/* Тестировалось на Arduino IDE 1.6.11 Дата тестирования 15.09.2016г. */ #include #include LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размер дисплея void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.setCursor(0,0); // Устанавливаем курсор в начало 1 строки lcd.print("Hello, world"); // Выводим текст lcd.setCursor(0,1); // Устанавливаем курсор в начало 2 строки lcd.print("www.сайт"); // Выводим текст } void loop() { }

Если Вы правильно все сделали, но никаких символов на дисплее нет, попробуйте увеличить контрастность потенциометром.


Ссылки
Скачать библиотеку
Документация на микросхему
Документация к

Купить на Aliexpress

Пожалуй один из самых популярных экранов на рынке. Собран на популярном контроллере HD44780U. Из названия модели следует, что экран состоит из двух строк по 16 символов. Поддержки русского языка в этой конкретной модели нет.

Шина данных ш2с позволяет по двум проводам подключать до 127 устройств, при чем одновременно. Данный I2C реализован на чипе PCF8574T.

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

Синяя штука — переменное сопротивление, позволяет настроить контрастность экрана.

Перемычка слева — отвечает за подсветку экрана.

Блок из 4х контактов подключается к arduino так:

GND — GND
VCC — 5V
SDA — A4 (если Arduino MEGA, то к D20)
SCL — A5 (если Arduino MEGA, то к D21)

Библиотека

Скетч

У дисплея может быть другой IIC адрес, вместо 0x27 может оказаться 0x3F. Чтобы точно определить адрес можете воспользоваться сканером i2c устройств .

#include #include //задаем адрес LCD экрана 0x27, 16 символов, 2 строки LiquidCrystal_I2C lcd(0x27, 16, 2); void setup () { lcd.init(); // Инициализируем экран //включаем подсветку lcd.backlight(); //Устанавливаем позицию начиная с которой выводится текст. lcd.setCursor (2, 0); //выводим строку 1 lcd.print ("Hello, World!" ); //аналогично выводим вторую строку lcd.setCursor (1, 1); lcd.print ("www.сайт" ); } void loop () { }

В этой статье расскажу, как использовать интерфейсный модуль I2C для управления LCD дисплеем (2×16 / 20х4) с помощью Arduino. Данный модуль позволяет уменьшить количество используемых выводов контроллера, вместо 8 или 4-битного соединения, требуется только 2 вывода (SDA и SCL).

Технические параметры

Поддержка дисплеев: LCD 16×02 / 20×04
Дополнительно: регулировка контрастности
Напряжение питания. 5В
Интерфейс: I2C
Габариты: 54мм x 19мм x 15мм

Общие сведения интерфейсного модуля I2C

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

Теперь немного о самом модуле, построен он на микросхеме PCF8574T. Резисторы R8 (4.7кОм) и R9 (4.7кОм) необходимы для подтяжки линий SDA и SCL, в идеале при подключении двух и более устройств по шине I2C необходимо использовать подтяжку только на одном устройств, позже напишу почему. На плате предусмотрены три перемычки (по схеме видно что линии A0, A1, A2 подтянуты к питанию через резисторы R4, R5, R6), необходимы они для смены адресации устройства, всего их 8 вариантов. Изменение адресации дает нам возможность подключения до восьми устройств по шине IC2 c микросхемой PCF8574T, варианты адресов показаны на рисунке (по умолчанию адрес устройства 0x27). Так же модуль оснащен потенциометром R11 с его помощью можно изменить контрастность LCD дисплея.

Для соединения на модуле расположено три группы контактов:

Первая группа:
SCL: линия тактирования (Serial CLock)
SDA: линия данных (Serial Dфta)
VCC: «+» питание
GND: «-» питание

Вторая группа:
VSS: «-» питание
VDD: «+» питание
VO: Вывод управления контрастом
RS: Выбор регистра
RW: Чтение/запись (режим записи при соединении с землей)
E: Еnable (строб по спаду)
DB0-DB3: Младшие биты интерфейса
DB4-DB7: Старшие биты интерфейса
A: «+» питания подсветки
K: «-» питания подсветки

Третья группа: (по умолчанию установлена перемычка)
VCC:
A от LCD:

Подключение к Arduino

Необходимые детали:
Arduino UNO R3 x 1 шт.
LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
Интерфейсный модуль I2C, IIC, TWI для LCD x 1 шт.
Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
Кабель USB 2.0 A-B x 1 шт.

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

Для наглядности, приведу еще одну схему.

Для этого эксперимента необходимо скачать и установить библиотеку «LiquidCrystal_I2C». Затем скопируйте и вставьте этот пример кода в окно программы IDE Arduino и загрузите в контроллер.

/* Тестировалось на Arduino IDE 1.6.11 Дата тестирования 15.09.2016г. */ #include #include LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размер дисплея void setup() { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку lcd.setCursor(0,0); // Устанавливаем курсор в начало 1 строки lcd.print("Hello, world"); // Выводим текст lcd.setCursor(0,1); // Устанавливаем курсор в начало 2 строки lcd.print("www.robotchip.ru"); // Выводим текст } void loop() { }

Скачать программу

Если Вы правильно все сделали, но никаких символов на дисплее нет, попробуйте увеличить контрастность потенциометром.


Ссылки
Скачать библиотеку LiquidCrystal_I2C
Документация на микросхему PCF8574T
Документация к LCD1602A

Купить на Aliexpress

LCD I2C модуль позволить подключить символьный дисплей к плате Arduino всего по двум сигнальным проводам.

Используемые компоненты (купить в Китае):

. Управляющая плата

. Соединительные провода

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

Дисплей: Символьный 16х02 либо 20x04
. Подсветка: Синяя c белыми символами
. Контраст: Настраивается потенциометром
. Напряжение питания: 5В
. Интерфейс: I2C
. I2C адрес: 0x27
. Размеры: 82мм x 35мм x 18мм

Подключение к Arduino

Модуль оборудован четырех-пиновым разъемом стандарта 2.54мм

SCL : последовательная линия тактирования (Serial CLock)

SDA : последовательная линия данных (Serial DAta)

VCC : "+" питания

GND : "-" питания

Выводы отвечающие за интерфейс I2C на платах Arduino на базе различных контроллеров разнятся

Для работы с данным модулем необходимо установить библиотеку LiquidCrystal_I2C1602V1

Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

Переходим непосредственно к скетчу. В данном примере выведем стандартный "Hello, world!" и для адрес нашего сообщества.

пример программного кода:

#include #include LiquidCrystal_I2C lcd(0x27,16,2); /* Задаем адрес и размерность дисплея. При использовании LCD I2C модуля с дисплеем 20х04 ничего в коде изменять не требуется, cледует только задать правильную размерность */ void setup () { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку // Курсор находится в начале 1 строки lcd.print ("Hello, world!" ); // Выводим текст lcd.setCursor (0, 1); // Устанавливаем курсор в начало 2 строки lcd.print ("сайт" ); // Выводим текст } void loop () { }

Создание собственных символов

С выводом текста разобрались, буквы английского алфавита зашиты в память контроллера внутри дисплея и с ними проблем нет. А вот что делать если нужного символа в памяти контроллера нет?

Не беда, требуемый символ можно сделать вручную. Данный способ частично, ограничение в 7 символов, поможет решить проблему вывода.

Ячейка, в рассматриваемых нами дисплеях, имеет разрешение 5х8 точек. Все, к чему сводится задача создания символа, это написать битовую маску и расставить в ней единички в местах где должны гореть точки и нолики где нет.

В ниже приведенном примере нарисуем смайлик.

пример программного кода:

//Тестировалось на Arduino IDE 1.0.5 // Добавляем необходимые библиотеки #include #include // Битовая маска символа улыбки byte smile = { B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal_I2C lcd(0x27,20,4); // Задаем адрес и размерность дисплея. void setup () { lcd.init(); // Инициализация lcd lcd.backlight(); // Включаем подсветку // Создаем символ под номером 0 lcd.createChar (1, smile); lcd.setCursor (0, 0); // Устанавливаем курсор в начало 1 строки lcd.print ("\1" ); // Выводим смайлик (символ под номером 1) - "\1" } void loop () { }

Программка для легкого создания символов

В комментариях участник сообщества скинул ссылку на генератор символов


Top