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

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Reputation: 74
Posts: 1227
Joined: 5 Apr 2013
With us: 6 years 4 months

#1by Дим » 25 Feb 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 KiB) Viewed 635 times

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

Для HCuOLED библиотеки вывод изображения происходит следующим образом;

Code: Select all

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

! ! !


  • Similar Topics
    Replies
    Views
    Last post

Return to “Программирование”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest