Kservistorg.ru

Все о бытовой технике
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

О подключении и работе с текстовыми OLED-дисплеями Winstar

О подключении и работе с текстовыми OLED-дисплеями Winstar

Строчные (или текстовые) дисплеи предназначены для выдачи текстовой информации в виде строк. Они бывают нескольких типов (прежде всего, ЖК или самосветящиеся OLED), и обычно в их маркировке присутствуют цифры 1202, 1602, 1204 или похожие, указывающие на количество строк (в примерах 2 или 4) и знаков в каждой строке (12 и 16). Есть и однострочные дисплеи такого типа, но мы в дальнейшем изложении ориентируемся на более употребляемые двухстрочные.

Определяющая часть таких дисплеев совместима по управлению с контроллером HD44780 (фирма Hitachi). Самые популярные (по крайней мере, в нашей стране) дисплеи этой разновидности выпускает фирма Winstar. Причем ЖК-разновидности (название начинается с букв WH, например, WH1602) один в один совместимы с системой команд HD44780, а OLED-типы (название начинается с WEH, например, WEH001602) имеют усовершенствованный контроллер WS0010. К сожалению, или к счастью — сейчас будем разбираться.

В отличие от разобранных нами ранее графических дисплеев на основе контроллера ks0108, знакогенератор в строчных дисплеях встроенный. При этом для нас главным отличием WS0010 от стандартного HD44780 является наличие нескольких (четырех) кодовых таблиц для вывода разноязычного текста. У HD44780 такая таблица всего одна, отчего фирмам приходится в каждый регион продавать отдельную разновидность дисплея. OLED-дисплеи на основе WS0010 разбивки по регионам не требуют, что гораздо удобнее. Но только не пользователю: по умолчанию в WEH-дисплеях включена таблица ENGLISH_JAPANESE, и для включения русских символов нужно ее переключить на ENGLISH_RUSSIAN.

Стандартная (прилагаемая к Arduino IDE) библиотека LiquidCrystal, естественно, про четыре таблицы ничего не знает, и потому требует рихтовки, как минимум, в этом отношении. Но не только: можно, в конце концов, было бы обойтись английским языком. Однако, у WS0010 заметно отличается процедура инициализации, и если ее не подправить, то дисплей будет выдавать невесть что при каждом запуске.

Почему-то на дисплеи Winstar большой дефицит в плане внятной документации (как вы могли заметить, это вообще характерная черта китайских продуктов). Стоит указать, где можно скачать более-менее полную документацию без особых ошибок: здесь на ЖК-дисплей (WH1602) с контролером HD44780, здесь на дисплеи OLED-типа (WEH1602), здесь отдельно на контроллер WS0010 (на нее мы будем ссылаться далее). А вот здесь, если кому интересно, лежит подробное описание контроллера HD44780 на русском.

Рихтовка библиотеки LiquidCrystal

Для управления строчными дисплеями на HD44780 и его аналогах вполне годится стандартная библиотека LiquidCrystal, которая традиционно входит в поставку Arduino IDE всех версий. Для вывода русского текста имеется ее версия LiquidCrystalRus, которая на удивление неплохо работает во всех современных версиях Arduino IDE (сказывается, что автор корректно подошел к преобразованию UTF-8-символов). Но для приспособления под OLED-дисплеи на контроллере WS0010 правку внести все-таки потребуется. Мы в дальнейшем будем издеваться именно над этой библиотекой и потому переименуем ее в LiquidCrystalRus_OLED, чтобы не путать с обычной. Для упрощения задачи функции переименовывать не будем, потому инициализация будет такой же, как для оригинальной LiquidCrystalRus.

1. Так как русско-английская таблица в WS0010 (см. стр. 9 даташита на WS0010 по ссылке выше) имеет номер 2, то для переключения на нее нужно два младших бита FT1 и FT0 в команде FUNCTION SET установить в состояние 10 (0x02). (В ЖК-дисплеях с одной кодовой таблицей эти биты, кстати, никак не используются). Для этого в файле LiquidCrystalRus_OLED.cpp разыщите место (строка 96 файла), где устанавливается значение переменной _displayfunction. В обоих строках ее инициализации (строки 97 и 99) добавьте довесок «|= 0x02».

2. Далее нужно исправить задержку инициализации после включения питания. Для HD44780 она должна быть не более 40 мс (см. документацию по ссылкам выше). В библиотеке для этого используется функция delayMicroseconds(50000) (строка 120 файла LiquidCrystalRus_OLED.cpp). Для контроллера WS0010 нужно иметь задержку в десять раз больше — не менее 500 мс (см. последнюю страницу даташита по указанной выше ссылке). Требование это так тщательно спрятано (файлы с англоязычной документацией по дисплеям Winstar «потеряли шрифт» в как раз в этой части), что о нем, кажется, до сих пор мало кто задумывался. Поэтому мы заменяем эту строку на 32 повтора задержек по 16 мс каждая:

Читайте так же:
Паяльная станция регулировка напряжения паяльника

3. Кроме этого (см. также эту последнюю страницу даташита) после этой задержки при четырехпроводном включении нужно пять раз подряд подать пустую команду (0х00). Так как Arduino существенно быстрее контроллера дисплея, команды следует подавать с промежуточной задержкой. Их необходимо вставить чуть дальше по тексту функции begin, там, где идет речь именно о 4-битном включении (строка 147 файла LiquidCrystalRus_OLED.cpp).

4. Но и это еще не конец. В оригинальной таблице ENGLISH_RUSSIAN имеется значок градуса (код 0xEF). Вариант крайне неудачно выполнен графически (слишком велик), потому вместо него я предпочитаю использовать жирную верхнюю точку (код 0xDF) — она куда больше напоминает градус в привычном начертании. Ее можно было бы вводить в виде кода (лучше восьмеричного «337»), но вот беда — стремясь упростить функцию замены кодов русских букв на коды в таблице знакогенератора, автор библиотеки, исходя из кодировки UTF-8 (см. предыдущую статью), ввел условие замены любого кода, большего 0x80 (функция LiquidCrystalRus::write). Так как наше 0xDF явно больше 0x80, то при указании в строке кода символа «337» вместо него выведется пустое место, ибо никакой русской букве он не соответствует.

К сожалению, штатная функция createChar() при попытке с ее помощью создать собственный значок градуса у меня вводила дисплей в полный ступор, из которого вывести его можно было только перезагрузкой программы. С чем надо разбираться дополнительно и буду благодарен, если кто-нибудь укажет мне, в чем тут дело. Так что знакогенератор править не в наших возможностях, но мы можем исключить нужный нам символ 0xDF из условия. Для этого нужно заменить имеющееся (см. текст функции write) условие на следующее:

5. Наконец, перечеркнутый ноль на этом дисплее не так бросается в глаза, как на графических ЖК-экранах. Тем не менее, в эту же функцию write мной введена замена кода нуля (0x30) на код буквы «O» (0x4f). Желающие могут вернуть перечеркнутый ноль обратно, просто удалив или закомментировав строку замены (строка 308 измененного файла LiquidCrystalRus_OLED.cpp).
Подправленную библиотеку можно скачать по ссылке в конце статьи.

Подключение

Вот теперь вроде бы все подправили, можно подключать. Подключение дисплея WEH001602BG (16 символов, длина экрана 100 мм) к Arduino показано на следующем рисунке:

image

Выводы Arduino, к которым подключены контакты дисплея RS, E, DB4-DB7 должны указываться при инициализации дисплея:

При желании можно подключить два и даже более дисплеев в любом варианте интерфейса (восьми- или четырехпроводном). Линии данных и RS при этом можно сделать общими. Выбор между дисплеями в этом случае производится через вывод E, который для разных дисплеев подключается к разным выводам Arduino (линии подключения второго дисплея показаны на схеме серым цветом, вывод E второго дисплея здесь подключается к контакту 6 Arduino). Разумеется, в программе при этом надо создавать два экземпляра библиотеки (например, OLED1 и OLED2), у которых все выводы одинаковые, за исключением E. При этом дисплеи могут быть разных конфигураций и размеров (8х2, 16х2, 12х2, 12х4 и т.п.). Это относится и к случаю обычных ЖК-дисплеев на HD44780.

А зачем там реле на питание? Самый главный недостаток WS0010 — отсутствие аппаратного «резета». В HD44780 встроенный резет, возможно, оправдан — автор не имеет достаточно опыта работы с ЖК-экранами, чтобы утверждать это наверняка. Но Winstar, пытаясь в своей разработке следовать стандарту, с этой задачей явно не справилась. Перезагрузка контроллера без отключения питания приводит к тому, что на дисплее появляется всякая муть, и избавиться от нее можно только передергиванием питания всей схемы и инициализацией дисплея «с нуля».

Читайте так же:
Электронно оптическое устройство регулировки спектра освещения

Кроме того, дисплей при выключении/включении питания может путать строки местами. Народ уверяет, что помогает полноценное 8-битовое включение (вместо 4-битового), но у меня оно работало еще хуже. Упорно твердят также, что в гипотетических «новых партиях» это все уже исправлено, но верится с трудом (о каких таких «новых» партиях идет речь, когда OLED-дисплеи Winstar выпускает с 2008 года, а у меня были дисплеи 13 и 14 годов выпуска?).

Реле и поставлено для искусственной перезагрузки дисплея при перезагрузке Arduino без выключения питания. Это надежно избавляет от мусора на экране. Включение питания дисплея (или дисплеев) производится отдельно через это реле, включающееся от свободного вывода Arduino (в данном случае вывода 4) в начале процедуры setup, когда контроллер уже работает устойчиво. Причем перед включением реле неплохо еще дать дополнительную задержку 1000 мс (см. скетч далее). Указанное реле EDR202A05 герконовое, ток обмотки 10 мА, потому спокойно управляется от вывода Arduino.

Что же касается путаницы между строками при включении, то, кроме указанных выше изменений в процедуре инициализации, от этого эффекта отлично избавляет питание всей схемы от достаточно мощного (не менее 1-2 А) внешнего источника со стабильным напряжением под нагрузкой не менее 7,5 вольт. Эта зависимость от питания и служит, очевидно, источником разночтений во многих публикациях, где многие авторы уверяют, что у них все отлично работает. Дисплей (или дисплеи) при этом могут подключаться через внутренний стабилизатор Arduino (вывод 5V платы), а могут и через отдельный стабилизатор, но главное, чтобы входное напряжение стабилизатора было достаточно стабильным независимо от бросков потребления в момент включения.

Проверка

Для проверки я накидал демонстрационный скетч Proba_Rus_Liquid_Crystal_OLED, имитирующий дисплей часов-календаря с датчиком внешней температуры:

Здесь применены все характерные изменения в библиотеке, указанные выше. В программе также показано, как осуществить мигание двоеточия в значении часов: минут с помощью функции blink(). Учтите, что новый вывод в ту же позицию уничтожает мигание знакоместа, и при обновлении его приходится возобновлять заново, предварительно установив невидимый курсор на ту же позицию 13 в нулевой строке. При реальном обновлении часов может быть проще обновлять только цифры в позициях 11-12 и 14-15, оставляя мигающее двоеточие в неприкосновенности.

Результаты вывода примера показаны на фото:

image

Следует отметить, что фотография не передает оттенок свечения зеленого OLED-дисплея (в данном случае). На самом деле он глубокого зеленого цвета, с длиной волны короче, чем обычные 568 нм у LED-дисплеев (семисегментных или матричных). Отчего последние на фоне OLED кажутся «выцветшими», и их совместное применение затруднено.

WS0010 имеет графический режим, и в графических OLED-дисплеях Winstar (типа WEG010016) также установлен этот контроллер. Кто-то обратил внимание, что у них даже одинаковые матрицы. На мой взгляд, пытаться применять на текстовом строчном дисплее графический режим довольно бессмысленно: у строчного дисплея наличествуют аппаратно установленные темные промежутки между символами и строками, которые делают картинку крайне неэстетичной (см. многочисленные примеры таких попыток).

И последнее замечание: о долговечности OLED-дисплеев Winstar. В даташитах указано время 100 000 часов, то есть 11 лет. И тем не менее, один из дисплеев 13-го года выпуска (желтого свечения) к настоящему моменту (зима 16-го) у меня резко потерял в яркости. Забавно, что остальные из той же (зеленый) и более поздней (желтый и зеленый 14 года) партии не подают никаких признаков умирания. Поэтому с определенностью я ничего утверждать не берусь, но на всякий случай советую не впаивать дисплеи в плату, а устанавливать на разъемах, чтобы в случае чего можно было бы заменить без проблем.

Читайте так же:
Как удалить синхронизацию на самсунге

Характеристики

ИнтерфейсI2C
PCBЧерный
Напряжение2.5-6V
Размер41.5x19x15.3 мм
Вес5 г

Для ардуино, достаточно подключить 4 провода: SDA, SCL – I2C интерфейса и питание для модуля. На пример для Arduino Nano это будет:

ПереходникNano
GndGnd
Vcc5v
SDAA4
SCLA5

К 16-ти пиновому разьему, нужно подключить ваш LCD дисплей, причем для символьного дисплея достаточно 12 проводов, как изображено на рисунке:

Из библиотек, доступных прямо из aruinoIDE лучше всего подойдет LiquidCrystal_PCF8574 – установить ее можно, зайдя в менеджер библиотек, и набрав в поиске 8574:

Достаточно открыть идущий с этой библиотекой пример скетча, и ничего не меняя загрузить в Nano или любую другую arduino:

Описание протокола I2C

Прежде чем обсуждать подключение дисплея к ардуино через i2c-переходник, давайте вкратце поговорим о самом протоколе i2C.

I2C / IIC(Inter-Integrated Circuit) – это протокол, изначально создававшийся для связи интегральных микросхем внутри электронного устройства. Разработка принадлежит фирме Philips. В основе i2c протокола является использование 8-битной шины, которая нужна для связи блоков в управляющей электронике, и системе адресации, благодаря которой можно общаться по одним и тем же проводам с несколькими устройствами. Мы просто передаем данные то одному, то другому устройству, добавляя к пакетам данных идентификатор нужного элемента.

Самая простая схема I2C может содержать одно ведущее устройство (чаще всего это микроконтроллер Ардуино) и несколько ведомых (например, дисплей LCD). Каждое устройство имеет адрес в диапазоне от 7 до 127. Двух устройств с одинаковым адресом в одной схеме быть не должно.

Плата Arduino поддерживает i2c на аппаратном уровне. Вы можете использовать пины A4 и A5 для подключения устройств по данному протоколу.

В работе I2C можно выделить несколько преимуществ:

  • Для работы требуется всего 2 линии – SDA (линия данных) и SCL (линия синхронизации).
  • Подключение большого количества ведущих приборов.
  • Уменьшение времени разработки.
  • Для управления всем набором устройств требуется только один микроконтроллер.
  • Возможное число подключаемых микросхем к одной шине ограничивается только предельной емкостью.
  • Высокая степень сохранности данных из-за специального фильтра подавляющего всплески, встроенного в схемы.
  • Простая процедура диагностики возникающих сбоев, быстрая отладка неисправностей.
  • Шина уже интегрирована в саму Arduino, поэтому не нужно разрабатывать дополнительно шинный интерфейс.
  • Существует емкостное ограничение на линии – 400 пФ.
  • Трудное программирование контроллера I2C, если на шине имеется несколько различных устройств.
  • При большом количестве устройств возникает трудности локализации сбоя, если одно из них ошибочно устанавливает состояние низкого уровня.

MP1515SE
Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером

Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером Пример для работы с энкодером Hello MasterKit

Микропроцессорный Модуль для упрощения разработки и производства реальных устройств на микроконтроллерах. Предназначен для проектов где требуется мощный процессор, большая память, алфавитно-цифровой дисплей, навигация по меню и простое подключение к Windows PC в качестве HID-устройства (клавиатура, мышь. ). Для этого оснащен разъемом Mini-USB и интерфейсом USB 2.0 Device. Конструктивно поддерживает популярные дисплеи: 0802, 1602, 1604. Предусмотрены разъемы для подключения 2-х энкодеров с кнопкой и часов реального времени (RTC). Входы/выходы выведены на винтовые клеммы для подключения внешних устройств и продублированы на штыревых разъемах для удобства подключения дополнительных плат расширения собственной разработки, например, плат с исполнительными реле. Модуль создан на базе AVR-микроконтроллера ATmega32u4. Для написания программ можно пользоваться популярной оболочкой Arduino IDE.

о поступлении на склад

Этот товар доступен под заказ партией от 50 шт. по предоплате со сроком поставки 5 — 6 недель

Микропроцессорный Модуль для упрощения разработки и производства реальных устройств на микроконтроллерах. Предназначен для проектов где требуется мощный процессор, большая память, алфавитно-цифровой дисплей, навигация по меню и простое подключение к Windows PC в качестве HID-устройства (клавиатура, мышь. ). Для этого оснащен разъемом Mini-USB и интерфейсом USB 2.0 Device. Конструктивно поддерживает популярные дисплеи: 0802, 1602, 1604. Предусмотрены разъемы для подключения 2-х энкодеров с кнопкой и часов реального времени (RTC). Входы/выходы выведены на винтовые клеммы для подключения внешних устройств и продублированы на штыревых разъемах для удобства подключения дополнительных плат расширения собственной разработки, например, плат с исполнительными реле. Модуль создан на базе AVR-микроконтроллера ATmega32u4. Для написания программ можно пользоваться популярной оболочкой Arduino IDE.

Читайте так же:
Доводчик blum регулировка для кухонного шкафа

Технические характеристики

ИнтерфейсI2C, SPI, UART, USB 2.0
Напряжение питания (В)5
Количество линий ввода/вывода23
Тип питанияпостоянный, USB
Вес130

Инструкции

Особенности

  • Отличие платы MP1515 (прототип Leonardo и Micro) от других плат Ардуино в том, что USB-контроллер встроен непосредственно в микроконтроллер. При подключении к компьютеру MP1515 может определяться не только как виртуальный (CDC) COM-порт, но и как обычная мышь или клавиатура или другое HID-устройство: сканер штрих-кода, считыватель смарт-карт.. Есть и другие встроенные возможности:
  • Удобная установка типовых алфавитно-цифровых индикаторов 0802, 1602, 1604, установленный на плате резистор регулировки яркости
  • Разъемы для подключения валкодера МР1093 для организации меню управления, 2 канала управления
  • Разводка платы для установки расширителя линий ввода/вывода на микросхеме PCA9555PW
  • Подключение внешних устройств через клеммные разъемы
  • Установка дополнительных плат расширения с помощью штыревых разъемов
  • Встроенный USB для закачки прошивки. ПРОГРАММАТОР больше не нужен!
  • Возможность расширения памяти с помощью установки дополнительной микросхемы DD4. Необходимый объем памяти можно выбрать из списка

Дополнительная информация

Мастер Кит с практической пользой:

MP1515 предоставляет ряд возможностей для cвязи с компьютером, другой платой Ардуино, устройством с Андроидом или другими микроконтроллерами. ATmega32U4 поддерживает CDC связь через USB и при подключении к компьютеру может определяться как виртуальный COM-порт. При этом микросхема использует стандартные USB-COM драйвера и может работать в режиме USB 2.0 Full Speed.

В программном обеспечении Ардуино есть специальные команды для Leonardo позволяющие считывать и отправлять в буфер клавиатуры PC на Windows текстовые данные. Эта особенность позволяет построить собственные периферийные устройства для прикладных приложений на Windows, САПР, баз данных. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX.

В микроконтроллере ATmega32U4 также реализована поддержка последовательных интерфейсов I2C (TWI) и SPI, что используется в модуле MP1515 для подключения алфавитно-цифрового дисплея.

Модуль MP1515 может определяться как обычная клавиатура или мышь, для работы в этом режиме предназначены библиотеки Keyboard и Mouse

Микроконтроллер модуля прошит загрузчиком Atmel поэтому для загрузки hex-файлов необходимо использовать программу производителя FLIP. Скачать ее бесплатно по ссылкам на закладке скачать.Там же инструкция по пользованию программой.

Если для работы с модулем вы будете использовать ARDUINO IDE.

Для того чтобы плата узнавалась как Ардуино Леонардо — необходимо в первую очередь прошить загрузчик от Леонардо.

. учтите некоторые особенности, связанные со встроенным USB-портом. Для наглядности подключите модуль к вашему компьютеру и посмотрите в диспетчере устройств как отображается подключенная плата. Затем нажмите кнопку Сброс — произойдет переключение.

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Leonardo спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Сброс срабатывает после закрытия виртуального COM-порта, который предварительно был открыт на скорости 1200 бод. При срабатывании этого условия, процессор сбросится, разорвав USB соединение с компьютером, при этом виртуальный COM-порт исчезнет.

Из-за особенностей механизма сброса Leonardo, рекомендуется предоставлять программному обеспечению Ардуино возможность осуществить сброс перед загрузкой программы. Если же Arduino IDE не сможет сбросить устройство, вы всегда сможете запустить загрузчик, нажав кнопку сброса вручную, после окончания компиляции. После перезагрузки процессора, запускается загрузчик, оставаясь активным на протяжение 8 секунд. Обратите внимание, что при первом включении устройства вместо сброса и запуска загрузчика, контроллер сразу перейдет к выполнению пользовательской программы, если она записана в память.

Читайте так же:
Регулировка дверцы духового шкафа candy

Для подключения к устройству подходят дисплеи с такой цоколевкой выводов:

На ноге 1: должна быть земля, на ноге 2: + 5 Вольт. На некоторых моделях может цоколевка может быть другой, 5 В на ноге 1.

Дисплей, входящий в комплект может отличаться от изображенного на этом фото, но подключается так же:

Обратите пожалуйста внимание на цоколевку. Ножка 1 на дисплее расположена после ног 15 и 16:

Схемы

Принципиальная схема (в высоком качестве можно взять на закладке СКАЧАТЬ) - MP1515SE - Встраиваемый Ардуино-совместимый контроллер в комплекте с LCD1602 и энкодером

Принципиальная схема (в высоком качестве можно взять на закладке СКАЧАТЬ)

Вывод данных на дисплей

Если мы хотим выводить данные на дисплей, например с датчика температуры, то в том нам поможет следующий код:

Обратите внимание, что мы также сначала подключаем отдельную библиотеку для датчика температуры и влажности DHT. Для нашего дисплея прописаны также цифры и буквы, но они не относятся к коду – эта часть кода лишь показывает нам, что библиотека позволяет модулю отображать цифры от 0 до 9 в обычном режиме, и от 10 до 15 в виде букв.

Далее прописываем, к какому выводу подключаем наши модули, по сравнению с предыдущей схемой у нас добавляется подключение цифрового вывода с датчика температуры к пину номер 2.

В функции void setup инициализируем работу датчиков и запускаем цикл. В самом цикле считываем показания с датчика температуры: в переменную temp сохраняем значение температуры, а в значение humidity влажности.

Далее идет деление этих значений на 10, чтобы выводить эти данные на наш дисплей, так как на семисегментный дисплей можно выводить информацию только посимвольно.

Последние восемь строчек посвящены выводу данных непосредственно на дисплей. Последним значением выведем символ С, для температуры и F для влажности. И также поставим задержку в 5 секунд между передачей показаний.

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

Скетч

Следующий тестовый скетч напечатает сообщение «Hello World!». Далее разберем его работу по подробнее.

Объяснение кода:

Скетч начинается с подключения библиотеки LiquidCrystal. Как упоминалось ранее в этом руководстве, в сообществе Arduino есть библиотека LiquidCrystal, которая облегчает использование LCD дисплеев. Вы можете узнать больше о библиотеке LiquidCrystal на официальном сайте Arduino .

Далее мы должны создать объект LiquidCrystal. Этот объект использует 6 параметров и указывает, какие выводы Arduino подключены к выводам RS, EN и выводам данных: d4, d5, d6 и d7.

Теперь, когда мы объявили объект LiquidCrystal, мы можем получить доступ к специальным методам (или функциям), специфичным для ЖК-дисплея.

В функции setup() мы будем использовать две функции: первая функция begin(). В ней указываются размер дисплея, т.е. количества столбцов и строк. Если вы используете 16 × 2 символьный ЖК-дисплей, укажите параметры 16 и 2, если вы используете ЖК-дисплей 20 × 4, укажите параметры 20 и 4.

Вторая функция clear() очищает экран и перемещает курсор в верхний левый угол.

В функции loop() мы используем функцию print(), выводящая сообщение, которое мы видим в первой строке экрана.

После этого мы переводим курсор на вторую строку, вызвав функцию setCursor(). Позиция курсора указывает место, где вам нужно отобразить новый текст на дисплее. Верхний левый угол считается col = 0, row = 0.

Материалы

Купить LCD Adapter PCF8574 на AliExpress

TENSTAR ROBOT LCD1602+I2C LCD 1602 module Blue/Green screen PCF8574 IIC/I2C LCD1602 Adapter plate

TENSTAR ROBOT LCD1602+I2C LCD 1602 module Blue/Green screen PCF8574 IIC/I2C LCD1602 Adapter plate

2PC IIC/I2C LCD1602/2004 Adapter Plate for arduino Interface lcd1602 I2C LCD Adapter PCF8574

New IIC/I2C / Interface LCD1602 1602A 2004 LCD Adapter Plate Wholesale Electronic

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector