- Необхідний матеріал
- Кругова діаграма
- 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. Режим інтерфейсної комунікації можна перемикати між паралельним та послідовним за допомогою PSB PIN 15. Цей графічний РК-дисплей має функцію автоматичного ввімкнення живлення та може бути легко керований MCU, таким як 8051, AVR, ARM, Arduino та Raspberry Pi.
Ви можете переглянути детальні відомості про графічний РК-дисплей ST7290 128 * 64
Конфігурація контактів
No контакту |
Ім'я PIN-коду |
Опис |
1 |
Gnd |
Наземний термінал |
2 |
Vcc |
Вхідна напруга живлення (від 2,7 до 5,5 в) |
3 |
Vo |
Контрастність РК-дисплея |
4 |
RS |
Зареєструватися Виберіть RS = 0: Реєстр інструкцій RS = 1: Реєстр даних |
5 |
R / W |
Контроль читання / запису |
6 |
Е |
Увімкнути |
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 |
Вут |
Вихід подвоєння РК-напруги. ГОЛОС ≦ 7В. |
19 |
BLA |
Позитивне підсвічування |
20 |
BLK |
Негативне підсвічування |
Програми
- Промисловий пристрій
- Вбудовані системи
- Безпека
- Медичний
- Ручне обладнання
Перетворення зображення в шістнадцятковий код:
Щоб показати будь-яке зображення на графічному РК-дисплеї, нам потрібен шістнадцятковий код цього зображення, тому ось кілька кроків для перетворення зображення у шістнадцятковий код. Перед цим потрібно переконатися, що розмір зображення не повинен перевищувати 128 * 64.
Крок 1. Зменште розмір звичайного зображення до 128 * 64 або менше, що можна зробити за допомогою будь-якого програмного забезпечення для редагування зображень, наприклад, фарби MS.
Як показано на малюнку вище, ми встановлюємо ширину та висоту зображення 128 * 64.
Крок 2: Потім вам потрібно зберегти зображення у форматі "image_name .bmp ".
Виберіть формат, показаний на зображенні вище, і збережіть файл для подальшого процесу.
Крок 3: Після збереження у форматі.bmp вам потрібно перетворити зображення у шістнадцятковий код для друку. Для цього я використовую програмне забезпечення під назвою GIMP 2, яке перетворює файл Bmp у шістнадцятковий код.
Як показано на зображенні вище, ми відкрили файл формату.bmp у програмі GIMP 2.
Крок 4: Після завантаження програмного забезпечення, відкрийте файл формату зображення BMP, який ви хочете надрукувати, а потім зберегти як це в « .xbm » (X Bitmap) формат. Після збереження відкрийте цей файл за допомогою Блокнота, і ви отримаєте шістнадцятковий код зображення.
Як показано на малюнку нижче, виберіть опцію Експорт, щоб зберегти файл у форматі xbm :
Виберіть формат, показаний на малюнку нижче, та експортуйте файл зображення.
Після експорту файлу ви отримаєте файл у форматі.xbm. Відкрийте файл xbm за допомогою Блокнота, і ви отримаєте шістнадцятковий код, як показано на малюнку нижче.
Код Arduino та робоче пояснення
Для взаємодії графічного РК з Arduino спочатку нам потрібно визначити бібліотеку, яка використовується для графічного РК. Arduino не має цієї бібліотеки, вам потрібно завантажити та встановити цю бібліотеку за цим посиланням. Тоді ви можете включити бібліотеку, як показано нижче:
#include "U8glib.h"
Тут ' u8g (10) ' визначає з'єднання штиря RS (реєстрації вибору) графічного РК-дисплея з 10-м висновком Arduino UNO. RS-штифт використовується як "вибір мікросхеми" та "Вибір реєстру", коли використовується відповідно в послідовному та паралельному режимах. Отже, ми використовуємо послідовний режим і штифт RS, встановлений на Високий (1) для чіпа з увімкненим та Низький (0) для чіпа з відключеним.
U8GLIB_ST7920_128X64_4X u8g (10);
Тепер для друку зображення нам потрібно розмістити шістнадцятковий код зображення в коді нижче. Ви можете надрукувати будь-яке інше зображення, все, що вам потрібно зробити, це вставити шістнадцятковий код зображення.
const uint8_t rook_bitmap U8G_PROGMEM = { Вставте сюди шістнадцятковий код зображення };
Перевірте Повний код Arduino в кінці цієї статті.
Функція, наведена нижче , використовується для друку зображення, для друку використовується команда “u8g.drawXBMP (x, y, ширина зображення, висота зображення)” . Де X та Y - це початкове положення зображення на РК-дисплеї, і нам також потрібно написати розмір зображення, який не повинен перевищувати 128 * 64, і в кінцевому аргументі ми назвали функцію, в яку ми помістили шістнадцятковий код зображення.
порожнє зображення (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Ми створили дві функції, що називаються "малювати" та "наступна", в яких код для друку вмісту пишеться за допомогою команди "u8g.drawStr (x, y," abcd ")". Тут x та y - це положення на РК-дисплеї, де буде надруковано вміст, а ' abcd ' - вміст, який слід надрукувати.
недійсне розіграш (void) {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 () створена для очищення РК-дисплея, просто надаючи функції значення NULL.
void clearLCD () {u8g.firstPage (); виконайте {} while (u8g.nextPage ()); }
Налаштування пікселів, кольору та інтенсивності за допомогою коду нижче
недійсне встановлення (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // білий} ще if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // максимальна інтенсивність} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // піксель} ще, якщо (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255, 255, 255); }}
Цикл void продовжує друкувати текст і зображення після заданої затримки. По-перше, ми надрукували “Circuit Digest”, використовуючи функцію витягування, і через 2 секунди. затримки ми очистили екран за допомогою функції clearLCD, а потім надрукували “ Інтерфейс графічного РК-екрану за допомогою Arduino ”, використовуючи наступну функцію. Потім ми надрукували зображення за допомогою функції picture (), яка залишатиметься на екрані протягом 3 секунд. Це триватиме доти, доки не ввімкнеться джерело живлення.
цикл void (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); затримка (2000); clearLCD (); u8g.firstPage (); do {next (); } while (u8g.nextPage ()); затримка (2000); clearLCD (); u8g.firstPage (); do {picture (); } while (u8g.nextPage ()); затримка (3000); clearLCD (); затримка (50); }
Після програмування Arduino з використанням заданого коду, підключіть графічний РК-дисплей відповідно до електричної схеми до Arduino і поставте Arduino за допомогою адаптера або USB. Ви отримаєте вміст та зображення, надруковані на графічному РК-дисплеї, як показано у відео, поданому нижче.
Також перевірте взаємодію графічного РК Nokia 5110 з Arduino,