- Необходимый материал
- Принципиальная электрическая схема
- 128 * 64 графический ЖК-дисплей
- Преобразование изображения в шестнадцатеричный код:
- Код Arduino и рабочее объяснение
В электронных проектах используется много типов ЖК-дисплеев. Мы уже использовали ЖК-дисплей 16X2 во многих наших проектах, а также использовали ЖК-дисплей TFT с Arduino. По этой ссылке вы можете найти весь наш проект, связанный с ЖК-дисплеем 16X2, включая взаимодействие с 8051, AVR, Arduino и многими другими.
ST9720 Графический ЖК - дисплей полностью отличается от обычных ЖК - дисплеев. Обычный ЖК-дисплей может печатать только простой текст или числа фиксированного размера. Но в графических ЖК-дисплеях у нас 128 * 64, что равно 8192 точкам или 8192/8 = 1024 пикселя, поэтому, кроме символа, мы можем отображать любое графическое изображение на этом GLCD.
Мы уже связали GLCD с 8051, сегодня мы подключим графический ЖК-дисплей к Arduino для отображения на нем текста и изображений.
Необходимый материал
- Arduino UNO
- 128 * 64 графический ЖК-дисплей ST9720
- Потенциометр-10к
- Соединительные провода
- Макетная плата
Принципиальная электрическая схема
128 * 64 графический ЖК-дисплей
Этот графический ЖК-дисплей имеет низкое энергопотребление и также подходит для портативных устройств с батарейным питанием. Он имеет широкий диапазон рабочего напряжения от 2,2 В до 5,5 В, поддерживает как последовательную, так и 8/4-битную параллельную связь и поставляется с ЖК-контроллером / драйвером ST7290. Режим связи интерфейса может переключаться между параллельным и последовательным с помощью PIN-кода PSB 15. Этот графический ЖК-дисплей имеет функцию автоматического сброса при включении и может легко управляться с помощью MCU, например 8051, AVR, ARM, Arduino и Raspberry Pi.
Подробную информацию о графическом ЖК-дисплее ST7290 128 * 64 см. В техническом описании.
Конфигурация контактов
№ контакта |
Имя контакта |
Описание |
1 |
Gnd |
Терминал заземления |
2 |
Vcc |
Входное напряжение питания (от 2,7 до 5,5 В) |
3 |
Vo |
ЖК-контраст |
4 |
RS |
Зарегистрироваться Выбрать RS = 0: регистр инструкций RS = 1: регистр данных |
5 |
R / W |
Контроль чтения / записи |
6 |
E |
включить |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Выводы данных (используются в параллельном 8/4-битном режиме связи) |
15 |
PSB |
Выбор интерфейса: Низкий (0) для режима последовательной связи Высокий (1) для режима 8/4-битной параллельной шины. |
16 |
NC |
Не подключен |
17 |
RST |
Сбросить PIN-код |
18 |
Vout |
Выход удвоителя напряжения LCD. VOUT ≦ 7V. |
19 |
BLA |
Подсветка положительная |
20 |
BLK |
Подсветка отрицательное питание |
Приложения
- Промышленное устройство
- Встроенные системы
- Безопасность
- Медицинское
- Переносное оборудование
Преобразование изображения в шестнадцатеричный код:
Чтобы отобразить любое изображение на графическом ЖК-дисплее, нам понадобится HEX-код этого изображения, поэтому вот несколько шагов, чтобы преобразовать изображение в HEX-код. Перед этим необходимо убедиться, что размер изображения не должен превышать 128 * 64.
Шаг 1. Уменьшите размер обычного изображения до 128 * 64 или меньше, что вы можете сделать с помощью любого программного обеспечения для редактирования изображений, такого как MS paint.
Как показано на картинке выше, мы устанавливаем ширину и высоту изображения 128 * 64.
Шаг 2: Затем вам нужно сохранить изображение в формате «имя_образа .bmp ».
Выберите формат, показанный на изображении выше, и сохраните файл для дальнейшей обработки.
Шаг 3: После сохранения в формате «.bmp» вам необходимо преобразовать изображение в шестнадцатеричный код для печати. Для этого я использую программу под названием GIMP 2, которая преобразует файл Bmp в шестнадцатеричный код.
Как показано на изображении выше, мы открыли файл формата «.bmp» в программе GIMP 2.
Шаг 4: После загрузки программного обеспечения, откройте файл формата изображения BMP, который вы хотите напечатать, а затем сохранить как это в « .xbm » (X Bitmap) формат. После сохранения откройте этот файл с помощью Блокнота, и вы получите шестнадцатеричный код изображения.
Как показано на рисунке ниже, выберите параметр «Экспорт», чтобы сохранить файл в формате xbm :
Выберите формат, показанный на рисунке ниже, и экспортируйте файл изображения.
После экспорта файла вы получите файл в формате «.xbm». Откройте файл xbm с помощью Блокнота, и вы получите HEX-код, как показано на рисунке ниже.
Код Arduino и рабочее объяснение
Чтобы связать графический ЖК-дисплей с Arduino, сначала нам нужно определить библиотеку, используемую для графического ЖК-дисплея. У Arduino нет этой библиотеки, вы должны загрузить и установить ее по этой ссылке. Затем вы можете включить библиотеку, как показано ниже:
#include "U8glib.h"
Здесь u8g (10) определяет соединение вывода RS (выбор регистра) графического ЖК-дисплея с 10-м выводом Arduino UNO. Вывод RS используется как «выбор микросхемы» и «выбор регистра» при использовании в последовательном и параллельном режимах соответственно. Итак, мы используем последовательный режим, и для вывода RS установлено значение High (1) для включения микросхемы и Low (0) для отключения микросхемы.
U8GLIB_ST7920_128X64_4X u8g (10);
Теперь для печати изображения нам нужно поместить шестнадцатеричный код изображения в приведенный ниже код. Вы можете распечатать любое другое изображение, все, что вам нужно сделать, это вставить шестнадцатеричный код изображения.
const uint8_t rook_bitmap U8G_PROGMEM = { Вставьте сюда шестнадцатеричный код изображения };
Ознакомьтесь с полным кодом Arduino в конце этой статьи.
Ниже функции используется для печати изображения, команда, используемая для печати является «u8g.drawXBMP (х, у, ширина изображения, высота изображения)» . Где X и Y - это начальная позиция изображения на ЖК-дисплее, и нам также нужно записать размер изображения, который не должен превышать 128 * 64, и в последнем аргументе мы вызвали функцию, в которую мы поместили HEX-код изображения.
пустое изображение (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Мы создали две функции, названные «draw» и «next», в которых код для печати содержимого написан с помощью команды «u8g.drawStr (x, y,« abcd »)». Здесь x и y - это позиция на ЖК-дисплее, где будет печататься контент, а abcd - это контент, который будет напечатан.
недействительным рисованием (недействительным) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, «ДАЙДЖЕСТ ЦЕПИ»); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, «Интерфейс»); u8g.drawStr (0, 35, «Графический ЖК-дисплей»); u8g.drawStr (0, 55, «с Arduino»); }
Функция clearLCD () предназначена для очистки ЖК-дисплея, просто передавая функции нулевое значение.
void clearLCD () {u8g.firstPage (); делать {} пока (u8g.nextPage ()); }
Настройка пикселей, цвета и интенсивности с помощью кода ниже
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // белый} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // максимальная интенсивность} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // пиксель включен} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Цикл void продолжает печатать текст и изображение после заданной задержки. Сначала мы напечатали «Дайджест схемы», используя функцию рисования и через 2 секунды. задержки мы очистили экран с помощью функции clearLCD, а затем распечатали « Интерфейс графического ЖК-дисплея с использованием Arduino » с помощью следующей функции. Затем мы напечатали изображение с помощью функции picture (), которая останется на экране в течение 3 секунд. Это будет продолжаться, пока не будет включено питание.
недействительный цикл (void) {u8g.firstPage (); делать {рисовать (); } while (u8g.nextPage ()); задержка (2000); clearLCD (); u8g.firstPage (); сделать {следующий (); } while (u8g.nextPage ()); задержка (2000); clearLCD (); u8g.firstPage (); сделать {изображение (); } while (u8g.nextPage ()); задержка (3000); clearLCD (); задержка (50); }
После программирования Arduino с использованием данного кода подключите графический ЖК-дисплей в соответствии с принципиальной схемой к Arduino и подключите Arduino с помощью адаптера или USB. Вы получите контент и изображение, напечатанное на графическом ЖК-дисплее, как показано на видео, приведенном ниже.
Также проверьте взаимодействие графического ЖК-дисплея Nokia 5110 с Arduino,