Для одного из своих проектов на Arduino решил использовать очень маленький дисплей, размером всего 0.96 дюйма. Но солкнулся с тем, что библиотеки, распростаняемые в интернете в большей части не позволяют сильно увеличить шрифт, а выводить данные на дисплей надо покрупнее. Увеличить размер цифр можно, а букв — нет.
Первым делом надо подключить дисплей к Arduino, в моём случае это Arduino nano.
Схема подключения простая, всего 4 контакта:
GND - Земля на Arduino
VCC - +5V на Arduino
SCL - пин номер 5 на Arduino nano
SDA - пин номер 4 на Arduino nano
Мне надо выводить на экран какое-то слово крупно или символ и рядом цифру. С цифрами всё понятно, а вот большие буквы/символы я решил делать обычными картинками. Так как размер экрана у меня 128 на 64 символов, то и картинка не должна превышеть 128 на 64 пикселя. Картинка должна быть монохромной (чёрно-белая, без оттенков серого) формата png, .jpg или .gif и размером до 300 KB. Анимированные GIF тоже не подходят. Если будете переводить обычную картинку в чёрно-белую, советую сохранять в gif.
Эту картинку загружаем сюда и получаем текстовый документ (можно для этого использовать програмку «LCDAssistant»), который надо сохранить с расширением *.c в ту же папку, где находится скетч arduino. Название файла с расширением *.c будет таким же, как и название картинки, которое вы загрузили на сайт. И если открыть получившийся *.c файл, то внутри будет фигурировать тоже название файла. Советую не переименовывать получившийся файл *.c, чтобы не усраивать путаницы и используйте англ. язык для названий картинок.
После этого копируем разорхивированную библиотеку для работы с нашим дисплеем в папку, где arduino ide (на данный момент у меня версия 1.6.13) хранит бибилиотеки, а именно в C:\Users\имя-пользователя\Documents\Arduino\libraries (актуально для пользователей w!nd0w5). Можно в интернете найти библиотеку с поддержкой русского и украинского языка, шрифт в ней по прежнему большим не сделать, но библиотека годная.
Запускаем Arduino IDE и заливаем такой скетч:
#include OLED myOLED(SDA, SCL, 4);
// картинка
extern uint8_t mediaunix5[];
void setup()
{
myOLED.begin();
}
void loop()
{
myOLED.clrScr();
myOLED.drawBitmap(0, 0, mediaunix5, 128, 64);
myOLED.update();
delay(4000);
}
Где
mediaunix5 — это название файла с равширением *.c, который мы положили в папку со скетчем
И ещё по поводу строки с «(0, 0, mediaunix5, 128, 64)»
0, 0 — это координаты расположения картинки на экране
mediaunix5 — уже понятно что.
128, 64 — размер картинки
После заливки скетча, получаем картинку на дисплее.
Бонус.
Для примера можете скопировать этот код:
imagedatatype mediaunix5[] PROGMEM={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0010 (16) pixels
0x00, 0x10, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0020 (32) pixels
0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x0030 (48) pixels
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x0040 (64) pixels
0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x0050 (80) pixels
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0060 (96) pixels
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0070 (112) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0080 (128) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0090 (144) pixels
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x3F, 0x7F, 0xFE, 0xF8, 0xE0, 0xC0, 0x80, 0xE0, // 0x00A0 (160) pixels
0xF8, 0xFE, 0x3F, 0x1F, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x00B0 (176) pixels
0xFF, 0xFF, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xA3, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, // 0x00C0 (192) pixels
0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x0F, 0x1F, 0xFF, // 0x00D0 (208) pixels
0xFC, 0xF8, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00E0 (224) pixels
0x00, 0xE0, 0xF8, 0xFE, 0x3F, 0x0F, 0x1F, 0x7F, 0xFC, 0xF0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x00F0 (240) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0100 (256) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0110 (272) pixels
0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x01, 0x07, 0x1F, 0x3F, 0x1F, 0x0F, // 0x0120 (288) pixels
0x03, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x7F, 0x7F, // 0x0130 (304) pixels
0x7F, 0x7F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, // 0x0140 (320) pixels
0x00, 0x70, 0x7F, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x78, 0x38, 0x3F, 0x1F, // 0x0150 (336) pixels
0x1F, 0x07, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x40, 0x00, 0x00, 0x40, 0x60, 0x70, 0x7E, // 0x0160 (352) pixels
0x7F, 0x4F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x5F, 0x7F, 0x7E, 0x78, 0x60, 0x40, // 0x0170 (368) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0180 (384) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0190 (400) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01A0 (416) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01B0 (432) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01C0 (448) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01D0 (464) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01E0 (480) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x01F0 (496) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0200 (512) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0210 (528) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, // 0x0220 (544) pixels
0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, // 0x0230 (560) pixels
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0240 (576) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0250 (592) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0260 (608) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0270 (624) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0280 (640) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0290 (656) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x02A0 (672) pixels
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0x02B0 (688) pixels
0xFF, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0xF0, 0xE0, 0xC0, 0xC0, 0x80, 0x00, // 0x02C0 (704) pixels
0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0x04, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0xFC, 0xFC, 0x04, // 0x02D0 (720) pixels
0x00, 0x00, 0x04, 0x04, 0x1C, 0x3C, 0x7C, 0xFC, 0xF4, 0xE0, 0xC0, 0xC0, 0xE0, 0xF4, 0x7C, 0x3C, // 0x02E0 (736) pixels
0x1C, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x02F0 (752) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0300 (768) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0310 (784) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, // 0x0320 (800) pixels
0xFF, 0xFF, 0xF0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xF0, 0xFF, 0xFF, // 0x0330 (816) pixels
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x03, 0x03, 0x0F, 0x1F, 0x1E, // 0x0340 (832) pixels
0x7E, 0x78, 0xF0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // 0x0350 (848) pixels
0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0xF0, 0x7F, 0x3F, 0x0F, 0x3F, 0x7F, 0xFF, 0xF0, 0xC0, // 0x0360 (864) pixels
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0370 (880) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0380 (896) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0390 (912) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03A0 (928) pixels
0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, // 0x03B0 (944) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03C0 (960) pixels
0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, // 0x03D0 (976) pixels
0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, // 0x03E0 (992) pixels
0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x03F0 (1008) pixels
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x0400 (1024) pixels
};
и сохранить в файл с названием mediaunix5.c в папку со скетчем, чтобы получить изображение как на картинке выше.