Урок 23. Подключение ЖК (LCD) индикаторов к Ардуино. Библиотека LiquidCrystal.

LCD индикатор

В уроке поговорим о знакосинтезирующих жидкокристаллических индикаторах, о подключении их к плате Ардуино и управлении индикаторами с помощью библиотек LiquidCrystal и LiquidCrystalRus.

Предыдущий урок     Список уроков     Следующий урок

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

  • Практически сложно подключить к микроконтроллеру более 8ми разрядов светодиодных индикаторов. Требуется большое число выводов, значительные токи индикаторов, сложные ключи, низкая частота регенерации и т.п.
  • Невозможно отображать на семисегментных индикаторах символьную информацию.

 

Для вывода текстовой информации или чисел размером более 4 разряда гораздо практичнее использовать жидкокристаллические знакосинтезирующие индикаторы (дисплеи). К их достоинствам следует отнести:

  • удобный для подключения к микроконтроллерам интерфейс;
  • малая потребляемая мощность;
  • низкое напряжение питания;
  • долговечность.

На рынке существует большое число разнообразных жидкокристаллических (LCD) индикаторов разных производителей. Практически все они аналогичны по параметрам, сигналам интерфейсов, командам управления. В данный момент наиболее распространенными ЖК индикаторами на российском рынке являются устройства производства компании Winstar, Тайвань. Я буду ссылаться на индикаторы этой фирмы. Но информация вполне применима и для символьных LCD дисплеев других производителей.

Общие сведения.

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

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

Для управления жидкокристаллической матрицей и организации интерфейса индикатора используется встроенный контроллер  HD44780 или его полные аналоги. Этот контроллер определяет сигналы интерфейса индикатора и команды управления.

HD44780 стал де-факто стандартом для символьных жидкокристаллических (LCD) дисплеев. Техническую документацию по контроллеру  HD44780 в формате PDF можно посмотреть по этой ссылке - HD44780.pdf. Может кому-то больше понравится документация одного из аналогов этого контроллера – SPLC780D. Ссылка в формате PDF – SPLC780.pdf.

Символьные LCD индикаторы фирмы Winstar.

Мне известны следующие варианты ЖК индикаторов этой фирмы.

Тип индикатора Формат отображения, символов x строк Габариты, мм Размеры видимой области, мм Ссылка на документацию, формат PDF
WH0802A1 8 x 2 58 x 32 38 x 16

pdf

WH1202A 12 x 2 55,7 x 32 46 x 14,5
WH1601A 16 x 1 80 x 36 66 x 16
WH1601B 16 x 1 85 x 28 66 x 16
WH1601L 16 x 1 122 x 33 99 x 13
WH1602A 16 x 2 84 x 44 66 x 16
WH1602B 16 x 2 80 x 36 66 x 16
WH1602C 16 x 2 80 x 36 66 x 16
WH1602D 16 x 2 85 x 30 66 x 16
WH1602J 16 x 2 80 x 36 66 x 16
WH1602L1 16 x 2 122 x 44 99 x 24
WH1602M 16 x 2 85 x 32,6 66 x 16
WH1602O 16 x 2 85 x 25,2 66 x 16
WH1602P 16 x 2 85 x 25,2 66 x 16
WH1602S 16 x 2 59 x 29,3 52 x 15
WH1602T 16 x 2 65,4 x 28,2 54,8 x 19
WH1602W 16 x 2 80 x 36 66 x 16
WH1602V2 16 x 2 66,7 x 23,3 61 x 15,9
WH1604A 16 x 4 87 x 60 62 x 26
WH1604B 16 x 4 70,6 x 60 60 x 32,6
WH2002A 20 x 2 116 x 37 85 x 18,6
WH2002D 20 x 2 89 x 21,5 75 x 15
WH2002L 20 x 2 180 x 40 149 x 23
WH2002M 20 x 2 146 x 43 123 x 23
WH2004A 20 x 4 98 x 60 77 x 25,2
WH2004B 20 x 4 98 x 60 77 x 25,2
WH2004D 20 x 4 77 x 47 60 x 22
WH2004G 20 x 4 87 x 58 74,4 x 24,8
WH2004H 20 x 4 87 x 58 74,4 x 24,8
WH2004L 20 x 4 146 x 62,5 123,5 x 43
WH2402A 24 x 2 118 x 36 94,5 x 16
WH4002A 40 x 2 182 x 33,5 154,4 x 16,5
WH4004A 40 x 4 190 x 54 147 x 29,5

 

Подключение LCD индикатора к микроконтроллеру.

Схемы подключения, временные диаграммы, параметры сигналов, команды управления, коды символов подробно расписаны в документации на контроллер HD44780. Я приведу только самые необходимые данные о подключении индикаторов к микроконтроллерам.

Как правило, LCD индикаторы имеют 16 выводов.

Номер вывода Сигнал I - вход O - выход Назначение сигнала
1 Vss - Земля (общий провод)
2 Vdd - Питание + 5 В
3 Vo - Управление контрастностью дисплея. Вход для подключения среднего вывода делителя напряжения + 5 В. Можно использовать подстроечный резистор сопротивлением 10-20 кОм.
4 RS I Выбор регистра: 0 – регистр команд; 1 – регистр данных. Низкий уровень сигнала означает, что на шине данных сформирована команда, высокий уровень – на шине данные.
5 R/W I Направление передачи данных:

0 – запись;

1 – чтение.

Во многих приложениях функция чтения не используется, поэтому сигнал часто подключается к земле.

6 E I Строб операции шины (по отрицательному фронту).
7 DB0 I/O Младшие биты восьми битного режима. При четырех битном интерфейсе не используются.
8 DB1 I/O
9 DB2 I/O
10 DB3 I/O
11 DB4 I/O Старшие биты восьми битного режима или биты данных  четырех битного интерфейса.
12 DB5 I/O
13 DB6 I/O
14 DB7 I/O
15 A - Анод питания подсветки (+).
16 K - Катод питания подсветки (-).  Ток должен быть ограничен.

Номер вывода (первый столбец) приведен для наиболее распространенного варианта. Лучше проверьте, загрузив документацию на Ваш тип индикатора из таблицы  предыдущего раздела.

Символьные ЖК дисплеи поддерживают два варианта подключения к микроконтроллеру:

  • С использованием 8ми битной шины данных. Подключаются все сигналы шины DB0-DB7. За один цикл обмена передается байт информации.
  • С применением 4х битной шины данных. Подключаются только 4 старшие разряда DB4-DB7. Информация передается по четыре бита за один такт шины.

Первый вариант обеспечивает передачу данных на дисплей с большей скоростью. Второй – требует для подключения индикатора на 4 вывода меньше. Несомненно, важнее сократить число выводов для подключения, чем увеличить скорость обмена. Тем более, что LCD индикаторы довольно медленные устройства со временем цикла регенерации 10-20 мс.

 

Подключение символьного ЖК (LCD) дисплея к плате Ардуино.

Я буду подключать индикатор WH2004A (4 строки по 20 символов) в четырех битном режиме обмена к плате Arduino UNO R3. Документацию на LCD дисплей WH2004 можете посмотреть по этой ссылке WH2004.pdf.

Схема выглядит так.

Схема подключения LCD индикатора к Ардуино

Резисторы R2 и R3 определяют контрастность индикатора. Можете подключить подстроечный резистор и установить необходимую четкость изображения. Я часто использую индикаторы  WH2004, и в своих схемах выбираю такие номиналы резисторов.

Светодиоды подсветки индикатора я подключил к источнику питания 5 В через резистор R1 (30 Ом). Этим я задал ток порядка 25 мА. Тускло, но светится. В темноте видно хорошо. Хотя индикаторы WH2004 допускают ток подсветки до 580 мА.

Подключение LCD индикатора к Ардуино

Библиотека для управления LCD индикаторами в системе Ардуино LiquidCrystal.

Существует стандартная библиотека для управления ЖК индикаторами на базе контроллера HD44780. Подробно опишу ее методы.

LiquidCristal(…)

Конструктор класса. Может иметь разное число аргументов.

  • LiquidCristal(rs, en, d4, d5, d6, d7) – четырех битный интерфейс, сигнал RW не используется (подключен к земле).
  • LiquidCristal(rs,rw, en, d4, d5, d6, d7) – четырех битный интерфейс, сигнал RW используется.
  • LiquidCristal(rs, en, d0, d1, d2, d3, d4, d5, d6, d7) – восьми битный интерфейс, сигнал RW не используется (подключен к земле).
  • LiquidCristal(rs, rw, en, d0, d1, d2, d3, d4, d5, d6, d7) – восьми битный интерфейс, сигнал RW используется.

Аргументы:

  • rs – номер вывода сигнала RS;
  • rw – номер вывода сигнала RW;
  • en – номер вывода сигнала E;
  • d0, d1, d2, d3, d4, d5, d6, d7 – номера выводов шины данных.

LiquidCrystal  disp(6, 7, 2, 3, 4, 5);

 

void begin(cols, rows)

Инициализирует интерфейс индикатора. Задает размерность индикатора. Метод должен быть вызван первым, до использования других функций класса.

Аргументы:

  • cols – количество символов в строке;
  • rows – число строк.

disp.begin(20, 4);  // используем дисплей – 4 строки по 20 символов 

 

void clear()

Очистка экрана, установка курсора в верхний левый угол.

disp.clear();  // сброс дисплея

 

void home()

Установка курсора в верхний левый угол.

disp.home();  // в начало экрана

 

void setCursor(col, row)

Устанавливает курсор в заданную позицию.

  • col – координата X, нумерация с 0;
  • row – координата Y, нумерация с 0.

setCursor(0,1);  // курсор в начало второй строки

 

byte write(data)

Выводит символ на экран. Возвращает количество переданных байтов.

Следующий скетч выводит на экран данные с последовательного порта. Данные можно передать монитором порта Arduino IDE.

// вывод данных последовательного порта на LCD индикатор
#include <LiquidCrystal.h>
 
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // создаем объект
char data;
 
void setup()
{
  Serial.begin(9600); // инициализируем последовательны порт
  disp.begin(20, 4);  // инициализируем дисплей 4 строки по 20 символов
}
 
void loop()
{
  if (Serial.available()) {     // если есть данные
    data= Serial.read();  // читаем символ
    if( (data != 0xd) && (data != 0xa) ) {  // перевод строки
      disp.write(data);  // выводим символ на экран      
    }
  }
}

У меня индикатор большой – 4 строки по 20 символов. В нем установлены два контроллера HD44780. Поэтому последовательно передаваемые символы заполняют сначала первую строку, затем третью, дальше вторую и четвертую. Т.е. через строку. Надо учитывать это свойство для определенных типов индикаторов. В документации на каждый LCD индикатор указывается последовательность адресации символов.

Вывод данных с последовательного порта

byte print(data)

Выводит на экран текст. Возвращает количество переданных байтов.

Функция имеет различные формы вызова для разных форматов и типов данных.

print(char d) Если аргумент типа char выводит код символа

char d= 83;
disp.print(d);  // выводит символ S
disp.print(‘S’);  // выводит символ S 

print(int d) Если аргумент – целый тип, то выводит строку с десятичным представлением числа

int d= 83;
disp.print(d);  // выводит строку “83”
disp.print(83);  // выводит строку “83”

print(float) Вещественные типы выводятся символами ASCII, два знака после запятой

float d= 7.65432;
disp.print(d);  // выводит строку “7.65”
disp.print(7.65432);  // выводит строку “7.65”

print(* str) Если аргумент указатель на строку, то выводится текстовая строка.

char letters[3]= {65, 66, 67};
disp.print(“Letters”);   // выводит строку “Letters”
disp.print(letters);   // выводит строку из 3 символов с кодами 65, 66, 67

print(int d, DEC) Выводит строку ASCII - десятичное представление числа

int d= 83;
disp.print(d, DEC);   // вывод строку “83”

print(int d, HEX) Выводит строку ASCII – шестнадцатиричное  представление числа

int d= 83;
disp.print(d, HEX);   // вывод строку “53”

print(int d, OCT) Выводит строку ASCII – восьмеричное  представление числа

int d= 83;
disp.print(d, OCT);   // вывод строку “123”

print(int d, BIN) Выводит строку ASCII – двоичное  представление числа

int d= 83;
disp.print(d, BIN);  // вывод строку “01010011”

print(float d, N) Для вещественных чисел параметр N задает количество цифр после запятой.

disp.print(7.65432, 0);  // выводит строку “7”
disp.print(7.65432, 2);  // выводит строку “7.65”
disp.print(7.65432, 4);  // выводит строку “7.6543”

 

Пример программы, печатающей на дисплее текстовую строку.

// вывод текстовой строки на LCD индикатор
#include <LiquidCrystal.h>
 
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // создаем объект
 
void setup()
{
  disp.begin(20, 4);  // инициализируем дисплей 4 строки по 20 символов
  disp.print("Test string");
}
 
void loop()
{ }

Вывод строки на индикатор

void cursor()

Включает режим отображения курсора. Позиция, куда будет выведен следующий символ, подчеркивается.

disp.cursor();  // разрешаем отображение курсора

 

void noCursor()

Запрещает отображение курсора.

disp.noCursor();  // запрещаем отображение курсора

 

void blink()

Включает режим мигающего курсора. Используется совместно с функцией cursor(). Результат зависит от конкретной модели индикатора.

disp.blink();  // разрешаем мигающий курсор

 

void noBlink()

Отключает режим мигающего курсора.

disp.noBlink();  // запрещаем мигающий курсор

 

void display()

Включает экран после того, как он был выключен функцией noDisplay(). На экране отобразится информация, которая была до выключения.

disp.display();  // включаем дисплей

 

void noDisplay()

Выключает экран. Информация сохраняется в памяти и появляется при включении дисплея.

disp.noDisplay();  // выключаем дисплей

 

void scrollDisplayLeft()

Прокручивает содержимое дисплея на один символ влево.

disp. scrollDisplayLeft();  // сдвигаем все влево

 

void scrollDisplayRight()

Прокручивает содержимое дисплея на один символ вправо.

disp. scrollDisplayRight();  // сдвигаем все вправо

 

void autoscroll()

Включение режима автоматической прокрутки текста. При выводе каждого символа, весь текст на экране будет сдвигаться на один символ. В какую сторону сдвигается информация определяют функции leftToRight() и rightToLeft().

disp. autoscroll()();  // включаем автопрокрутку

 

void noAutoscroll()

Выключение автоматической прокрутки текста.

disp. noAutoscroll()();  // запрещаем автопрокрутку

 

void leftToRight()

Задает режим вывода теста слева-направо. Новые символы будут появляться справа от предыдущих.

leftToRight();  // режим слева-направо

 

void rightToLeft()

Задает режим вывода теста справа-налево. Новые символы будут появляться слева от предыдущих.

rightToLeft();  // режим справа-налево

 

void createChar(num, data)

Метод для создания пользовательского символа. Контроллер допускает создание до 8 символов  (0…7) размером 5x8 пикселей. Изображение символа задается массивом размерностью 8 байт. 5 младших битов каждого байта определяют состояние пикселей строки.

Знакоместо индикатора

Для вывода пользовательского символа можно использовать функцию write() с номером символа.

// создание пользовательского символа
#include <LiquidCrystal.h>
 
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // создаем объект

byte smile[8] = {
  B00000000,
  B00010001,
  B00000000,
  B00000000,
  B00010001,
  B00001110,
  B00000000,
  B00000000
};
 
void setup()
{
  disp.createChar(0, smile); // создаем символ
  disp.begin(20, 4);  // инициализируем дисплей 4 строки по 20 символов
  disp.print("Smile ");
  disp.write(byte(0));  // выводим символ
}
 
void loop()
{ }

Пользовательский символ

На форуме сайта есть программа для создания кодов символов.

Отображение кириллицы.

Большинство LCD дисплеев на российском рынке поддерживают кириллические символы, но коды этих символов не соответствуют ASCII стандарту. Поэтому выводится полная белиберда.

Первый выход – задавать символы их правильными кодами в явном виде. Коды можно посмотреть в документации на контроллер HD44780.

Например коды символов:

  • А- 41h;
  • Б – a0h;
  • В – 42h;
  • Г – a1h.

Вот программа, которая выводит кириллические символы “АБВГ” таким способом.

// вывод кириллицы кодами символов
#include <LiquidCrystal.h>
 
LiquidCrystal disp(6, 7, 2, 3, 4, 5); // создаем объект
 
void setup()
{
  disp.begin(20, 4);  // инициализируем дисплей 4 строки по 20 символов
  disp.print("\x41\xa0\x42\xa1");
}
 
void loop()
{ }

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

 

Библиотека с поддержкой кириллицы LiquidCrystalRus.

Практичный вариант для вывода текста на русском языке – использовать библиотеку LiquidCrystalRus. Загрузить ее можно по этой ссылке LiquidCrystalRus-1.6.0.zip.

Вот пример программы, выводящей на экран русский алфавит.

// вывод русского алфавита
#include <LiquidCrystalRus.h>
 
LiquidCrystalRus disp(6, 7, 2, 3, 4, 5); // создаем объект
 
void setup()
{
  disp.begin(20, 4);  // инициализируем дисплей 4 строки по 20 символов
  disp.print("абвгдеёжзийклмнопрст");
  disp.print("АБВГДЕЁЖЗИЙКЛМНОПРСТ");
  disp.print("уфхцчшщьыьэюя       ");
  disp.print("УФХЦЧШЩЫЬЭЮЯ        ");
}
 
void loop()
{ }

Кирилица на LCD индикаторе

В моем индикаторе два контроллера HD44780. Поэтому отображение через строку и мне пришлось в программе нарушить последовательность вывода строк.

 

Как видите, работать с символьными LCD дисплеями намного проще, чем кажется.

 

Предыдущий урок     Список уроков     Следующий урок

3

Автор публикации

не в сети 1 день

Эдуард

280
Комментарии: 1936Публикации: 197Регистрация: 13-12-2015

34 комментария на «Урок 23. Подключение ЖК (LCD) индикаторов к Ардуино. Библиотека LiquidCrystal.»

  1. Забыли упомянуть, что большинство LCD дисплеев китайского происхождения НЕ поддерживают кириллические символы. Единственный выход- использование метода создания пользовательского символа. Но здесь ограничение- не более 8 пользовательских одновременно в памяти управляющего контроллера, соответственно и на дисплее. При использовании только верхнего регистра многие английские буквы можно использовать как русские. Напечатать полностью алфавит мне удавалось за два прохода (чтоб не больше 8 своих за раз).
    А ещё мне попался интересный индикатор с одной строкой в 16 символов, который думает, что он в две строки по 8.

    0
  2. К сожалению стандартная схема подключения расмотренная в предыдущих уроках не всегда удобна, так как занимает как минимум 6 цифровых выходов на арудине.

    0
    • Не сказал бы, что удобнее, но есть варианты с двумя проводами:
      https://jt5.ru/examples/oled-i2c/
      https://geektimes.ru/post/255812/

      0
      • Эдуард, ваши уроки очень помогают.

        не могли бы Вы создать урок по подключению жидкокристалического индикатора по протоколу I2C

        0
  3. Спасибо. У меня китайский шилд с дисплеем заявленный как с установленной кириллицей. Но вытащить ее никак не удавалось. Ваша публикация помогла 100%. Еще раз спасибо.

    0
  4. disp. autoscroll()(); // включаем автопрокрутку
    Что писать во вторых скобках? Версия Ардуино 1.6.5 не понимает.

    0
  5. if( (data != 0xd) && (data != 0xa) ) { // перевод строки

    disp.write(data); // выводим символ на экран

    не понимаю первой строки кода. что за перевод строки?

    0
    • Каждую посылку информации монитор последовательного порта Arduino IDE заканчивает управляющими символами.

      Я писал в у роке 31.
      Заканчивать команду принято управляющими символами ”\r” (возврат каретки, код 13) и ”\n” (перевод строки, код 10). Об этих символах написано в предыдущем уроке. Монитор последовательного порта автоматически добавляет ”\r\n” к любым данным. Т.е. когда Вы набираете в мониторе ”AT” и нажимаете клавишу “Enter”, то монитор передает 4 символа ”AT\r\n”.

      0
  6. setCursor(1,0); // курсор в начало второй строки

    Ошибка с координатами. Начало второй строки setCursor(0,1)

    Интересно еще, как можно передать дисплею команду в 16-тиричном формате?
    Так же нет команды переключения в режим отаброжения шрифта 5х11. Как это можно сделать?

    0
  7. Опечатка(чтения?):
    Во многих приложениях функция записи не используется, поэтому сигнал часто подключается к земле.

    0
  8. Отличная статья! Огромное спасибо!
    Я правильно понимаю, что если экран китайский без поддержки Кириллицы, то и библиотека LiquidCrystalRus не поможет?

    0
    • Спасибо за хорошие слова.
      Знакогенератор находится в в контроллере дисплея. Без поддержки кириллицы никакая библиотека не поможет.

      0
  9. А если кодовая таблица «китайская», и надо выставить нестандартные соответствия кодов символам, то как это делается?

    0
  10. В моем случае имеется дисплей 1602 с другой распиновкой(более того шелкография нумерации врет):

    14 13 12 11 10 9 8 7 6 5 4 3 2 1 15 16
    D7 D6 D5 D4 D3 D2 D1 D0 E R/W RS Vo VDD VCC LED+ LED-

    http://www.gemtech-hb.com/en/uploadfile/2015/1009/20151009011658269.pdf

    0
  11. Для перекодирования строк из кириллицы (в кодировках utf-8 или 1251) в кодировку китайских LCD можно использовать библиотеку CyrLCDconverter:
    https://github.com/vlakir/CyrLCDconverter

    Манипулирует только строками, не завязана жестко ни на одну из многочисленных LiquidCrystal библиотек, совместима с любой из них, в том. числе и с работающими по i2c. Главное, чтобы сам дисплей кириллицу поддерживал.

    0
  12. Всем привет.Есть индикатор RT1604 стоял в детекторе валют,распиновка стандартная ка у всех этой серии 1604,нужен даташит,пробавал состыковать с ардуиной уно все безстолу,контраст не регулируется и никакой инфы на дисплее не просматривается,поскажите что можно сделать.

    0
  13. Библиотека с поддержкой кириллицы LiquidCrystalRus не хочет работать на моём arduino UNO. Ошибок не выдаёт, просто после загрузки скетча экран дисплея пуст. Версия Arduino IDE 1.8.7. LCD WH2004 и WH1602. Скетчи пробовал разные, на латинице проблем нет.

    0
    • Здравствуйте!
      Может быть у вас дисплей без кириллицы. Выведите на него все коды подряд и посмотрите, есть ли кириллические символы.

      0
      • Здравствуйте, Эдуард! Кириллица у моего дисплея WH2004 есть, т.к. он снят с прибора автоматики с меню на русском языке. Но таблица кодов http://flowcode.info/smf/index.php?topic=7990.10 не соответствует. Совпадает только символ «А».

        0
        • Можете подправить таблицу символов в файле LiquidCrystalRus.cpp:

          const char utf_recode[] PROGMEM=
          { 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4,0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f, 0xa8,0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab,0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1, 0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f, 0xbe,0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0,0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7
          };

          0
          • Пока нет возможности проверить работу кодов, т.к. arduino и LCD на работе. Могу только сказать, что когда я в строке программы менял хотя бы один символ латыни на кириллицу, то эта строка исчезала с экрана LCD.

            0
          • Добрый день, Эдуард! Удалил LiquidCrystalRus и воспользовался Вашим советом. Всё работает в LiquidCrystal, путаницы нет, вот только очень неудобно постоянно иметь перед собой таблицу перевода кодов в символы. Спасибо.

            0
  14. Добрый день, Эдуард! Здоровья Вам и процветания в Новом году!
    Посоветуйте, пожалуйста, как можно вывести в строке две пары символьной и меняющейся цифровой информации?

    0
    • Здравствуйте! Спасибо за поздравления.

      Функцией setCursor() задать начало вывода информации.
      Функцией print(«символы»); вывести символьную информацию
      Функцией print(число); вывести цифровую информацию
      Для смены только цифровой информации использовать setCursor() и print(число).

      0
  15. Эдуард,подскажи пожалуйста как заставить светится RT1604v.1при подключении горит только подсветка,регулировка контраста не влияет.

    0
    • Здравствуйте!
      Проверяйте схему. Прозвоните все связи между собой на замыкание. Сколько раз мне писали, что все собрано верно, а потом находилась аппаратная ошибка.
      Если есть возможность, временно подключите другой индикатор.

      0
      • Заработал после замыкания на землю vo и отключения подсветки,но контраст маловат как его добавить,переменник не спасает он делает хуже.

        0
  16. Здравствуйте Эдуард.

    Скажите пожалуйста у дисплея есть команда выделять/подчеркивать символ или строку? Или это от библиотеки зависит?
    Спасибо.

    0
    • Здравствуйте!
      Нет, такой функции нет в контроллере дисплея. Можете создать свои символы с подчеркиванием, но их число ограничено восемью.

      0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".