Общие сведения
Дисплей LCD128x64 (модуль LCD12864Z) — может быть использован для вывода текстовой и графической информации. Данный дисплей применяется в некоторых копировальных и факсимильных аппаратах, лазерных принтерах сетевом оборудовании и д.т.
Характеристики
- Напряжение питания модуля: 4,5 ... 5,5 В
- Напряжение питания подсветки: 3 ... 3,6 В
- На базе чипа: ST7920
- Ток потребляемый модулем: до 5 мА
- Ток потребляемый подсветкой: до 60 мА
- Цвет подсветки дисплея: Синий
- Тип дисплея: LCD STN
- Размер точек (пикселей) дисплея: 0,48 х 0,48 мм
- Шаг точек (пикселей) дисплея: 0,52 х 0,52 мм (Ш)
- Угол обзора: 70°
- Рабочая температура: -20 ... +70 °С
- Температура хранения: -30 ... 80 °С
- Габариты: 92x69x12 мм
- Вес: 76 г
Подключение
Дисплей поддерживает как параллельный, так и последовательный интерфейс передачи данных. Оба интерфейса поддерживает и библиотека U8glib позволяющая работать с дисплеями 12864B V2.0. Для передачи данных по последовательному интерфейсу библиотека U8glib может использовать как аппаратный так и программный SPI. При использовании параллельного интерфейса или программного SPI дисплей можно подключить к любым выводам Arduino. А при использовании аппаратного SPI дисплей подключается только к выводам аппаратной шины SPI, (как показано на картинке).
Выводы Arduino подключённые к дисплею указываются при объявлении объекта библиотеки.
Для параллельного интерфейса:
#include "U8glib.h" U8GLIB_ST7920_128X64_1X u8g( DB0,DB1,DB2,DB3,DB4,DB5,DB6,DB7, E , RS [, RW [, RST ]] );
Для последовательного интерфейса (программный SPI):
#include "U8glib.h" U8GLIB_ST7920_128X64_1X u8g( SCK , MOSI , CS [, RST ] );
Для последовательного интерфейса (аппаратный SPI):
#include "U8glib.h" U8GLIB_ST7920_128X64_1X u8g( CS [, RST ] ); // выводы SCK и MOSI подключаются к аппаратной шине SPI.
Питание
Напряжение питания дисплея 5 В постоянного тока. подаётся на выводы Vcc (Vdd) и GND (Vss).
Напряжение питания подсветки 3,3 В постоянного тока подаётся на выводы BLA (A) и BLK (K).
Подробнее о дисплее
ЖК модуль 12864B V2.0 - это компактный модуль построенный на базе чипа ST7920 и STN LCD дисплея с разрешением 128x64 точек с синей подсветкой. Контроллер ST7920 поддерживает как параллельный, так и последовательный интерфейс передачи данных.
Распиновка
Выводы питания:
№ вывода | Обозначение | Назначение | |
---|---|---|---|
1 | GND (Vss) | Ground | GND |
2 | Vcc (Vdd) | Voltage | Питание модуля +5 В |
3 | Vo | Variable contrast | Потенциометр для регулировки контрастности |
18 | Vout | Voltage output | Уровень выходного напряжения (для согласования) |
19 | BLA (A) | BackLight Anode | Питание подсветки (Анод +) |
20 | BLK (K) | BackLight Cathode | Питание подсветки (Катод -) |
Выводы для параллельной передачи данных:
№ вывода | Обозначение | Назначение | |
---|---|---|---|
4 | RS (IRS) (D/I) | Registers | «1» - регистры данных / «0» - регистры инструкций |
5 | R/W (IR/W) | Read / Write | «1» - чтение данных / «0» - запись данных |
6 | E (IE) | Enable | Сигнал разрешения |
7 | DB0 | Data Bus 0 | Линия 0 параллельной шины данных |
8 | DB1 | Data Bus 1 | Линия 1 параллельной шины данных |
9 | DB2 | Data Bus 2 | Линия 2 параллельной шины данных |
10 | DB3 | Data Bus 3 | Линия 3 параллельной шины данных |
11 | DB4 | Data Bus 4 | Линия 4 параллельной шины данных |
12 | DB5 | Data Bus 5 | Линия 5 параллельной шины данных |
13 | DB6 | Data Bus 6 | Линия 6 параллельной шины данных |
14 | DB7 | Data Bus 7 | Линия 7 параллельной шины данных |
15 | PSB (CS1) | Parallel Serial Bus | Для параллельной шины - уровень логической «1» |
16 | NC (CS2) | Select Column | Выбор второго блока колонок |
17 | RST | Reset | Сброс при подаче логического «0» |
Выводы для последовательной передачи данных:
№ вывода | Обозначение | Назначение |
---|---|---|
4 | RS (IRS) (D/I) | CS - линия выбора устройства |
5 | R/W (IR/W) | MOSI - линия данных от Arduino к дисплею |
6 | E (IE) | SCK - линия тактирования |
15 | PSB (CS1) | Для последовательной шины - уровень логического «0» |
17 | RST | Сброс при подаче логического «0» |
Примеры
Вывод времени прошедшего с момента подачи питания.
#include <U8glib.h> // Подключаем библиотеку U8glib U8GLIB_ST7920_128X64_1X u8g(10); // Создаём объект u8g для работы с дисплеем, указывая номер вывода CS для аппаратной шины SPI uint32_t timeStart; // Объявляем переменную для подсчёта количества секунд прошедших с момента старта скетча uint8_t timeHours; // Объявляем переменную для вывода часов прошедших с момента старта скетча uint8_t timeMinutes; // Объявляем переменную для вывода минут прошедших с момента старта скетча uint8_t timeSeconds; // Объявляем переменную для вывода секунд прошедших с момента старта скетча void setup(){} void loop (){ timeStart=millis()/1000; // Получаем количество секунд прошедших с момента старта скетча timeSeconds = timeStart%60; timeStart/=60; // Получаем количество секунд для вывода на дисплей timeMinutes = timeStart%60; timeStart/=60; // Получаем количество минут для вывода на дисплей timeHours = timeStart%24; timeStart/=24; // Получаем количество часов для вывода на дисплей u8g.firstPage(); // Всё что выводится на дисплей указывается в цикле: u8g.firstPage(); do{ ... команды ... }while(u8g.nextPage()); do{ u8g.setColorIndex(1); // Выбираем белый цвет u8g.drawBox(0, 0, 128, 11); // Выводим прямоугольник с координатами левого верхнего угла 0,0 и размерами 128x11 пикселей u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10 u8g.setColorIndex(0); // Выбираем цвет фона u8g.drawStr(39, 9, "iarduino"); // Выводим текст "iarduino" в позиции 39х9 u8g.setColorIndex(1); // Выбираем белый цвет u8g.drawStr(20, 62, "www.iarduino.ru"); // Выводим текст "www.iarduino.ru" в позиции 20х62 u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_courB24n u8g.setPrintPos( 3, 43); u8g.print(timeHours/10); // Выводим старший разряд часов в позиции 3х43 u8g.setPrintPos( 20, 43); u8g.print(timeHours%10); // Выводим младший разряд часов в позиции 20х43 u8g.drawStr ( 33, 43, ":"); // Выводим двоеточие в позиции 33х43 u8g.setPrintPos( 46, 43); u8g.print(timeMinutes/10); // Выводим старший разряд минут в позиции 46х43 u8g.setPrintPos( 63, 43); u8g.print(timeMinutes%10); // Выводим младший разряд минут в позиции 63х43 u8g.drawStr ( 76, 43, ":"); // Выводим двоеточие в позиции 76х43 u8g.setPrintPos( 89, 43); u8g.print(timeSeconds/10); // Выводим старший разряд секунд в позиции 89х43 u8g.setPrintPos(106, 43); u8g.print(timeSeconds%10); // Выводим младший разряд секунд в позиции 106х43 } while(u8g.nextPage()); }
Комплектация
- 1x Дисплей LCD128x64;