Следующим шагом является преобразование этого обычного файла изображения в 504-байтовый массив char . Существует ряд программ, которые могут помочь в этом, мы рекомендуем LCD Assistant.
Чтобы загрузить изображение в ЖК-ассистенте, откройте « Файл» > « Загрузить изображение» . Предварительный просмотр изображения должен открыться, убедитесь, что он имеет правильный размер - 128 пикселя в ширину, 64 пикселей в высоту. Также убедитесь, что ориентация байта установлена на « Вертикаль», а для параметра « Размер» задано значение « Маленький» . Остальные настройки по умолчанию (8 пикселей / байт и т. д.)
Затем перейдите в Файл > Сохранить вывод, чтобы создать временный текстовый файл. Откройте этот текстовый файл, чтобы посмотреть на массив. Вам нужно будет изменить тип массива как char (no unsigned или const ). Также убедитесь, что у массива есть соответствующие соглашения об именах (без тире, не начинайте с номера и т.д.).
Я делал знак термометра, и вот что у меня получилось.
Для HCuOLED библиотеки вывод изображения происходит следующим образом;
Код: Выделить всё
#include "HCuOLED.h"
const PROGMEM byte Termometr[] ={
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x02, 0xA9, 0xFF, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x40, 0x7F, 0x80, 0xFE, 0xFF, 0x80, 0x7F, 0x40, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1F, 0x20, 0x4E, 0x5F, 0x9F, 0xBF, 0xBF, 0x9F, 0x5F, 0x4E, 0x20, 0x1F, 0x00, 0x00
};
HCuOLED HCuOLED(SH1106, CS_DI, DC_DI, RST_DI); // Для дисплеев SH1106 (HCMODU0058 & HCMODU0059)
void setup()
{
HCuOLED.Reset(); // Сбросить отображение
// ========= Знак термометра =================
HCuOLED.Cursor(5,5); // установка курсора для отображения положения знака
HCuOLED.Bitmap(16, 3, Termometr); // отобразит знак
HCuOLED.Refresh(); // Вывод буфера отображения на экран
}