СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

LCD дисплей 1602

Категория: Прочее

Нажмите, чтобы узнать подробности

Учимся работать с LCD дисплеем.

Просмотр содержимого документа
«LCD дисплей 1602»

Подключение LCD 1602 к Arduino



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

В данной статье мы расскажем как его подключить к Arduino и вывести информацию.



Используемые компоненты:

  • Управляющая плата Arduino UNO 16U2

  • Дисплей LCD 1602

  • Потенциометр 10 кОм

  • Соединительные провода папа-папа

Размерность дисплеев на контроллере HD44780 может быть различной, управляться они будут одинаково. Самые распространенные размерности 16x02 (т.е. по 16 символов в двух строках) либо 20x04. Разрешение же самих символов - 5x8 точек.

Большинство дисплеев не имеют поддержку кириллицы, имеют её лишь дисплеи с маркировкой CTK.

Выводы дисплея:

На дисплее имеется 16pin разъем для подключения. Выводы промаркированы на тыльной стороне платы.

1 (VSS) - Питание контроллера (-)
2 (VDD) - Питание контроллера (+)
3 (VO) - Вывод управления контрастом
4 (RS) - Выбор регистра
5 (R/W) - Чтение/запись ( режим записи при соединении с землей)
6 (E) - Еnable (строб по спаду)
7-10 (DB0-DB3) - Младшие биты 8-битного интерфейса
11-14 (DB4-DB7) - Старшие биты интерфейса
15 (A) - Анод (+) питания подсветки
16 (K) - Катод (-) питания подсветки



Режим самотестирования:

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

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

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

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



Вывод информации:

Для работы дисплея используется встроенная с среду Arduino IDE библиотека LiquidCrystal.h

Функционал библиотеки

//Работа с курсором

lcd.setCursor(0, 0); // Устанавливаем курсор (номер ячейки, строка)

lcd.home(); // Установка курсора в ноль (0, 0)

lcd.cursor(); // Включить видимость курсора (подчеркивание)

lcd.noCursor(); // Убрать видимость курсора (подчеркивание)

lcd.blink(); // Включить мигание курсора (курсор 5х8)

lcd.noBlink(); // Выключить мигание курсора (курсор 5х8)



//Вывод информации

lcd.print("zelectro.cc"); // Вывод информации

lcd.clear(); // Очистка дисплея, (удаление всех данных) установка курсора в ноль

lcd.rightToLeft(); // Запись производится справа на лево

lcd.leftToRight(); // Запись производится слева на право

lcd.scrollDisplayRight(); // Смещение всего изображенного на дисплее на один символ вправо

lcd.scrollDisplayLeft(); // Смещение всего изображенного на дисплее на один символ влево



//Информация полезная для шпионов:)

lcd.noDisplay(); // Информация на дисплее становится невидимой, данные не стираются

// если, в момент когда данная функция активна, ничего не выводить на

// дисплей

lcd.display(); // При вызове функции display() на дисплее восстанавливается вся

// информация которая была



Сам же дисплей может работать в двух режимах :

• 8-битный режим - для этого используются и младшие и старшие биты (BB0- DB7)

• 4-битный режим - для этого используются и только младшие биты (BB4- DB7)

Использование 8-битного режима на данном дисплее не целесообразно. Для его работы требуется на 4 ноги больше, а выигрыша в скорости практически нет т.к. частота обновления данного дисплея упирается в предел

Для вывода текста необходимо подключить выводы RS, E, DB4, DB5, DB6, DB7 к выводам контроллера. Их можно подключать к либым пинам Arduino, главное в коде задать правильную последовательность.


Пример программы



#include LiquidCrystal.h // Лобавляем необходимую библиотеку LiquidCrystal

lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)

void setup(){

lcd.begin(16, 2); // Задаем размерность экрана

lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки

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

lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки

lcd.print("zelectro.cc"); // Выводим текст

}

void loop(){ }


Создание собственных символов

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

Не беда, требуемый символ можно сделать вручную (всего до 7ми символов). Ячейка, в рассматриваемых нами дисплеях, имеет разрешение 5х8 точек. Все, к чему сводится задача создания символа, это написать битовую маску и расставить в ней единички в местах где должны гореть точки и нолики где нет.

В ниже приведенном примере нарисуем смайлик.




Пример программы


#include LiquidCrystal.h // Лобавляем необходимую библиотеку

// Битовая маска символа улыбки

byte smile[8] =

{

B00010,

B00001,

B11001,

B00001,

B11001,

B00001,

B00010,

};

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)


void setup(){

lcd.begin(16, 2); // Задаем размерность экрана


lcd.createChar(1, smile); // Создаем символ под номером 1


lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки

lcd.print("\1"); // Выводим смайлик (символ под номером 1) - "\1"

}


void loop(){

}



по материалам http://zelectro.cc/LCD1602


https://youtu.be/yg0KK8kmke0


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!