Модули для arduino lcd

Arduino и дисплей LCD1602

Описание

Классический LCD дисплей, раньше такие стояли в кассовых аппаратах и офисной технике.

  • Бывают разного размера, самый популярный – 1602 (16 столбцов 2 строки), есть ещё 2004, 0802 и другие. В наборе идёт 1602.
  • Снабжён отключаемой светодиодной подсветкой. Существует несколько вариантов, например синий фон белые буквы, зелёный фон чёрные буквы, чёрный фон белые буквы и проч. В наборе идёт с зелёным фоном и чёрными буквами.
  • Сам по себе требует для подключения 6 цифровых пинов, но китайцы выпускают переходник на шину I2C на базе PCF8574, что сильно упрощает подключение и экономит пины. В наборе идёт дисплей с припаянным переходником.
  • На переходнике также распаян потенциометр настройки контрастности (синий параллелепипед с крутилкой под крестовую отвёртку). В зависимости от напряжения питания нужно вручную подстроить контрастность. Например при питании платы от USB на пин 5V приходит

4.7V, а при внешнем питании от адаптера – 5.0V. Контрастность символов на дисплее будет разной!

  • Переходник может иметь разный адрес для указания в программе: 0х26 , 0x27 или 0x3F , об этом ниже.
  • Подключение

    Дисплей подключается по шине I2C, выведенной на пины:

    • Arduino: SDA – A4, SCL – A5
    • Wemos: SDA – D2, SCL – D1
    • Питание: 5V в обоих случаях

    Библиотеки

    Для этого дисплея существует несколько библиотек, я рекомендую LiquidCrystal_I2C от Frank de Brabander. Библиотека идёт в архиве к набору, а также её можно скачать через менеджер библиотек по названию LiquidCrystal_I2C и имени автора. Репозиторий на GitHub.

    Пример вывода

    При первой работе с дисплеем нужно настроить контраст и определиться с адресом:

    • Прошить пример “Демо”
    • Если дисплей показывает чёрные прямоугольники или пустой экран – крутим контраст
    • Если кроме чёрных прямоугольников и пустого экрана ничего не видно – меняем адрес в программе: 0х26 , 0x27 и 0x3F
    • Снова крутим контраст, должно заработать
    • Если не работает – проверяем подключение и повторяем сначала
    • Примечание: в наборе должны идти дисплеи с адресом 0x27 , но может зависеть от партии!

    Символы дисплея

    В памяти дисплея содержится 255 символов, это английские буквы, стандартные символы и китайские буквы. Стандартные символы, такие как !@#$%&()* и так далее выводятся через print() , остальные можно вывести по их коду при помощи write() :

    • Стрелка вправо – 126
    • Стрелка влево – 127
    • Символ градуса – 223
    • Прямоугольник – 255

    Свои символы

    Библиотека поддерживает создание “своих” дополнительных символов размером 5х7 точек, можно воспользоваться онлайн-генератором кодов символов – ссылка. Для компактности рекомендую переключить его в HEX. Вот так будет выглядеть “символ” крестик: byte myX[] = <0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00>;

    Дисплей имеет 8 ячеек под сторонние символы, добавляются они при помощи createChar(номер, массив) , где номер – от 0 до 7, а массив – имя массива с данными, которое мы создали для символа. Выводятся символы при помощи write(номер) .

    Важный момент: после вызова createChar сбрасывается позиция вывода текста, нужно обязательно вызвать setCursor!

    Важная информация по дисплеям

    Данная информация относится ко всем дисплеям.

    • Вывод данных на дисплей занимает время, поэтому выводить нужно либо по таймеру, либо по факту изменения данных.
    • Очищать дисплей полностью не всегда целесообразно, иногда достаточно вывести новые значения поверх старых, либо частично очистить “пробелами”.

    Источник

    Текстовый экран 16×2 / I²C: инструкция по подключению и примеры использования

    Текстовый экран 16×2 / I²C пригодится для вывода показаний датчиков, отображения простых меню, подсказок и приветствий.

    Видеообзор

    Примеры работы для Arduino

    В качестве примера подключим дисплей к управляющей плате Arduino Uno.

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

    Вывод Обозначение Пин Arduino Uno
    1 GND GND
    2 VCC 5V
    3 VO GND
    17 SDA SDA
    18 SCL SCL

    Для упрощения работы с LCD-дисплеем используйте встроенную библиотеку Библиотека для Arduino «Liquid Crystal I²C». В ней вы найдёте примеры кода с подробными комментариями.

    Вывод текста

    Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:

    Кириллица

    Существует способ вывода кириллицы на текстовые дисплеи с помощью таблицы знакогенератора.

    Таблица знакогенератора

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

    Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.

    Так букве Я соответствует код B1 в шестнадцатеричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности \x## встроить в строку код символа:

    Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0-9 и A-F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются.

    Сравните две строки кода для вывода надписи «Яeee»:

    Используя полученную информацию выведем на дисплей сообщение «Привет, Амперка!»:

    Переключение страниц знакогенератора

    Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:

    Дисплей не может одновременно отображать символы разных страниц.

    Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.

    Подключение нескольких дисплеев

    Используя шину I²C можно подключить несколько дисплеев одновременно, при этом количество занятых пинов останется прежним. Подробнее читайте в нашей документации.

    После физического смены адреса экрана, подключите дополнительный дисплей параллельно к пинам I²C , а в коде программы инициализируйте работу с двумя дисплеями.

    Примеры работы для Espruino

    В качестве примера подключим дисплей к управляющей плате Iskra JS.

    Подключение к Iskra JS

    Вывод Обозначение Пин Iskra JS
    1 GND GND
    2 VCC 5V
    3 VO GND
    17 SDA SDA
    18 SCL SCL

    Для работы с LCD-дисплеем из среды Espruino существует библиотека HD44780.

    Вывод текста

    Для вывода программы приветствия, воспользуйтесь скриптом:

    Кириллица

    Вывод кирилицы на дисплей с помощью платформы Iskra JS доступен через встроенную в дисплей таблицу знакогенератора.

    Таблица знакогенератора

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

    Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.

    Так букве Я соответствует код B1 в шестнадцатеричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности \x## встроить в строку код символа:

    Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0–9 и A–F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются.

    Сравните две строки кода для вывода надписи «Яeee»:

    Используя полученную информацию выведем на дисплей сообщение «Привет, Амперка!»:

    Переключение страниц знакогенератора

    Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:

    Дисплей не может одновременно отображать символы разных страниц.

    Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.

    Подключение нескольких дисплеев

    Используя шину I²C можно подключить несколько дисплеев одновременно, при этом количество занятых пинов останется прежним. Подробнее читайте в нашей документации.

    После физического смены адреса экрана, подключите дополнительный дисплей параллельно к пинам I²C , а в коде программы инициализируйте работу с двумя дисплеями.

    Комнатный термометр

    Дисплей удобен для отображения показаний модулей и сенсоров. Сделаем задатки «Умного Дома», а именно «комнатный термометр».

    Источник

    Обзор интерфейсного модуля IIC, I2C, TWI для LCD

    Автор: Сергей · Опубликовано 16.09.2016 · Обновлено 14.04.2021

    В этой статье расскажу, как использовать интерфейсный модуль 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 и загрузите в контроллер.

    Источник

    Adblock
    detector