Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей

Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей

Сегодня изучим LCD индикаторы. Иногда их ещё называют ЖК – жидкокристаллические экраны.

  • Рассмотрим LCD 1602 и LCD2004.
  • Два способа подключения. С помощью параллельной шины LCD и I2C.
  • Узнаем адрес в I2C на котором подключен экран используя сканер.
  • Протестируем дисплей на наличие или отсутствии русского шрифта.
  • Рассмотрим таблицу знакогенератора. Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. 
  •  Научимся создавать свои символы 


В самом названии LCD 1602 и LCD2004 заложено количество символов в строке и количество строк.
Так в LCD 1602 – 16 символов в 2 строчках,
LCD2004 уже 20 символов в 4 строчках.
Ещё они отличаются цветом подсветки. Например, синяя или желтая подсветка.

Приступаем к изучению.
Сначала нам нужно узнать по какому адресу находится LCD дисплей. Для этого нам понадобится скетч Сканер I2C. 

Характеристики дисплеев.

Характеристики
•    Символов: 16
•    Строк: 2
•    Напряжение питания VCC,В: от 4.7 до 5.3
•    Ток потребления ICC,мА: 1.5
•    Размеры модуля, мм: 80x36x11;
•    Размеры индикатора, мм: 64.5x14;
•    Цвет точки: серый, позитивный;
•    Цвет LED подсветки: желто-зеленый;
•    Интерфейс: последовательный 8 бит.


Очень удобно пользоваться дисплеем с I2C адаптером. Если у вас простой дисплей, без модуля I2C, то вы можете купить модуль отдельно и припаять его к дисплею.
I2C адаптером  - это преобразователь интерфейсов обеспечивающий обмен между параллельной шиной LCD и шиной I2C. И вместо 8 контактов на Ардуино вам понадобится всего 2, а к самой шине I2C можно подключить огромное число различных устройств.
Адрес адаптера хранится в энергонезависимой памяти.

Рассмотрим работу скетча Сканер I2C.
Сканер прослушивает все адреса и если будет найдено устройство подключённое к шине I2C то в монитор порта будет выведен адрес устройства который нужно запомнить и затем ввести в код для работы с этим устройством.

Для начала работы нужно установить библиотеку LiquidCristal_ITC. Как добавлять библиотеки мы уже много раз рассматривали. Если вы не знаете, то посмотрите предыдущие видео, там я подробно рассказывал как это делать. Загрузим скетч из архива. HelloWorld. Или из примера библиотеки.

Здесь указываем адрес устройства которое определил сканер. И какой у вас дисплей. 16 или 20 знаков.
Здесь мы инициализируем дисплей.
Включаем на нём подсветку. 
Устанавливаем курсор на 3 знакоместо экрана, так как отсчёт ведётся с 0.
Выводим текст. Перемещаем курсор на 2 строку и 2 символ.
Выводим другую надпись.
Прошиваем контроллер и смотрим результат. Мы видим, что обе надписи вывелись на экран и именно там где мы и хотели. 

Теперь попробуем вывести надпись на русском языке. То есть кириллицей. Для этого закоментируем эти строки и расскомментируем эти. Прошиваем Ардуино и видим непонятные зюки. Это потому, что наш дисплей не поддерживает русскую кодировку. Так как там не прошиты русские символы. 

Для того что бы выводить текст у вас должна быть установлена библиотека LCD 16 02 RUS ALL
По моему мнению – это самая лучшая библиотека для вывода кириллицы на экран. Она работает с разными дисплеями с 16 и 20 символами и с подключением по I2C и прямым подключением.
Если вы уже установили уту библиотеку, то просто меняем заголовочный текст в скетче на этот.
Этим мы подключаем библиотеку и указываем адрес устройства и тип дисплея.
Больше ничего менять не надо.
Теперь прошиваем и видим, что проблема с кодировкой исчезла. Теперь можно выводить любой текст на экран.

Теперь давайте рассмотрим что же такое кодировка.
В памяти дисплея прошиты символы к которым можно обратиться из программы по определённым адресам. 
Например запустив этот скетч вы можете узнать, поддерживает ли ваш дисплей русскую кодировку или нет. 
А ещё есть память ОЗУ в которую можно прошить 8 своих символов. Эти места находятся в первом столбце таблицы. Как создавать свои символы мы рассмотрим чуть позже. 

Каждый раз когда вы пишете в своём скетче текст вы обращаетесь к этим символам по этим адресам. И если бы вы не использовали библиотеку, то вам пришлось бы писать эти адреса. Что как видно совсем не просто. Вот всю эту грязную работу выполняет за вас библиотека.
А здесь разработчиками были оставлены 2 пустых столбца. Зачем я не знаю. Лучше бы они туда русский шрифт разместили. 
А здесь размещены символы которые не входят в основную кодировку. Вот она и меняется производителем в зависимости от страны использования. И если ваш дисплей не показывает здесь русского алфавита, то значит у него нет поддержки русских текстов. Но мы сможем обойти эти ограничения используя библиотеку.

Это скетч из примеров библиотеки. Как видим разработчиками были созданы символы сердце, смайлик, и человечек. Дальше я покажу как создавать свои символы. Не забудьте, в скетче, одновременно, можно использовать до 8 символов. Но это можно обойти, если в процессе выгружать из памяти уже не нужные символы и загружать новые.

Для создания символов будем использовать эту программу. Если вам она не понравилась, то можете найти другую, их много.
Заходим и настраиваем программу. Здесь ничего сложного. Главное указать, что у вас Ардуино, и выбрать I2C.
Вам создадут скетч, который вы можете скопировать и разместить на своей странице. Не забудьте вставить свой адрес и тип дисплея.
Теперь нащёлкиваем свой символ и копируем.

Открываем свой скетч и вставляем скопированный код. Ещё раз проверяем адрес и тип дисплея.
Компилируем и получаем ошибку. Это из-за того, что код всё равно скомпилировался для парцелльного подключения. Исправляем эту строчку.
Еще раз прошиваем. Теперь мы видим символ на экране, но у нас не включена подсветка. Возвращаемся и включаем подсветку. Прошиваем и вот теперь всё хорошо.

Теперь попробуем создать анимированный символ. Для работы с устройствами нам часто приходится использовать батарейки. Давайте сделаем символ который будет показывать значение остаточного напряжения на батарейке. Ну, то есть на сколько она разряжена. Для этого создадим несколько вариантов символов батарейки. От почти разряженной до полностью заряженной. После создания каждого варианты мы копируем код.  Теперь нам не надо копировать весь код, а только сам массив.
Единственное, то надо делать – это давать массиву различные имена. Я буду прибавлять каждому имени по 1.
Также в сетапе копируем строку вывода символа. И так же меняем названия.
Я сделал 4 символа, но можно было бы и больше.
Теперь прошиваем скетч и смотрим что получилось. И видим, что батарейка вывелась на экран, но показан только последний символ. Символ полностью заряженной батарейки.
Давайте скопируем весь код и поместим его в луп. Пусть выполняется без конца.
И поставим небольшие задержки после каждого вывода символа, а иначе мы не заметим изменений.
Прошиваем и видим, что что-то не то.
А всё потому, что я при копировании захватил  лишнее. Вернём это обратно в сетап.
Прошиваем.
Видим, что теперь всё работает как надо. И батарейка постепенно заполняется. Если вставить каждый символ в определённое место программы, отвечающее за разряд батарейки, то можно видеть на сколько разряжена батарейка.

А теперь давайте напишем небольшой код для вывода на экран. До этого мы выводили только статичный текст. Например давайте сделаем секундомер. Этот скетч будет прибавлять по 1 каждую секунду.
Выводить будем всё в одной строке. 
Слово Секундомер будем выводить начиная с первого знака, а сам счётчик начиная с 13 знакоместа. Не забываем, что счёт идёт с 0.
Прошиваем. Но скетч нам возвращает ошибку. Это всё потому, что мы пытались вывести на экран цифру. То есть результат имеющий тип int. А на экран можно выводить только текстовую информацию. 
Переведём int в string. Сделаем из цифры текст.
Теперь скетч прошился без ошибок и на экране мы видим надпись Секундомер и меняющиеся цифры с частотой в 1 секунду. 
А это один из примеров входящих в библиотеку. На этом индикаторе можно делать бегущие строки. 
Для этого в библиотеке есть различные функции. Мы их рассмотрим дальше в видео.
Кстати вот так я подключил 4 строчный индикатор на 20 символов без шины i2c.

А теперь давайте рассмотрим примеры работы с курсором.
Для того чтобы увидеть курсор его надо включить. Курсор может иметь два вида. В виде подчёркивания и как мигающий прямоугольник. Устанавливаем курсор на 9 знакоместо.
Прошиваем и видим курсор по середине экрана.
Теперь изменим тип курсора с подчёркивания на мигающий прямоугольник. Чтобы отключить, надо набрать ноублинк. Прямоугольник пропадёт, а подчёркивание останется до тех пор пока не отключим курсор.

Теперь немного познакомимся с функциями библиотеки. Я покажу только основные из них.
Например можно выводить текст справа на лево. А вот тут произошёл обломс. Русская библиотека не работает с функциями. Поэтому будем работать с основной библиотекой.
Загружаем пример HELLO WORLD из библиотеки Liquid Crystal i2c.

Снова вставляем выводить текст справа на лево. И наш текст убежал за пределы экрана. Так как он вывелся с 4 знакоместа и ушёл вправо. Изменяем начало текста. Я забыл и написал с 16 места, забыв что счёт идёт с нуля. Поэтому первый символ стал за границы экрана. Исправил на 15.
Теперь мы получили текст справа на лево, начинающийся с крайней правой точки первой строки.
А теперь для сравнения добавим этот же текст, но с лево на право.

Давайте сдвинем все тексты на экране на 1 символ вправо. Видим, что у нас пропал первый символ первой строки, так как всё передвинулось вправо.
Ещё есть возможность скрыть весь текст на экране не удаляя его и не очищая экран. Теперь размещу функцию показать всё на дисплее в середину текста. Как можно увидеть, часть экрана показать нельзя. Только или скрыть весь экран или показать весь экран.

Ну и в конце покажу как я подключил 4 строчечный дисплей без i2c. Подстроечным резистором можно регулировать яркость и контрастность экрана, добиваясь нужной яркости.
И покажу как смотрится таблица символов на этом экране. Я вывел только основную страницу.
На этом я заканчиваю этот большой урок про LCD дисплеи.

Характеристики I2C адаптера.

Характеристики
•    Напряжение питания: 5 В.
•    Потребляемый ток: до 6 мА.
•    Интерфейс: I2C.
•    Скорость шины I2C: 100 кбит/с.
•    Адрес на шине I2C: устанавливается программно (по умолчанию 0x09).
•    Уровень логической 1 на линиях шины I2C: 3,3 В (толерантны к 5 В).
•    Рабочая температура: от -20 до +70 °С.
•    Габариты: 41,91 х 17,15 мм (1650 x 675 mil).
•    Вес: 6 г.
 


Примеры подключения и использования LCD дисплей 1602 и 2004
Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей
Простой таймер на Ардуино с реле и обратным отсчётом
Игры на Ардуино с дисплеем LCD 1602
Подключение I2C дисплея к ардуино. Русификация текста.
Модуль rfid rc522 идентификация. Карта rfid пропуск
Уроки ардуино Простой калькулятор
Температура процессора и видеокарты, их частота и загруженность.
rfid система. LCD дисплей 1602. Русификация
rfid идентификация. Учёт посещаемости Время прихода и ухода
LCD Дисплей 1602 и 2004: Проекты и Подключение к Arduino