Arduino, LED дисплей 128x64 картинка в HCuOLED библиотеке

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 25 февраля 2018, 19:07

Что бы отобразить свою картинку на LED дисплей 128x64, для начала нужно изображение сделать монохромным - это 2-битный цвет и не более 128 х 64 пикселя. В Windows поможет программа Paint.
Следующим шагом является преобразование этого обычного файла изображения в 504-байтовый массив char . Существует ряд программ, которые могут помочь в этом, мы рекомендуем LCD Assistant.

Чтобы загрузить изображение в ЖК-ассистенте, откройте « Файл» > « Загрузить изображение» . Предварительный просмотр изображения должен открыться, убедитесь, что он имеет правильный размер - 128 пикселя в ширину, 64 пикселей в высоту. Также убедитесь, что ориентация байта установлена ​​на « Вертикаль», а для параметра « Размер» задано значение « Маленький» . Остальные настройки по умолчанию (8 пикселей / байт и т. д.)

Затем перейдите в Файл > Сохранить вывод, чтобы создать временный текстовый файл. Откройте этот текстовый файл, чтобы посмотреть на массив. Вам нужно будет изменить тип массива как char (no unsigned или const ). Также убедитесь, что у массива есть соответствующие соглашения об именах (без тире, не начинайте с номера и т.д.).
Я делал знак термометра, и вот что у меня получилось.
знак термометра.bmp
знак термометра
знак термометра.bmp (1.43 КБ) 2157 просмотров

знак термометра.JPG
знак термометра

Для 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();  // Вывод буфера отображения на экран
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Программирование»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя