Электротехнический интернет-журнал Electrik.info

"Электрик Инфо" - онлайн журнал про электричество. Теория и практика. Обучающие статьи, примеры, технические решения, схемы, обзоры интересных электротехнических новинок. Уроки, книги, видео. Профессиональное обучение и развитие. Сайт для электриков и домашних мастеров, а также для всех, кто интересуется электротехникой, электроникой и автоматикой.
 


Схемы подключения | Принципиальные схемы | Электроснабжение
Розетки и выключатели | Автоматы защиты | Кабель и провод | Монтаж электропроводки Ремонт электротехники | Молодому электрику

Электрик Инфо » Схемы на микроконтроллерах » Какие бывают дисплеи для Ардуино и как их подключить
Количество просмотров: 96523
Комментарии к статье: 2


Какие бывают дисплеи для Ардуино и как их подключить


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

Какие бывают дисплеи для Ардуино и как их подключить

Содержание статьи

Виды дисплеев

Дисплеи можно разделить на:

  • Сегментные (такие, как на цифровых часах);

  • Алфавитно-цифровые;

  • Графические.

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

Они могут быть как жидкокристаллическими, так и светодиодными. Алфавитно-цифровые дисплеи можно встретить на старой бытовой технике, игрушках, промышленной технике и прочем. Их еще называют знакосинтезирующими, текстовыми, символьными. Состоят из набора крупных пикселей. Могут быть выполнены по LCD, TFT и OLED-технологии.

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

Знакосинтезирующие дисплеи

Дисплеи этого вида могут одновременно отображать определенное количество символов, ограниченное геометрическими размерами. Маркируются они по такому образцу:

  • 1602;

  • 2002.

Где первые две цифры – количество символов в строке, а вторая пара – количество строк. Таким образом дисплей с названием 1602 может отображать одновременно 2 строки по 16 символов.

По типу ввода данных различают дисплеи:

  • С параллельным вводом данных;

  • С вводом данных по протоколу I2C.

Параллельный ввод данных предполагает передачу 8 или 4-битных слов по 10 или 6 выводам соответственно (рис. ниже – схема подключения для управления 4 битами). Кроме данных на дисплей подаётся питание. Учитывайте это при проектировании, в противном случае вам может не хватить пинов платы Ардуино.

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

Передача данных на дисплей с помощью I2С займет 4 пина вашей Arduino, 2 из которых питание, а 2 – данные. Но подробнее рассмотрим этот вопрос немного ниже.

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

Дисплей 20S4

Он построен на контроллере КБ1013ВГ6, от ОАО «АНГСТРЕМ», который аналогичен HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG. На которых построены подавляющее большинство китайских дисплеев. Кстати он, как и дисплеи на перечисленных чипах поддерживает стандартную библиотеку параллельного управления Arduino IDE, но о ней позже.

Разные виды дисплеев для использования Ардуино

Знакосинтезирующие дисплеи бывают с подсветкой и без неё, также могут отличаться цветом изображаемых символов. Яркость подсветки и контрастность изображения обычно регулируется. Ниже приведет пример схемы из даташита, на упомянутый выше МЭЛТ.

Пример схемы из даташита МЭЛТ

Переменный резистор R и служит для регулировки яркости.

Подключение

Подключение будем рассматривать на дисплее типа 1602. В первую очередь обратите внимание на подписи выводов. Встречается два варианта, нумерации. На двух рисунках ниже всё нормально – от 1 до 16 вывода.

Выводы дисплея типа 1602
Выводы дисплея типа 1602

Отметим, что под VSS понимается земля. В остальном назначения выводов идентичны. Но часто можно встретить и нестандартную нумерацию:

Нестандартная нумерация выводов дисплея

Что вы видите? Контакты подписаны только 1, 14 и 15. Причем в неправильной последовательности. В остальном – 15 и 16 контакт всё также остались анодом и катодом подсветки, а 1 и 2 – общий контакт и плюс питания. Будьте бдительны и обращайте внимание при подключении на этот факт!

Разберем подробнее.

  • 1 – (Vss) земля или «—» питания.

  • 2 – (Vcc) «+» питания. Чаще всего это 5 вольт.

  • 3 – регулировка контрастности символов. Осуществляется через потенциометр, установленный между «+» питания и этим контактом. Чем выше напряжение – тем меньше яркость и энергопотребление.

  • 4 – (RS) Адресный сигнал. По наличию сигнала от ардуино на этом входе контроллер дисплея понимает, на линии данных сигнал команды (перемещение курсора, например) или кода символа для отображения.

  • 5 – (E) разрешения доступа к данным. Когда здесь логическая «1» - дисплей выполняет команду или выводит символ.

  • 6-14 – через эти пины обеспечивается параллельный ввод данных.

  • 15 – (BLA) анод подсветки. Чтобы она зажглась на всю яркость – сюда подают +5В.

  • 16 – (BLC) катод подсветки. Подключают к земле.

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

Схема подключения дисплея к Ардуино в 8 битовом режиме управления

Таким образом у вас оказываются занятыми половина входов платы Arduino UNO. Конечно если вы будете использовать MEGA – это будет не столь существенной проблемой, но всё же это не рационально, особенно если вы собираетесь подключать группу датчиков и клавиш управления.

Чтобы высвободить входы используйте конвертер I2C для LCD экрана (именно так он называется, и вы сможете найти его в магазинах под таким названием).

Конвертер I2C для LCD экрана

Внимание:

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

Гребёнка, изображенная снизу просто припаивается к дисплею, а четыре контакта на торце платы – подключаются к пинам Arduino, также есть третья группа из двух контактов (на фото сзади) – это включение подсветки, модели поставляются с установленной перемычкой.

Схема такого модуля выглядит следующим образом:

Схема модуля

А вот так он выглядит припаянным непосредственно к контактам дисплея. Большинство моделей продаются уже распаянными.

Подключение модуля к контактам дисплея

Однако для его использования вам нужно будет найти в сети библиотеку LiquidCrystal_I2C её нет в стандартном наборе актуального на момент написания статьи Arduino IDE.

Напомним цоколевку плат Arduino UNO, по нумерации контактов она в принципе совпадает и с Nano и некоторыми другими (для увеличения нажмите на рисунок).

Цоколевку платы Arduino UNO

Для работы по I2C нужно сформировать 2 информационных сигнала – SDA и SCL, обратите внимание в нижний правый угол рисунка. Эти выводы в ардуино совмещены с A4 и A5 аналоговыми входами.

Важно:

Переназначить их вы на другие выводы не можете.

Тогда монтажная схема подключения будет иметь вид:

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

Согласитесь, проводов намного меньше! От ардуино к дисплею идут всего 4 провода. А сигнальных пина использовано всего два!

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

Конвертер I2C для LCD экрана

Программа

Естественно нам нужен какой-то скетч, который может показывать изображение на символьном дисплее. Если вы хотите «напрямую» работать с дисплеем – придется изучить даташиты и таблицы символов на каждое конкретное изделие. Но Ардуино была создана для простого и быстрого прототипирования электронных устройств. Поэтому мы пойдем другим путём и воспользуемся благами цивилизации. Мы уже упомянули, что в стандартном наборе библиотек в Arduino IDE есть готовое решение для работы с LCD-дисплеями. Найти его можно здесь:

Подключение библиотеки

Кстати после нажатия строка с объявлением о подключении библиотеки появляется автоматически.

Строка с объявлением о подключении библиотеки

Также в Arduino IDE есть несколько примеров для работы с дисплеем. Они отражают базовые операции и функции.

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

Рассмотрим простейший «Хэлоу ворд». Пример полностью совпадает с тем, что есть в стандартном наборе IDE, я лишь перевёл текст комментариев на русский язык. Обратите внимание – это пример работы в 4-битном режиме.

Простая программа

Работа с I2C практически аналогична:

Программа для работы с I2C

ВАЖНО:

Обратите внимание, что в этом примере кода первой командой указан несколько размер дисплея, количество строк и символов, но и его I2C адрес. А именно – 0x27, что соответствует отсутствующим перемычкам. Вообще это нужно для того, чтобы подключить на два сигнальных провода несколько дисплеев (8 штук).

Официальную документацию к библиотеке liquidcrystal с примерами и пояснениями вы сможете найти на официальном сайте Arduino:

https://www.arduino.cc/en/Reference/LiquidCrystal?from=Tutorial.LCD8Bits

Полезные ссылки 

Как не спалить Ардуино - советы для начинающих

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

Как подключить инкрементальный энкодер к Ардуино

Как с помощью Ардуино безопасно управлять нагрузкой на напряжении 220 вольт

Полезная электроника своими руками, электронные самоделки в Telegram: Практическая электроника на каждый день

Подборка видеоуроков по теме

Чтобы вам не было сложно освоить навык работы с дисплеем мы сделали подборку видеоуроков по этой теме.

 

Заключение

Оказывается, подружить плату Arduino и дисплей совсем не сложно. Вам доступна возможность как параллельной передачи данных, так и последовательной с помощью шины I2C, что выбрать – решать вам, как по удобству, так и по требованиям к быстродействию системы в целом. Пишите в комментариях какие вопросы нужно рассмотреть подробнее и что конкретно вы бы хотели видеть по теме микроконтроллеров!

Еще больше информации про Ардуино и особенности его использования в различных схемах смотрите в электронной книге - Ардуино для чайников. Иллюстрированное практическое руководство.

Совсем недавно вышел новый курс Максима Селиванова "Программирование дисплеев Nextion". Это "arduino" в мире дисплеев с сенсорным экраном. Но, информации по нему очень мало.

Дисплей Nextion

Что такое дисплеи Nextion? Если кратко, то эти дисплеи представляют собой программируемые дисплеи с тачскрином и UART для создания самых разных интерфейсов на экране. Для программирования используется очень удобная и простая среда разработки, которая позволяет создавать даже очень сложные интерфейсы для различной электроники буквально за пару вечеров! А все команды передаются через интерфейс UART на микроконтроллер или компьютер.

Здесь есть все что бы начать работать с дисплеями Nextion на новом уровне: Программирование дисплеев NEXTION

Максим Селиванов - автор видеокурсов "Программирование микроконтроллеров для начинающих", "Программирование микроконтроллеров на языке С", "Создание устройств на микроконтроллерах". Подробее о нем и его видеокурсах смотрите здесь - Обучение программированию и созданию устройств на микроконтроллерах

Алексей Бартош

Популярные публикации:

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

Подписывайтесь на канал в Telegram про электронику для профессионалов и любителей: Практическая электроника на каждый день



Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Что такое дисплеи Nextion и как с ними работать?
  • Как подключить Arduino к компьютеру, смартфону, интернету
  • Как подключить инкрементальный энкодер к Ардуино
  • 19 шилдов для Arduino на все случаи жизни
  • 7 учебных курсов по работе с Ардуино, онлайн обучение проектированию и конс ...
  • Измерение температуры и влажности на Arduino – подборка способов
  • RGB-светодиоды: как они работают, внутреннее устройство, как подключить, RG ...
  • Подключение и программирование Ардуино для начинающих
  • Какую плату Arduino выбрать
  • Способы чтения и управления портами ввода-вывода Arduino
  • Категория: Схемы на микроконтроллерах

    Программирование Ардуино, Ардуино, Arduino для начинающих, Встраиваемые системы

      Комментарии:

    #1 написал: Роберт |

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

    Arduino не дает нам слишком много места для маневра, когда дело доходит до управления экраном. Микроконтроллер ATmega328, встроенный в Arduino UNO, не имеет внешних адресных линий, поэтому об управлении дисплеем в 8-битном режиме с адресацией по типу внешней памяти не может быть и речи. Однако, если мы используем порт GPIO, больше для управления сигналом R/W, мы можем проверить флаг занятости и прочитать содержимое регистров и памяти ЖК-модуля. Контроллер HD44780 представляет собой универсальную систему, адаптированную для поддержки ЖК-экранов с разным количеством символов (столбцов и строк). В результате после включения питания контроллер «не знает», какой экран подключен и должен быть настроен для корректной работы. В Arduino для этого используется функция begin(), аргументами которой являются количество столбцов и количество строк.

     

      Комментарии:

    #2 написал: Михаил |

    Для Ардуино доступно множество различных типов дисплеев. Рассмотрим некоторые из них:

    1. Жидкокристаллические дисплеи (LCD). Они бывают с символьной и графической матрицей. Для работы с ними можно использовать библиотеку LiquidCrystal, которая позволяет выводить текст и графику на дисплей.

    2. Дисплеи на основе OLED (organic light-emitting diode). Они имеют более яркий и контрастный экран, чем LCD-дисплеи. Для работы с OLED-дисплеями можно использовать библиотеку Adafruit_SSD1306.

    3. Семисегментные светодиодные дисплеи. Они используются для отображения цифр и букв. Для работы с ними можно использовать библиотеку SevSeg.

    4. LED-матрицы. Они позволяют отображать графические изображения и тексты. Для работы с LED-матрицами можно использовать библиотеку LedControl.

    5. Тачскрин-дисплеи. Они позволяют выводить графику и принимать ввод с помощью сенсорного экрана. Для работы с тачскрин-дисплеями можно использовать библиотеку Adafruit_ILI9341.

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

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Электрик Инфо на Яндекс Дзен

     

    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки
    Андрей Повный - все статьи автора



    Copyright © 2009-2024 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.