Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail

    info@3d-diy.ru — отдел продаж

    support@3d-diy.ru — тех. поддержка

    Адрес
    Москва, Павловская улица, 27с7
    м. Тульская
    Режим работы
    пн – пт 11:00—19:00
    8.05 – 11.05 не работаем
    3DIY
    3D принтеры
    Материалы для 3D печати
    Комплектующие 3D принтера
    Arduino и робототехника
    Комплектующие ЧПУ станка
    Инструменты
    Запчасти для 3D принтеров по брендам
    Товары снятые с продажи
    • 3D принтеры
      • Печать пластиком (FDM/FFF)
        Печать пластиком (FDM/FFF)
      • Печать фотополимером (SLA/DLP/LCD)
        Печать фотополимером (SLA/DLP/LCD)
      • Печать воском (MJP)
        Печать воском (MJP)
      • Для дома
        Для дома
      • Для бизнеса
        Для бизнеса
      • Для производства
        Для производства
      • Наборы для сборки
        Наборы для сборки
      • Промышленные
        Промышленные
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Материалы для 3D печати
      • Пластики
        Пластики
        • ABS
        • PLA
        • PETG
        • HIPS
        • PVA
        • FLEX (TPU)
        • Nylon/PA (Нейлон)
        • PC (Поликарбонат)
        • PEEK
        • POM (Полиацеталь)
        • PP (Полипропилен)
        • Резина
        • Стеклонаполненные
        • Термочувствительные
        • Угленаполненные
        • SBS
        • Светящиеся
        • Металлические
        • Спец. пластик
        • Пластик для 3D ручек
      • Фотополимеры
        Фотополимеры
        • Стандартные
        • ABS-типа
        • Гибкие
        • Водосмываемые
        • Выжигаемые
        • Инженерные
        • Стоматологические
        • Для хобби
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие 3D принтера
      • Электроника
        Электроника
        • Платы управления
        • Шаговые двигатели (ШД)
        • Драйверы ШД 3D принтеров
        • Драйверы шаговых двигателей ЧПУ
        • Дисплеи
        • Датчики и модули
        • Блоки питания
        • Реле
        • Концевые выключатели
        • Вентиляторы      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Провода, кабели и разъемы
      • Механика
        Механика
        • Зубчатые шкивы
        • Зубчатые ремни
        • Трапецеидальные винт-гайки
        • Шарико-винтовые передачи (ШВП)      
          • Гайки ШВП
          • Модули крепления гаек ШВП
          • Обратотанные ШВП
          • Опоры ШВП
        • Соединительные муфты
        • Ролики для зубчатых ремней
        • Цилиндрические направляющие
        • Рельсовые направляющие      
          • Профильные направляющие HIWIN
          • Профильные направляющие КИТАЙ
        • Держатели вала
        • Корпусные детали      
          • Корпуса
          • Апгрейды
          • Комплектующие для корпусов
        • Запчасти OpenBuilds
        • Подшипники качения
        • Пружины
      • Нагревательные столы и сопутствующие
        Нагревательные столы и сопутствующие
        • Нагревательные платформы
        • PEI пластины
        • Стекла и Зеркала
        • Теплоизоляция
        • Основания для столов
        • Силиконовые проставки (пружины)
        • Термисторы
        • Зажимы-фиксаторы
        • Пружины
      • Экструдеры
        Экструдеры
        • Экструдеры и механизмы подачи
        • Хотэнды
        • Сопла
        • Термобарьеры
        • Термисторы
        • Нагревательные блоки
        • Теплоизоляция нагревательных блоков
        • Тефлоновые трубки
        • Радиаторы
        • Нагревательные элементы
        • Шестерни
        • Фитинги
        • Сопутствующие товары
      • Сушилки для пластика
        Сушилки для пластика
      • УФ-камеры
        УФ-камеры
      • Мойки
        Мойки
      • Ультразвуковые ванны (мойки)
        Ультразвуковые ванны (мойки)
      • 3D ручки
        3D ручки
      • 3D-сканеры
        3D-сканеры
      • Расходные материалы для SLA / LCD
        Расходные материалы для SLA / LCD
      • Сопутствующие
        Сопутствующие
      • Наборы для мейкеров
        Наборы для мейкеров
      • Инструменты для 3D печатника
        Инструменты для 3D печатника
      • Постобработка
        Постобработка
      • Адгезивы
        Адгезивы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Arduino и робототехника
      • Arduino
        Arduino
      • Raspberry Pi
        Raspberry Pi
        • Микрокомпьютеры
        • Дисплеи      
          • TFT-LCD дисплеи Raspberry Pi
          • IPS-LCD дисплеи Raspberry Pi
          • AMOLED дисплеи Raspberry Pi
        • Корпуса
        • Шилды
        • Камеры
        • Питание
        • Охлаждение
      • Обучающие наборы
        Обучающие наборы
      • Orange Pi
        Orange Pi
      • Одноплатники
        Одноплатники
      • Модули
        Модули
        • Платы расширения
        • Беспроводные модули
        • Интерфейсы
        • Релейные модули
        • Преобразователи питания
        • Лазерные модули
        • Аудио
        • Видео
        • Клавиатура
        • Драйверы моторов
        • Измерительные
        • Другие
      • Датчики
        Датчики
        • Аудио
        • Газа
        • Инфракрасные
        • Климатические
        • Жидкостные
        • Механического воздействия
        • Положения (акселерометры/компасы/гироскопы)
        • Пространства
        • Света и цвета
        • Тактильные
        • Тока и напряжения
      • Дисплеи
        Дисплеи
        • TFT-LCD дисплеи
        • STN-LCD дисплеи
        • LED дисплеи
        • OLED дисплеи
        • Дисплеи DWIN
        • E-Paper дисплеи
      • Механика
        Механика
        • Колёса
        • Коллекторные двигатели
        • Сервоприводы
        • Шаговые двигатели
        • Другие
        • Линейные актуаторы (приводы)
      • Макетные платы
        Макетные платы
      • Светодиоды
        Светодиоды
        • Светодиодные кольца
        • Светодиодные матрицы
        • Сегментные индикаторы
        • Светодиоды круглые
        • Другие
      • Провода и кабели
        Провода и кабели
      • Источники питания
        Источники питания
      • Радиодетали
        Радиодетали
        • Кварц
        • Кнопки
        • Конденсаторы
        • Резисторы
        • Транзисторы
        • Другие
        • Стабилизаторы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие ЧПУ станка
      • Шаговые двигатели и аксессуары
        Шаговые двигатели и аксессуары
        • NEMA 8
        • NEMA 11
        • NEMA 14
        • NEMA 17
        • NEMA 23
        • NEMA 34
        • NEMA 42
        • NEMA 52
        • Шаговые актуаторы
        • Шаговые двигатели с редуктором      
          • C планетарным редуктором
          • C цилиндрическим редуктором
        • Шаговые двигатели с тормозом
        • Круглые шаговые двигатели
        • Сопутствующие
      • Зубчатые ременные передачи
        Зубчатые ременные передачи
        • Зубчатые ремни      
          • Зубчатые ремни GT2
          • Зубчатые ремни HTD 3M
          • Зубчатые ремни HTD 5M
          • Зубчатые ремни T2.5
          • Зубчатые ремни T5
        • Зубчатые шкивы      
          • Зубчатые шкивы GT2
          • Зубчатые шкивы HTD 3M
        • Ролики
      • Шарико-винтовые передачи (ШВП)
        Шарико-винтовые передачи (ШВП)
        • Готовые ШВП, обработанные
        • Гайки ШВП
        • Опоры ШВП
        • Модули крепления гаек ШВП
        • Кронштейны-опоры ШВП
      • Трапецеидальные передачи винт-гайка
        Трапецеидальные передачи винт-гайка
        • Винты трапецеидальные
        • Гайки трапецеидальные
        • Муфты Oldham
        • Сопутствующие
      • Цилиндрические направляющие
        Цилиндрические направляющие
        • Полированные валы
        • Цилиндрические рельсы
        • Линейные подшипники
        • Модули с линейным подшипником
        • Втулки скольжения
        • Держатели вала
        • Пластиковые втулки скольжения
      • Профильные направляющие
        Профильные направляющие
        • Профильные направляющие HIWIN      
          • Каретки HIWIN
          • Рельсы HIWIN
        • Профильные направляющие      
          • Каретки
          • Рельсы
        • Роликовые направляющие
      • Муфты соединительные
        Муфты соединительные
        • Жесткие
        • Кулачковые
        • Спиральные
        • Мембрнные
        • Сильфонные
        • Пружинные
        • Гибкие
      • Электроника
        Электроника
        • Блоки питания
        • Вентиляторы электрические и аксессуары      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Драйверы шаговых двигателей
        • Микропереключатели и концевики
        • Датчики касания инструмента
        • Кнопки и индикаторы
      • Фрезы
        Фрезы
        • Спиральные фрезы      
          • Стружка вверх
          • Стружка вниз
        • Компрессионные фрезы
        • Прямые фрезы
        • Конусные фрезы
        • Сферические фрезы
        • Фрезы рашпильные (кукуруза)
        • Цанги
        • Сопутствующие
      • Карбоновый профиль / трубки
        Карбоновый профиль / трубки
      • Пневматическое оборудование
        Пневматическое оборудование
        • Регуляторы давления, фильтры, лубрикаторы
      • Системы подачи смазки
        Системы подачи смазки
        • Автоматические смазочные насосы
        • Ручные смазочные насосы
        • Маслораспределительные аксессуары
      • Сопутствующие
        Сопутствующие
      • Шпиндели и сопутствующие
        Шпиндели и сопутствующие
        • Шпиндели воздушного охлаждения
        • Шпиндели жидкостного охлаждения
        • Частотные преобразователи
        • Крепления для шпинделей
        • Системы охлаждения шпинделей
        • Подведение СОЖ
        • Прижимы для шпинделей
        • Распылители масляного тумана
        • Щетка-насадка для шпинделя
        • Сопутствующие для шпинделей
      • Механика
        Механика
        • Кабель-каналы гибкие
        • Подшипники качения
        • Подшипниковые узлы
      • Конструкционный профиль
        Конструкционный профиль
        • Сухари пазовые
        • Т-болты
        • Т-гайки
        • Серия 15      
          • Анодированный
          • Без покрытия
        • Серия 20      
          • Анодированный
          • Без покрытия
        • Серия 20 (V-паз)      
          • Анодированный
          • Без покрытия
        • Серия 30      
          • Анодированный
          • Без покрытия
        • Серия 40      
          • Анодированный
          • Без покрытия
        • Серия 45      
          • Анодированный
          • Без покрытия
        • Серия 50      
          • Анодированный
          • Без покрытия
      • Комплектующие OpenBuilds
        Комплектующие OpenBuilds
        • Ролики OpenBuilds
      • Лазерные станки
        Лазерные станки
      • Лазерная резка и аксессуары
        Лазерная резка и аксессуары
        • Блоки розжига
        • Воздушные компрессоры
        • Датчики
        • Крепление лазерной трубки
        • Лазерные головки и держатели зеркал
        • Полупроводниковые лазерные модули
        • Системы охлаждения
        • Системы управления (Контроллеры)      
          • Контроллеры RuiDa
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Инструменты
      • Зачистка и обрезка кабеля
        Зачистка и обрезка кабеля
      • Измерительный инструмент
        Измерительный инструмент
        • Мультиметры
      • Кабель и провода
        Кабель и провода
        • Акустический кабель
        • Высоковольтный кабель
      • Клеевые пистолеты (термопистолеты)
        Клеевые пистолеты (термопистолеты)
      • Напильники и надфили
        Напильники и надфили
      • Обжимной инструмент
        Обжимной инструмент
      • Отвертки
        Отвертки
      • Паяльное оборудование
        Паяльное оборудование
        • Наборы для паяльных работ
        • Отсосы припоя
        • Паяльные принадлежности
        • Паяльные станции
        • Припой
        • Электрические паяльники
      • Пинцеты
        Пинцеты
      • Расходные материалы
        Расходные материалы
        • Изолента
        • Клеевые стержни
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Запчасти для 3D принтеров по брендам
      • 3DIY printers
        3DIY printers
        • Bizon 3
        • STRATEX 350
        • STRATEX 500
        • REX 6K Mono
        • P3 Steel 200 PRO
        • P3 Steel 300 PRO
        • P3 Steel 300 DUAL PRO
      • Bambu Lab
        Bambu Lab
        • Bambu Lab A1 mini
        • Bambu Lab A1
        • Bambu Lab P1 Series
        • Bambu Lab X1 Series
      • Creality
        Creality
        • Creality K1
        • Creality K1 MAX
        • Creality K1C
        • Creality K2 plus
      • Flashforge
        Flashforge
        • Adventurer 5M / 5M Pro
      • Qidi
        Qidi
        • Qidi Tech X-Plus 3
        • Qidi Tech X-Max 3
        • QIDI Plus 4
        • Qidi Q1 Pro
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Товары снятые с продажи
        Phrozen
        FlyingBear
        QIDI
        CreatBot
        FlashForge
        Bambu Lab
        ERYONE
        Elegoo
        eSUN
        Creality
        BIGTREETECH
        Anycubic
      Войти
      0Избранное
      0Корзина
      3D принтерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУРобототехникаЗапчасти 3D принтеров по брендам
      3DIY
      Войти
      0Избранное
      0Корзина
      3DIY
      Телефоны
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем
      0
      0
      • Кабинет
      • 0Избранное
      • 0Корзина
      • Бренды
      • Акции
      • Услуги
        • Услуги
        • 3D печать
          • 3D печать
          • 3D печать пластиком FDM/FFF
          • 3D печать фотополимером
      • Компания
        • Компания
        • О компании
        • Реквизиты
        • Партнеры
        • Клиенты
        • Вакансии
      • Блог
      • Информация
        • Информация
        • Гарантия на товар
        • Возврат товара
        • Политика конфиденциальности
        • Договор-оферта
        • FAQ
      • Контакты
        • Контакты
        • Как до нас добраться
      8 (800) 500-45-93отдел продаж Россия
      • Телефоны
      • 8 (800) 500-45-93 отдел продаж Россия
      • 8 (495) 565-35-93 отдел продаж Москва
      • info@3d-diy.ru — отдел продаж

        support@3d-diy.ru — тех. поддержка

      • Москва, Павловская улица, 27с7
        м. Тульская
      • пн – пт 11:00—19:00
        8.05 – 11.05 не работаем
      Главная
      Блог
      Дисплеи
      Символьный дисплей LCD 1602 (1604)

      Символьный дисплей LCD 1602 (1604)

      Символьный дисплей LCD 1602 (1604)
      Дисплеи

      Содержание

      • Назначение и принцип работы,
      • Способы подключения,
      • Примеры,
      • Вывод,
      • FAQ.


      Назначение и принцип работы

      Раньше, когда компьютеры были большие, а мониторы маленькие, подобные дисплеи назывались алфавитно-цифровыми, потому что, судя по названию, они могли высвечивать только определенные буквы, цифры ну и прочие символы, заранее прописанные в память. Тогда такими были почти все мониторы, отличались они лишь по количеству строк и символов в строке, а также по цвету свечения (а чаще вовсе не отличались, а светили уныло-зеленым). Теперь же, когда компьютерные технологии шагнули так далеко, что порвали не одни штаны, подобные дисплеи остались востребованы только в малой цифровой электронике, для работы с Ардуино и прочими микроконтроллерами. Положительными чертами АЦ дисплеев является простота, малая ресурсоемкость, надежность, неприхотливость, удобство использования, легкое считывание информации, низкая цена и широкое распространение. Теперь они стали еще меньше чем были, количество символов в строке исчисляется парой десятков, а строк несколькими штуками, ведь для наших целей важна компактность и разумная достаточность.

      Сейчас встретить их можно на каждом шагу в различных устройствах, от вендинговых автоматов до вполне серьезных приборов. Да, в микроэлектронике АЦ дисплеи начинают постепенно вытесняться графическими конкурентами, но в прошлое канут они еще не скоро, а всё благодаря перечисленным выше преимуществам.

      Итак, в современных, наиболее часто встречающихся жидкокристаллических алфавитно-цифровых дисплеях, символ представляет собой матрицу из сорока точек, 5 по горизонтали, 8 по вертикали. Строк может быть 2 или 4, редко больше. Строк 16, 20 и 24, остальные экземпляры являются экзотикой. Называют модели по числу символов и строк, первые две цифры - количество символов, вторые две - количество строк. Вот так выглядит один из самых часто встречающихся у нас дисплей LCD 1602.

      image23.png

      Соответственно 16 символов и 2 строки, чего хватает на подавляющее большинство задач. Если же этого мало, применяется второй по популярности дисплей LCD 2004. Попробуйте самостоятельно - по названию - угадать его параметры.

      image1.jpg

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

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


      Способы подключения

      Их два. Первый  самый прямой, к каждому пину дисплея подключается свой пин от контроллера (не считая питания, разумеется). Все бы хорошо и понятно, но проблема в том, что пинов потребуется очень много, до 12 штук, если есть необходимость полностью контролировать  процесс.

      image21.jpg

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

      image11.png

      Однако некоторые жадные и ленивые инженеры не пожелали с этим мириться и придумали адаптер - устройство, выполняющее процесс формирования сигналов для дисплея от команд контроллера, передаваемых по двухпроводной шине i2с.

      image25.jpg

      Теперь, потратив несколько десятков рублей на адаптер, можно подключить его всего при помощи двух пинов и двух проводков. Адаптер припаивается прямо к дисплею, лишь немного увеличивая его габарит по глубине, и делает жизнь гораздо проще и веселее.

      image12.jpg

      Схема подключения с адаптером сократилась до минимума:

      image19.png

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

      Мы рекомендуем пользоваться вторым вариантом и сами им же пользуемся. Все примеры из этой статьи будут приведены для подключения дисплея через адаптер.

      Где приобрести?Купить дисплеи для Arduino и робототехники можно нашем магазине 3DIY


      Примеры

      С аппаратным подключением разобрались. Осталось подключить программно, то есть добавить в скетч библиотеку, поддерживающую работы через i2c адаптер. Называется она так:  “LiquidCrystal_I2C”, подключается так:

      #include <Wire.h> #include <LiquidCrystal_I2C.h> // библиотека 
      Первая строка подключает протокол i2c, вторая саму библиотеку. Ходят слухи, что будет работать даже без первой строки, обязательно проверьте это  при случае. Инициируем и запускаем дисплей:
       LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес в шине, количество символов, количество строк lcd.init(); // запуск lcd.backlight(); // включаем подсветку lcd.clear(); // очищаем экран 
      Все готово, экран светится и он пуст. Выведем на него стандартное для цифровых устройств приветствие, для чего зальем в Ардуино следующую программу.
      #include <Wire.h> #include <LiquidCrystal_I2C.h> // библиотека void setup() { LiquidCrystal_I2C lcd(0x27, 20, 4); // запускаем lcd.init(); lcd.createChar(1, sd); // создаем символ рожицы lcd.backlight(); // включаем подсветку lcd.clear(); // очищаем экран lcd.print("Hello, World!"); } void loop() {} 
      Смотрим что получилось.

      image17.jpg

      Выглядит замечательно. А давайте, для разнообразия, сделаем надпись в две строки и сдвинем их в центр экрана? Для этого добавим в программу несколько строк с позиционированием курсора.
      #include <Wire.h> #include <LiquidCrystal_I2C.h> // библиотека void setup() { LiquidCrystal_I2C lcd(0x27, 20, 4); // запускаем lcd.init(); lcd.backlight(); // включаем подсветку lcd.clear(); // очищаем экран lcd.setCursor(5, 0); // с 5 позиции первой строки lcd.print("Hello,"); lcd.setCursor(5, 1); // с 5 позиции второй строки lcd.print("World!"); } void loop() {} 

      image13.jpg

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

      Но тут особо пытливый читатель обязательно спросит, а какие еще символы способен отображать данный дисплей кроме цифр, латинских букв и знаков препинания? Можно ли изобразить разные мини-картинки и эмодзи? А как насчет русских (турецких, грузинских и прочих) букв? Это очень правильный вопрос и мы ответим на него в два этапа.

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

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

      #include <Wire.h> #include <LiquidCrystal_I2C.h> // подключаем библиотеку #if defined(ARDUINO) && ARDUINO >= 100 #define printByte(args) write(args); #else #define printByte(args) print(args,BYTE); #endif LiquidCrystal_I2C lcd(0x27, 16, 2); // запускаем библиотеку для дисплея с адресом 0x27, 16 символов, 2 строки void setup() { lcd.init(); // запускаем дисплей lcd.backlight(); // включаем подсветку lcd.clear(); } void loop() { // по кругу выводим все символы в памяти дисплея по 16 штук через 4 сек static byte i = 0; lcd.clear(); lcd.print("Codes 0x"); lcd.print(i, HEX); lcd.print("-0x"); lcd.print(i + 16, HEX); lcd.setCursor(0, 1); for (byte j = 0; j < 16; j++) { lcd.printByte(i + j); } i += 16; delay(4000); } 
      Затаив дыхание смотрим.

      image24.jpg

      Первые 16 символов - какая-то абракадабра. Так и должно быть, позже поймем почему. Смотрим дальше.

      image8.jpg

      Уже лучше, пошли знакомые математические и пунктуационные знаки.

      image6.jpg

      К ним добавились цифры, совсем хорошо.

      image18.jpg

      Начались латинские буквы.

      image16.jpg

      image3.jpg

      Пошли прописные латинские буквы.

      image7.jpg

      С адреса 0x80 по 0xA0 пусто, поэтому пропускаем их. А вот дальше начинается самое интересное!

      image5.jpg

      image2.jpg

      image4.jpg

      Это же родная кириллица, нам повезло с дисплеем! Только вот почему не хватает многих букв? Дело в том, что некоторые буквы русского алфавита не отличаются от латинских, такие как А, В, С, О и так далее, а если нет разницы, зачем прописывать их дважды? Используем латинские буквы в русских словах, никто ничего не заметит. Особо въедливый читатель, однако, спросит, а где же буквы Д, Ц, Ш, ф ц и щ? У них же нет латинского аналога. Это странно и где они, мы пока не знаем, смотрим дальше.

      image20.jpg

      image14.jpg

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

      image27.jpg

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

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

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

      #include <Wire.h> #include <LiquidCrystal_I2C.h> // подключаем библиотеку #if defined(ARDUINO) && ARDUINO >= 100 #define printByte(args) write(args); #else #define printByte(args) print(args,BYTE); #endif LiquidCrystal_I2C lcd(0x27, 16, 2); // запускаем библиотеку для дисплея с адресом 0x27, 16 символов, 2 строки void setup() { lcd.init(); // запускаем дисплей lcd.backlight(); // включаем подсветку lcd.clear(); lcd.printByte(0xA8); // П lcd.printByte(0x70); // р lcd.printByte(0xB8); // и lcd.printByte(0xB3); // в lcd.printByte(0x65); // е lcd.printByte(0xBF); // т lcd.print(", 3DIY! "); // дальше латиницей } void loop() {} 

      image26.jpg

       У нас опять все получилось!

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

      #include <Wire.h> #include <LiquidCrystal_I2C.h> // подключаем библиотеку #if defined(ARDUINO) && ARDUINO >= 100 #define printByte(args) write(args); #else #define printByte(args) print(args,BYTE); #endif LiquidCrystal_I2C lcd(0x27, 16, 2); // запускаем библиотеку для дисплея с адресом 0x27, 16 символов, 2 строки void setup() { lcd.init(); // запускаем дисплей lcd.backlight(); // включаем подсветку lcd.clear(); byte tx[9] = {'K', 'a', 0xBA, ' ', 0xE3, 'e', 0xBB, 'a', '?'}; // "Как дела?" записываем в виде массива символов for (byte i = 0; i < 9; i++) lcd.printByte(tx[i]); // выводим на экран } void loop() {} 

      image15.jpg

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

      Теперь пришла пора ответить на вопрос: можно ли вывести на экран символ, которого нет в памяти дисплея? Можно, хоть и не очень просто. Для этого сперва надо нарисовать желаемый символ в виде матрицы точек размером 5х8. Давайте изобразим рожицу, которая нам улыбается и одновременно хитро подмигивает.

      image10.jpg

      Запишем рисунок в виде массива бит, где 0 это светлая точка, а 1 - темная.

      00011
      11011
      00000
      00100
      00100
      10001
      01110
      00000

      Осталось придать этой матрице вид массива, залить этот массив в качестве символа в память дисплея и можно выводить его на экран как любой другой. Проиллюстрируем сказанное программой, где рожица будет записана в ячейку памяти 1 и выведена на экран в нескольких местах.
      #include <Wire.h> #include <LiquidCrystal_I2C.h> // библиотека byte sd[8] = { // карта рожицы 0b00011, 0b11011, 0b00000, 0b00100, 0b00100, 0b10001, 0b01110, 0b00000, }; void setup() { LiquidCrystal_I2C lcd(0x27, 20, 4); // запускаем lcd.init(); lcd.createChar(1, sd); // создаем символ рожицы lcd.backlight(); // включаем подсветку lcd.clear(); // очищаем экран lcd.setCursor(0, 0); // курсор в верхний левый угол lcd.print("\1"); // рожица lcd.setCursor(0, 1); // курсор в нижний левый угол lcd.print("\1"); lcd.setCursor(15, 0); // курсор в верхний правый угол lcd.print("\1"); lcd.setCursor(15, 1); // курсор в нижний правый угол lcd.print("\1"); lcd.setCursor(6, 0); // курсор в верхний центр lcd.print("LCD"); lcd.setCursor(6, 1); // курсор в нижний центр lcd.print("1602"); } void loop() {} 

      image9.jpg

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

      image22.jpg

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

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

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

        byte bukva_B[8]   = {B11110,B10000,B10000,B11110,B10001,B10001,B11110,B00000,}; // Буква "Б"
        byte bukva_G[8]   = {B11111,B10001,B10000,B10000,B10000,B10000,B10000,B00000,}; // Буква "Г"
        byte bukva_D[8]   = {B01111,B00101,B00101,B01001,B10001,B11111,B10001,B00000,}; // Буква "Д"
        byte bukva_ZH[8]  = {B10101,B10101,B10101,B11111,B10101,B10101,B10101,B00000,}; // Буква "Ж"
        byte bukva_Z[8]   = {B01110,B10001,B00001,B00010,B00001,B10001,B01110,B00000,}; // Буква "З"
        byte bukva_I[8]   = {B10001,B10011,B10011,B10101,B11001,B11001,B10001,B00000,}; // Буква "И"
        byte bukva_IY[8]  = {B01110,B00000,B10001,B10011,B10101,B11001,B10001,B00000,}; // Буква "Й"
        byte bukva_L[8]   = {B00011,B00111,B00101,B00101,B01101,B01001,B11001,B00000,}; // Буква "Л"
        byte bukva_P[8]   = {B11111,B10001,B10001,B10001,B10001,B10001,B10001,B00000,}; // Буква "П"
        byte bukva_Y[8]   = {B10001,B10001,B10001,B01010,B00100,B01000,B10000,B00000,}; // Буква "У"
        byte bukva_F[8]   = {B00100,B11111,B10101,B10101,B11111,B00100,B00100,B00000,}; // Буква "Ф"
        byte bukva_TS[8]  = {B10010,B10010,B10010,B10010,B10010,B10010,B11111,B00001,}; // Буква "Ц"
        byte bukva_CH[8]  = {B10001,B10001,B10001,B01111,B00001,B00001,B00001,B00000,}; // Буква "Ч"
        byte bukva_Sh[8]  = {B10101,B10101,B10101,B10101,B10101,B10101,B11111,B00000,}; // Буква "Ш"
        byte bukva_Shch[8]= {B10101,B10101,B10101,B10101,B10101,B10101,B11111,B00001,}; // Буква "Щ"
        byte bukva_Mz[8]  = {B10000,B10000,B10000,B11110,B10001,B10001,B11110,B00000,}; // Буква "Ь"
        byte bukva_IYI[8] = {B10001,B10001,B10001,B11001,B10101,B10101,B11001,B00000,}; // Буква "Ы"
        byte bukva_Yu[8]  = {B10010,B10101,B10101,B11101,B10101,B10101,B10010,B00000,}; // Буква "Ю"
        byte bukva_Ya[8]  = {B01111,B10001,B10001,B01111,B00101,B01001,B10001,B00000,}; // Буква "Я"


      Выводы

      Алфавитно-цифровые дисплеи, несмотря на почтенный возраст, остаются актуальными устройствами для визуализации информации в понятном человеку виде. Простые, надежные, недорогие и компактные LCD-дисплеи еще долго будут пользоваться заслуженным вниманием и уважением со стороны DIY-мастеров.


      FAQ

      Что делать, если дисплей не русифицирован, а памяти на собственные символы не хватает?
      Если нет возможности сделать короткие подписи на английском языке (обычно их понимает 90% пользователей), а также заменить дисплей на русифицированный, остается подбирать слова, максимально использующие латинские буквы, а радикально недостающие прописывать в пользовательские ячейки. Это процесс трудный, но творческий и интересный.

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

      Можно ли самостоятельно прошить ПЗУ знакогенератора.
      Теоретически можно, практически нет. Микросхемы дисплеев залиты компаундом- и неизвестно, какие они, и подобраться к ножкам для программирования было бы весьма непросто.

      На глаза попадались внешне похожие дисплеи с маркировкой OLED, что это такое?
      Это такие же дисплеи, только вместо ЖК матрицы в них установлена более современная OLED, которая намного ярче и контрастнее. Несомненным преимуществом является лучшая читаемость при ярком освещении, например на солнце. OLED дисплеи гораздо менее инертные, быстро сменяемое изображение не оставляет следов, хвостов и мешанины на экране. Из минусов - они склонны к выгоранию, а значит менее долговечны и цена примерно на порядок выше, чем у стандартных.

      Как быстро LCD-дисплеи разряжают аккумулятор при автономной работе?
      Львиная доля потребления энергии дисплея уходит на его подсветку. По возможности ее следует выключать, когда на дисплей никто не смотрит. Включение можно производить принудительно (например, кнопкой) или автоматически ( датчик движения, приближения и т.п.). Программно включение и выключение подсветки производится функциями .backlight() и .noBacklight().

      Товары из статьи

      Быстрый просмотр
      Адаптер IIC-I2C для LCD 1602 2004image
      160 ₽
      Адаптер IIC-I2C для LCD 1602 2004
      0
      0
      Под заказ
      Быстрый просмотр
      Символьный дисплей STN LCD1602, синий, 16x2Символьный дисплей STN LCD1602, 16x2Символьный дисплей STN LCD1602, синий, 16-2STN LCD1602, синий, 16x2
      450 ₽
      585 ₽
      -23%
      Символьный дисплей STN LCD1602, синий, 16x2
      0
      0
      Под заказ

      Это интересно

      Дисплей OLED 128×64
      Дисплеи
      Дисплей OLED 128×64
      Светодиодный LED дисплей на базе драйвера TM1637
      Дисплеи
      Светодиодный LED дисплей на базе драйвера TM1637
      Nextion дисплей
      Дисплеи
      Nextion дисплей
      Символьный дисплей LCD 1602 (1604)
      Дисплеи
      Символьный дисплей LCD 1602 (1604)
      Дисплей E-paper. Электронная бумага
      Дисплеи
      Дисплей E-paper. Электронная бумага
      Сенсорные HMI дисплеи DWIN
      Дисплеи
      Сенсорные HMI дисплеи DWIN
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Все публикации248
        • 3D принтеры38
        • 3D печать57
        • ЧПУ10
        • Датчики27
        • Модули38
        • Arduino механика6
        • Arduino платы8
        • Дисплеи6
        • Кейсы1
        • Компоненты13
        • Мировые новости35
        • Проекты7
        • Сопутствующие2
      Связаться с нами
      8 (800) 500-45-93
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Москва, Павловская улица, 27с7
      м. Тульская
      Магазин
      Бренды
      Акции
      Каталог
      Услуги
      Компания
      О компании
      Реквизиты
      Партнеры
      Клиенты
      Вакансии
      Информация
      Гарантия на товар
      Возврат товара
      Политика конфиденциальности
      Договор-оферта
      FAQ
      Помощь
      Условия оплаты
      Условия доставки
      Товары под заказ
      Гос. закупки
      Как сделать заказ
      Вопрос-ответ
      2013 - 2025 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
      Конфиденциальность
      Оферта
      ГлавнаяКаталог0Корзина0ИзбранныеКабинет
      Уважаемые клиенты
      8-9 мая - выходные
      С праздником!