Если на ЖК-дисплей выводятся ваши собственные сообщения, это не только приятно, но и очень полезно.
Нам понадобится
- Плата Arduino Uno
- Макетная плата
- Перемычки
- Символьный дисплей 1602 (синий)
- Потенциометр 50 кОм
Требуемые библиотеки
- LiquidCrystal

Принцип работы
Жидкокристаллический дисплей (ЖКД, LCD) сделан из двух подложек поляризационного материала с раствором жидких кристаллов между ними. Ток, проходящий через раствор, создает изображение или, в данном случае, символы. Для этого проекта вам понадобится ЖК-дисплей, совместимый с драйвером Hitachi HD44780, для работы с Arduino. Таких дисплеев существует великое множество, отличаются они 16-контактным интерфейсом.
Мы будем использовать библиотеку LiquidCrystal для передачи символов на ЖК-дисплей. Библиотека LiquidCrystal сопоставляет символы и использует команды print.lcd для копирования сообщения из скетча на дисплей.
Сначала нужно подготовить ЖК-дисплей.
Подготовка ЖК-дисплея
ЖК-дисплей, скорее всего, потребует сборку. Ваш дисплей, вероятно, будет содержать 16 отверстий (как показано на рис. 12.1) и отдельно ленту штырьковых соединителей.

Возьмите ленту соединителей и отломите ряд из 16 штырьков. Вставьте короткие ножки штырьков в 16 отверстий ЖК-дисплея. Вам нужно припаять их: сначала припаяйте крайние правые и крайние левые соединения, чтобы закрепить ленту на месте, и подождите, пока припой не застынет. Затем припаяйте все остальные места соединений по очереди, удерживая паяльник с припоем на каждом штырьке. Не держите паяльник слишком долго, чтобы не повредить микросхему — пары секунд достаточно.
Сборка
1. Установите ваш ЖК-дисплей на макетную плату, вставив штырьки в отверстия платы. Также установите потенциометр на макетную плату и используйте перемычки для подключения к ЖК-дисплею, Arduino и потенциометру, как показано в следующей таблице и на рис. 12.2. Модуль ЖК-дисплея оборудован тремя контактами заземления; их нужно подключить к шине заземления макетной платы.


2. Центральный контакт потенциометра с сопротивлением 50 кОм подключается к контакту 3 (VO) ЖК-дисплея. Потенциометр управляет контрастностью дисплея. Поворачивайте ручку, пока не увидите на дисплее четкие символы. Теперь подключите один из внешних контактов потенциометра к заземлению, а другой — к питанию 5 В.
3. ЖК-дисплеи с подсветкой (см. рис. 12.3) имеют встроенные резисторы, но если у вас ЖК-дисплей без подсветки, нужно добавить резистор с сопротивлением 220 Ом между контактом 15 ЖК-дисплея и контактом питания 5 В. (На упаковке дисплея обычно указано, имеется ли подсветка или нет.)

4. Убедитесь, что ваша цепь соответствует схеме, показанной на рис. 12.5, а затем загрузите в память Arduino код скетча, приведенный в разделе «Скетч» далее в этом проекте.

Скетч
Данный скетч доступен среди примеров, предустановленных со средой разработки Arduino. Загрузите его, выполнив команду меню Файл ► Примеры ► LiquidCrystal ► Scroll (File ► Examples ► LiquidCrystal ► Scroll). В скетче используется библиотека LiquidCrystal, поставляемая со средой разработки Arduino, для передачи данных с платы Arduino на ЖК-дисплей. Вы можете изменить сообщение, заменив значение Arduino Sketch в строке 2.
Чтобы использовать нашу цепь с указанным скетчем, мы также сменим в коде контакты ЖК-дисплея (12,11,5,4,3,2) в строке 1 на 7,8,9,10,11,12, так как это используемые нами контакты. Я изменил код скетча, и если вы откроете приложенный к книге файл, вы увидите его в среде разработки Arduino с уже внесенными изменениями.
#include <LiquidCrystal.h>//Подключение кода библиотеки // строка 1 LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Инициализировать библиотеку номерами контактов интерфейса void setup() { lcd.begin(16, 2); // Установка количества столбцов и строк ЖК-дисплея // строка 2 lcd.print("Привет мир"); // Вывод сообщения на ЖК-дисплей delay(1000); } void loop() { for (int positionCounter = 0; positionCounter < 13; // Прокрутка на 13 позиций (длина строки) влево, чтобы скрыть строку positionCounter++) { lcd.scrollDisplayLeft(); // Прокрутка на 1 позицию влево delay(150); // Задержка } // Прокрутка на 29 позиций (длина строки + длина дисплея) вправо, чтобы скрыть строку for (int positionCounter = 0; positionCounter < 29; positionCounter++) { lcd.scrollDisplayRight(); // Прокрутка на 1 позицию вправо delay(150); // Задержка } // Прокрутка на 16 позиций (длина дисплея + длина строки) влево, чтобы выровнять строку по центру for (int positionCounter = 0; positionCounter < 16; positionCounter++) { lcd.scrollDisplayLeft(); // Прокрутка на 1 позицию влево delay(150); // Задержка } // Задержка в конце полного цикла delay(1000); }
Теги: