LCD 1602 расширенный функционал + RUS версия

Всем привет и добро пожаловать на мою статью :)

Я думаю многие знают что такое lcd дислпей и принцип его работы, по этому сегодня мы рассмотрим расширенный функционал работы с lcd дисплеем.

Виды

Начнём с того, что в Arduino дисплеи бывают разным размеров:

  • 8 на 2(0802) — (2 строки 8 символов)

  • 16 на 2(1602) — (2 строки 16 символов) — это самый
    популярный размер.

  • 16 на 4 — (4 строки 16имволов)

  • 20 на 4 — (4 строки 20 символов)

  • 128 на 64 — (64 строки 128 символов)

Так же бывают дисплеи с шиной I2C:

I2C

I2C

I2C — если простыми словами, это модуль для дисплея, который экономит кол-во пинов на arduino.

Поэтому, сегодня мы будем использовать дисплей с шиной I2C.

Схемы

Для Arduino Nano всё тоже самое.

С шиной i2C

С шиной i2C

Без шины I2C

Без шины I2C

Так же если у вас Arduino Uno то можно использовать шилд

Дисплей шилд

Дисплей шилд

Пишем код

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

Если у вас дисплей с шиной I2C, то 

Базовый код для вывода текста на дисплей:

#include  // подключаем библиотеку
LiquidCrystal_I2C lcd(0x27, 16, 2); // настройка дисплея - I2C
// LiquidCrystal lcd(l2, 11, 10, 5, 4, З, 2); - без I2C (указываем пины)

void setup()
{
  lcd.begin(); // инициализация 
}

void loop()
{
  lcd.setCursor(0, 2); // устанавливает положение в котором будем выводить текст
  lcd.print("hello world!"); // выводим текст
  
  delay(2000); // задержка 2 секунды
  lcd.clear(); // очищаем дисплей
}

Теперь разберём код:

Через #include подключаем библиотеку, в угловых скобках < > или в двойных кавычках » » пишем название библиотеки.

Пример #include или #include "LiquidCrystal_I2C.h"

Структура

Структура

Далее обращаясь к библиотеке, создаём переменную «lcd» (вы можете выбрать своё название).

В скобках мы указываем адрес дисплея »0×3f», у вас может быть другой если этот не работает попробуйте эти (0×26, 0×27)

После того как указали адрес нужно указать ещё два параметра:

  1. Кол-во символов в строке

  2. Кол-во строк, например если у вас дисплей 1602 то получается (16, 2)

В цикле void setup() инициализируем дисплей функциейlcd.begin()

В цикле void loop () устанавливает положение в котором будем выводить текст через функцию

lcd.setCursor(a, b) где a — это строка (0 или 1), b — это столбец (0 — 16).

Для вывода информации используется функция lcd.print("Hello world!") в скобках пишите то что хотите вывести на экран дисплея.

Что бы очистить весь дисплей пишем lcd.clear()

Расширенный функционал

  • Функция lcd.write(a) записывает символ в жидкокристаллический индикатор (a — символ, записываемый в индикатор) .

  • Функция lcd.home() располагает курсор в верхнем левом углу

  • Функция lcd.cursor() выводит на экран курсор — подчеркивание знакоместа в позиции, в которую будет записан следующий символ.

  • Функция lcd.noCursor() скрывает курсор с экрана.

  • Функция lcd.blink() выводит на экран мигающий курсор (Если она используется в комбинации с функцией cursor (), результат будет зависеть от конкретного индикатора)

  • Функция lcd.noBlink() выключает мигающий курсор.

  • Функция lcd.display() включает дисплей после того, как он был выключен функцией lcd.noDisplay ()

  • Функция lcd.noDisplay() выключает дисплей без потери отображаемой на нем информации.

  • Функция lcd.scrollDisplayLeft() прокручивает информацию на экране (текст и курсор) на одно знакоместо влево.

  • Функция lcd.scrollDisplayRight() прокручивает информацию на экране (текст и курсор) на одно знакоместо вправо.

  • Функция lcd.autoscroll() включает автоматическую прокрутку экрана и заставляет каждый вывод символа на экран индикатора перемещать предыдущие символы на одно знакоместо .

  • Функция lcd.noAutoscroll() выключает автоматическую прокрутку экрана

  • Функция lcd.leftToRight() устанавливает направление вывода символов на экран жидкокристаллического индикатора слева направо (значение по умолчанию).

  • Функция lcd.rightToLeft() устанавливает направление вывода символов на экран жидкокристаллического индикатора справа налево

  • Функция lcd.createChar() создает пользовательский символ

Кастомные символы

Для создания кастомных символов будем использовать сайт

https://maxpromer.github.io/LCD-Character-Creator/

44a09261e512d560aba314c70931063c.png

Слева на матрице выстраиваем нужный символ

Копируем массив

1ae661e1c707001851eac6529a977c35.png

И вставляем в наш скетч

Через функцию lcd.createChar() добавляем наш символ

Структура

Структура

RUS версия

Для вывода кириллицы будем использовать библиотеку

https://github.com/mk90/LiquidCrystalRus

Эта библиотека имеет все те же функции что и  только тут можно выводить на кириллице.

Всем спасибо что до читали статью до конца :)

Информация была взята из документации

© Habrahabr.ru