1602 жк дисплей подключение к ардуино. Подключение LCD к Ардуино плате

При сборке своего металлоискателя у меня на руках оказался LCD дисплей 1602, построенный на контроллера HD44780. Решил не упустить возможность и подключить его к своему китайскому аналогу Arduino UNO.

Вот такой дисплей 1602 будем сегодня подключать к Arduino.

Цифры «1602» говорят о том, что дисплей состоит из 2-х строк, по 16 символов. Это довольно распространённый экран, с применением которого народ конструирует часы, тестеры и прочие гаджеты. Дисплей бывает с зелёной и голубой подсветкой.

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

Подключать дисплей 1602 к Arduino будем через 4-битный вариант параллельного интерфейса. Существует вариант и 8-битного интерфейса, но при нём задействуется больше проводов, а выигрыша в этом мы не увидим.

Кроме дисплея и Arduino, нам понадобятся провода и переменный резистор на 10кОм. Резистор подойдёт любой марки, лишь бы был необходимого номинала.

Питание на дисплей подаётся через 1-й (VSS) и 2-й (VDD) выводы. К выводам 15 (А) и 16 (K) - подаётся питание на подсветку дисплея. Поскольку для питания и подсветки используется одно напряжение +5В, запитаем их от пинов Arduino «5V» и «GND» . Главное не перепутать полярность, иначе можно спалить электронику дисплея.

3-й вывод (V0) подключаем к ножке переменного резистора, им будем управлять контрастностью дисплея. Резистор можно не использовать, а вывод «V0» подключить к GND . В таком случае контрастность будет максимальной и не будет возможности её плавной регулировки.

5-й вывод (RW) используется для чтения с дисплея либо для записи в него. Поскольку мы будем только писать в дисплей, соединим этот вывод с землёй (GND) .

Выводы: 4-й (RS) , 6-й (E) , 11-й (D4) , 12-й (D5) , 13-й (D6) , 14-й (D7) подключаем к цифровым пинам Arduino. Не обязательно использовать пины те же что и у меня, можно подключить к любым цифровым, главное затем правильно их выставить в скетче.

Моя подключённая Ардуина, осталось соединить её с компьютером через USB и залить скетч.

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

В Arduino IDE выбираем «Файл» - «Образцы» - «LiquidCrystal» - «HelloWorld» .

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

В строке «LiquidCrystal lcd» , в скобках, выставлены цифровые пины, которые задействованы на Arduino. Пины выставляются в такой последовательности: RS, E, DB4, DB5, DB6, DB7 . Если вы задействовали другие цифровые пины, при подключении дисплея, впишите их в нужной последовательности в скобках.

В строке «lcd.print("hello, world!");» выводится приветствие на дисплей, по-умолчанию это надпись «hello, world!» , её можно поменять на любую свою, пишем на латинице.

Загружаем скетч в Arduino и вот результат. Вместо «hello, world!» я вписал свой сайт. Строкой ниже, таймер производит отсчёт времени.

Символьный дисплей LCD1602 с голубой подсветкой - жидкокристаллический дисплей (Liquid Crystal Display) экран которого способен отображать одновременно до 32 символов (16 столбцов, 02 строки). Подключение к осуществляется по синхронному 8-битному параллельному интерфейсу. Примеры работы с символьными дисплеями описаны в разделе .

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

  • Тип выводимой информации: символьный.
  • Язык в ПЗУ дисплея: латиница, японский.
  • Возможность загрузки собственных символов: есть.
  • Формат выводимой информации: 16×02 символов;
  • Тип дисплея: LCD.
  • Технология дисплея: STN.
  • Угол обзора: 180°.
  • Тип подсветки: LED.
  • Цвет подсветки: синий.
  • Цвет символов: белый.
  • Контроллер: HD44780.
  • Интерфейс: синхронный, 8-битный, параллельный.
  • Напряжение питания 5 В.
  • Рабочая температура: -20 ... +70 °С.
  • Температура хранения -30 ... +80 °С.
  • Габариты: 80x36 мм.

Подключение

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

Шина данных дисплея состоит из 8 линий (D0-D7), но если подключить только старшие 4 линии (D4-D7), как это показано на рисунке, это не снижает скорость работы дисплея. Для удобства мы подключили выводы D4-D7 дисплея к одноимённым выводам D4-D7 . Вы можете подключать выводы D0-D7, E и RS дисплея, к любым выводам , указав их в скетче при объявлении объекта библиотеки.

№: Дисплей: Arduino: Назначение:
16 K (LED-) GND Катод (минус) LED (светодиодной) подсветки.
15 A (LED+) 5V Анод (плюс) LED (светодиодной) подсветки.
14...7 D7 ...D0 (DB7...DB0) Любые Шина данных (Data Bus) состоящая из 8 линий. В приведённой схеме используются только старшие 4 линии, т.к. это не влияет на скорость работы дисплея.
6 E Любой Сигнал разрешения (Enable).
5 RW GND Выбор направления (Read / Write) передачи данных: «1» - чтение из дисплея / «0» - запись в дисплей. Вывод подключен к GND, т.к. данные только записываются в дисплей.
4 RS Любой Выбор регистра (Register Selection) получателя информации: «1» - регистр данных / «0» - регистр инструкций.
3 V0 (VEE)
Установка контрастности дисплея: 0 ... +5 В постоянного тока.
2 VDD (VCC) 5V Питание логики дисплея: +5 В постоянного тока.
1 VSS (GND) GND Общий вывод питания (земля).

Питание

Напряжение питания логики дисплея 5 В постоянного тока подаётся на выводы VDD (VCC) и VSS (GND) дисплея.

Напряжение питания подсветки 5 В постоянного тока подаётся на выводы A (Анод - Anode) и K (Катод - Cathode) дисплея.

Потенциал для установки контрастности 0 ... +5 В постоянного тока подаётся на вывод V0 дисплея.

Подробнее о дисплее

Символьный дисплей построен на базе ЖК дисплея типа STN (Super Twisted Nematic) под управлением контроллера HD44780 и имеет синхронный параллельный 8-битный интерфейс. Дисплей оснащён светодиодной подсветкой синего цвета и способен одновременно отображать до 32 символов (16 столбцов, 02 строки) от чего и произошло название дисплея: LCD1602. Контроллер HD44780 имеет ПЗУ в которой хранятся цифры, символы латиницы и некоторые иероглифы японского языка, для их отображения на дисплее. Отсутствующие символы, в т.ч. и символы кириллицы, можно загружать в память ОЗУ контроллера, для вывода на дисплей надписей на Русском языке или нестандартных символов (например «смайликов»).

Если к выводам дисплея подключить то можно преобразовать его синхронный 8-битный параллельный интерфейс в шину I2C (превратив дисплей из LCD1602 в

Статья рассказывает о том, как правильно подключить LCD к Arduino, рассмотрено всё необходимое про подключение LCD 1602 и LCD i2c.

Дисплеи LCD 1602 размера, созданные на базе HD44780 контроллера, в наши дни всё ещё остаются одними из самых доступных, простых и востребованных, чтобы разрабатывать какие бы то ни было электронные устройства.

Неудивительно, что их можно увидеть как в простых, собранных буквально на коленке агрегатах, так и в более серьезных промышленных, например автоматах для приготовления кофе. Именно с таким дисплеем и собираются наиболее популярные модули и шилды по тематике Arduino, например LCD I2C модуль и LCD Keypad Shield.

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

Шаг 2. LCD-дисплей 1602 для Ардуино

Дисплеи 1602 имеют два различных исполнения:

  • жёлтая подсветка с чёрными буквами
  • либо (это бывает гораздо чаще) синяя подсветка с белыми.

Размерность дисплеев на HD44780 контроллере бывает самой разной, а управляются они одинаково. Наиболее распространённые из размерностей – 16 на 02 (то есть по 16 символов в двух строках) или 20 на 04. Сами же символы имеют разрешение в 5 на 8 точек.

Большая часть дисплеев не поддерживает кириллицу (за исключением дисплеев CTK-маркировки). Но такая проблема частично решаема, и далее статья подробно рассказывает, как это сделать.

На дисплее есть 16-PIN разъём для подключения. Выводы имеют маркировку с тыльной стороны платы, она следующая:

  • 1 (VSS) – питание на минус для контроллера.
  • 2 (VDD) – питание на плюс для контроллера.
  • 3 (VO) – настройки управления контрастом.
  • 4 (RS) – выбор для регистра.
  • 5 (R/W) – чтение и запись, в частности, запись при соединении с землёй.
  • 6 (E) – активация (enable).
  • 7–10 (DB0-DB3) – младшие биты от восьмибитного интерфейса.
  • 11–14 (DB4-DB7) – старшие биты от интерфейса
  • 15 (A) – положительный анод на питание подсветки.
  • 16 (K) – отрицательный катод на питание подсветки.

Шаг 3. Подключаем ЖК-дисплей

Перед тем как подключать дисплей и передавать на него информацию, стоит проверить его работоспособность. Сперва подайте напряжение на VSS и VDD контроллер, запитайте подсветку (A, K), далее настройте контрастность.

Для таких настроек подойдёт потенциометр с 10 кОм, форма его не важна. На крайние ноги подают +5V и GND, а ножку по центру соединяют с VO выводом.

Когда на схему подаётся питание, нужно добиться необходимого контраста, если он настраивается неправильно, то и изображение на экране видно не будет. Чтобы настроить контраст, нужно «поиграть» с потенциометром. Когда схема будет собрана правильно и контраст настроен верно, верхняя строка на экране должна заполниться прямоугольниками.

Чтобы дисплей работал, применяется встроенная в Arduino IDE среду специальная библиотека LiquidCrystal.h , о которой я напишу ниже. Он может действовать в 8-битном и в 4-битном режиме. В первом варианте применяют лишь младшие и старшие биты (BB0-DB7 ), во втором – только младшие (BB4-DB7 ).

Но применение 8-битного режима в этом дисплее – неправильное решение, преимущества в скорости почти нет, поскольку частота обновления у него всегда меньше 10 раз за секунду. Чтобы выводился текст, надо присоединить выводы DB7, DB6, DB5, DB4, E и RS к выводам контроллера. Присоединять их допустимо к любым пинам Arduino, главное – задание верной последовательности в коде.

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

Шаг 4. Схема обхода

Изучим вариант, как обойти это и обойтись только двумя. Нужен добавочный модуль-конвертор для LCD в IIC/I2C. Как он припаивается к дисплею и присоединяется к Arduino, можно увидеть на изображениях ниже.

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

Шаг 4: Библиотека LiquidCrystal.h

Библиотеку LiquidCrystal.h можно скачать в разделе Библиотек нашего сайта на этой странице или с официального ресурса arduino.cc . Но также вы можете скачать ниже по ссылкам:

Шаг 5. Скетч (код программы)

После того, как вы скачали архив замените папку LiquidCrystal в папке с библиотеками вашего каталога установки Arduino.

Вы можете увидеть примерный скетч по адресу:

Файл -> Примеры -> LiquidCrystal -> HelloWorld_SPI

Либо, если у вас меню на английском:

File -> Examples -> LiquidCrystal -> HelloWorld_SPI

На этом наш очередной урок завершен. Желаем вам качественных проектов!

Жидкокристаллический дисплей (Liquid Crystal Display) сокращенно LCD построен на технологии жидких кристаллов. При проектировании электронные устройства, нам нужно недорогое устройство для отображения информации и второй не менее важный фактор наличии готовых библиотек для Arduino. Из всех доступных LCD дисплеев на рынке, наиболее часто используемой является LCD 1602A, который может отображать ASCII символа в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей. В этой статье рассмотрим основы подключения дисплея к Arduino.

Технические параметры

Напряжение питания: 5 В
Размер дисплея: 2.6 дюйма
Тип дисплея: 2 строки по 16 символов
Цвет подсветки: синий
Цвет символов: белый
Габаритные: 80мм x 35мм x 11мм

Описание дисплея

LCD 1602A представляет собой электронный модуль основанный на драйвере HD44780 от Hitachi. LCD1602 имеет 16 контактов и может работать в 4-битном режиме (с использованием только 4 линии данных) или 8-битном режиме (с использованием всех 8 строк данных), так же можно использовать интерфейс I2C . В этой статье я расскажу о подключении в 4-битном режиме.

Назначение контактов:
VSS: «-» питание модуля
VDD: «+» питание модуля
VO: Вывод управления контрастом
RS: Выбор регистра
RW: Выбор режима записи или чтения (при подключении к земле, устанавливается режим записи)
E: Строб по спаду
DB0-DB3: Биты интерфейса
DB4-DB7: Биты интерфейса
A: «+» питание подсветки
K: «-» питание подсветки

На лицевой части модуля располагается LCD дисплей и группа контактов.

На задней части модуля расположено два чипа в «капельном» исполнении (ST7066U и ST7065S) и электрическая обвязка, рисовать принципиальную схему не вижу смысла, только расскажу о резисторе R8 (100 Ом), который служит ограничительным резистором для светодиодной подсветки, так что можно подключить 5В напрямую к контакту A. Немного попозже напишу статью в которой расскажу как можно менять подсветку LCD дисплея с помощью ШИП и транзистора.

Подключение LCD 1602A к Arduino (4-битном режиме)

Необходимые детали:
Arduino UNO R3 x 1 шт.
LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
Провод DuPont, 2,54 мм, 20 см, F-F (Female - Female) x 1 шт.
Потенциометр 10 кОм x 1 шт.
Разъем PLS-16 x 1 шт.
Макетная плата MB-102 x 1 шт.
Кабель USB 2.0 A-B x 1 шт.

Подключение :
Для подключения будем использовать макетную плату, схема и таблица подключение LCD1602a к Arduino в 4-битном режиме можно посмотреть на рисунке ниже.

Подключение дисплея к макетной плате будет осуществляться через штыревые контакты PLS-16 (их необходимо припаять к дисплею). Установим модуль дисплея в плату breadboard и подключим питание VDD (2-й контакт) к 5В (Arduino) и VSS (1-й контакт) к GND (Arduino), далее RS (4-й контакт) подключаем к цифровому контакту 8 (Arduino). RW (5-й контакт) заземляем, подключив его к GND (Arduino), затем подключить вывод E к контакту 8 (Arduino). Для 4-разрядного подключения необходимо четыре контакта (DB4 до DB7). Подключаем контакты DB4 (11-й контакт), DB5 (12-й контакт), DB6 (13-й контакт) и DB7 (14-й контакт) с цифровыми выводами Arduino 4, 5, 6 и 7. Потенциометр 10K используется для регулировки контрастности дисплея, схема подключения LCD дисплея 1602а, показана ниже

Библиотека уже входит в среду разработки IDE Arduino и нет необходимости ее устанавливать. Скопируйте и вставьте этот пример кода в окно программы IDE Arduino и загрузите в контроллер.

/* Тестирование производилось на Arduino IDE 1.6.11 Дата тестирования 20.09.2016г. */ #include LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { lcd.begin(16, 2); // Инициализирует LCD 16x2 } void loop() { lcd.setCursor(0,0); // Установить курсор на первыю строку lcd.print("Hello, world"); // Вывести текст lcd.setCursor(0,1); // Установить курсор на вторую строку lcd.print("www.robotchip.ru"); // Вывести текст }

Тестирование производилось на Arduino IDE 1.6.11

Дата тестирования 20.09.2016г.

#include

LiquidCrystal lcd (8 , 9 , 4 , 5 , 6 , 7 ) ;

void setup ()

lcd . begin (16 , 2 ) ; // Инициализирует LCD 16x2

void loop ()

lcd . print ("Hello, world" ) ; // Вывести текст

lcd . print ("www.robotchip.ru" ) ; // Вывести текст

Скачать программу

Немного о программе .
Для облегчения связи между Arduino и LCD дисплеем, используется встроенный в библиотеке в IDE Arduino « LiquidCrystal.h « — которая написана для LCD дисплеев, использующих HD44780 (Hitachi) чипсет (или совместимые микросхемы). Эта библиотека может обрабатывать как 4 — битном режиме и 8 — битном режиме подключение LCD.

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

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

В примере мы рассмотрим дисплей Winstar wh1602l1 – один из самых распространенных дисплеев на контроллере hd44780. Кроме того Вы можете подключать LCD 2004 и другие аналогичные.
Первые две цифры обозначают количество символов в строке, а вторые количество строк, таким образом, выбранный дисплей имеет 2 строки по 16 символов.
Данный способ подключения подразумевает занятие минимум 6 портов микроконтроллера Ардуино. В случае необходимости Вы можете подключить текстовый дисплей 1602 через I2C интерфейс (2 порта).

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

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

В нашем примере будем считывать данные из последовательного порта и выводить их на дисплей:

#include // Подключаем библиотеку работы с символьными дисплеями LiquidCrystal lcd(13, 11, 5, 4, 3, 2); // (RS, E, D4, D5, D6, D7) подключаем выходы дисплея согласно последовательности, R/W – GND, так как мы будем записывать данные в дисплей, а не считывать void setup() { lcd.begin(16, 2); // Инициализируем LCD 1602 // lcd.begin(20, 4); // Инициализируем LCD 2004 Serial.begin(9600); // Запускаем последовательный порт } void loop() { if (Serial.available()) // Если из порта поступаю данные, то... { delay(100); lcd.clear(); // Полностью очищаем экран while (Serial.available() > 0) // Если из порта поступаю данные больше 0, то... { lcd.write(Serial.read()); // Считываем значения из serial порта и выводим их на дисплей } } }

Вы можете усложнить код и вывести часы реального времени DS1307 на Arduino на Ваш LCD1602.

Теперь по подробнее рассмотрим все функции в библиотеке LiquidCrystal:

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

lcd.print(); - самая простая и часто используемая, используется для вывода информации.

lcd . clear (); - используется для очистки дисплея.

lcd.setCursor(x , y ); - ставит курсор на определенное место.

Х – изменение позиции в строке

Y – изменение строки

Например, lcd.setCursor(0, 0); это верхняя левая ячейка.

lcd.home(); - ставит курсор в позицию 0, 0

lcd.home(); = lcd.setCursor(0, 0);

lcd . scrollDisplayLeft (); - сдвиг влево

lcd . scrollDisplayRight (); - сдвиг вправо

Lcd.createChar(имя , массив ); - создание собственного знака.

Например знак градуса выглядит вот так:

Celc = {B00111, B00101, B00111, B00000, B00000, B00000, B00000, B00000 };



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: