Алярм! Ссылочка больше недоступна. Как можно допилить библиотеку гайвера, чтобы SH1106 работал без буфера по SPI?А как сделать буфер на стороне дисплея, как была "затравочка" из описания ?))
Вот нашел , что человек сделал некий вывод без буфера на SSH1106/SH1106 - но в какую библиотеку это добавлено? как понять?
Вывод без буфера на SH1106/SSH1106
Есть библиотека https://www.google.com/url?sa=t&sou...//github.com/ThingPulse/esp8266-oled-ssd1306/ для 1106 и 1306 но она под esp8266. Там последний пример с двумя экранамиПосмотреть вложение 50637
вот оно. на той плате понятно два адрес 0х3С и 0х3D.
Перемычки то есть, но хотелось бы знать наверняка. Перерыл весь интернет, неужели ни кому не понадобилось подключать более одного дисплея к ардуино?
Здравствуйте! Вероятно, для Вас уже не актуально. Вопрос.Есть неплохая библиотека U8g2 , но русские шрифты только для для той части , которая с буков G и занимает до фига много памяти, а та часть u8x8 маленькая, но шрифтов русских там нет.
Если у кого есть ссылка на нужную библиотеку (SH1106 , русские шрифты!) то поделитесь ссылкой.
//Кириллические шрифты для u8g2_lib (W-ширина, H-высота, B-bold/жирный):
// ------------------------------------------------------------------
// Шрифты Crox закодированы в соответствии со стандартом ISO 8859-5
// https://en.wikipedia.org/wiki/ISO/IEC_8859-5
// Все остальные шрифты с кириллическими символами закодированы Юникодом
// https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode
// ------------------------------------------------------------------
/*
u8g2.setFont(u8g2_font_4x6_t_cyrillic); //W4 H6 UTF
u8g2.setFont(u8g2_font_5x7_t_cyrillic); //W5 H7 UTF
u8g2.setFont(u8g2_font_5x8_t_cyrillic); //W5 H8 UTF
u8g2.setFont(u8g2_font_pxplustandynewtv_t_all); //W8 H8 UTF
u8g2.setFont(u8g2_font_t0_11_t_all); //W6 H11 UTF
u8g2.setFont(u8g2_font_haxrcorp4089_t_cyrillic); //W8 H11 UTF
u8g2.setFont(u8g2_font_boutique_bitmap_9x9_bold_t_gb2312b); //W11 H11 UTF
u8g2.setFont(u8g2_font_6x12_t_cyrillic); //W6 H12 UTF
u8g2.setFont(u8g2_font_6x13_t_hebrew); //W6 H13 UTF
u8g2.setFont(u8g2_font_6x13B_t_cyrillic); //W6 H13 UTF
u8g2.setFont(u8g2_font_7x13_t_cyrillic); //W7 H13 UTF
u8g2.setFont(u8g2_font_8x13_t_cyrillic); //W8 H13 UTF
u8g2.setFont(u8g2_font_crox1c_mf); //W8 H13 ISO
u8g2.setFont(u8g2_font_crox1c_tf); //W8 H13 ISO
u8g2.setFont(u8g2_font_crox1cb_mf); //W9 H13 ISO
u8g2.setFont(u8g2_font_crox1cb_tf); //W9 H13 B ISO
u8g2.setFont(u8g2_font_crox1t_tf); //W10 H13 ISO
u8g2.setFont(u8g2_font_crox1h_tf); //W11 H13 ISO
u8g2.setFont(u8g2_font_crox1tb_tf); //W11 H13 B ISO
u8g2.setFont(u8g2_font_crox1hb_tf); //W12 H13 B ISO
u8g2.setFont(u8g2_font_boutique_bitmap_7x7_t_all); //W16 H14 UTF
u8g2.setFont(u8g2_font_9x15_t_cyrillic); //W9 H15 UTF
u8g2.setFont(u8g2_font_nine_by_five_nbp_t_all); //W10 H15 UTF
u8g2.setFont(u8g2_font_pxplusibmvga8_m_all); //W8 H16 B UTF
u8g2.setFont(u8g2_font_pxplusibmvga8_t_all); //W8 H16 B UTF
u8g2.setFont(u8g2_font_pxplusibmvga9_m_all); //W9 H16 B UTF
u8g2.setFont(u8g2_font_pxplusibmvga9_t_all); //W9 H16 B UTF
u8g2.setFont(u8g2_font_crox2c_mf); //W9 H16 ISO
u8g2.setFont(u8g2_font_mercutio_basic_nbp_t_all); //W10 H16 UTF
u8g2.setFont(u8g2_font_mercutio_sc_nbp_t_all); //W10 H16 UTF
u8g2.setFont(u8g2_font_crox2cb_mf); //W10 H16 B ISO
u8g2.setFont(u8g2_font_glasstown_nbp_t_all); //W12 H16 UTF
u8g2.setFont(u8g2_font_crox2h_tf); //W13 H16 ISO
u8g2.setFont(u8g2_font_crox2t_tf); //W13 H16 ISO
u8g2.setFont(u8g2_font_crox2hb_tf); //W14 H16 B ISO
u8g2.setFont(u8g2_font_crox2tb_tf); //W14 H16 B ISO
u8g2.setFont(u8g2_font_unifont_t_cyrillic); //W16 H16 UTF
u8g2.setFont(u8g2_font_unifont_t_gb2312b); //W16 H16 UTF
u8g2.setFont(u8g2_font_boutique_bitmap_9x9_bold_t_all); //W20 H16 UTF
u8g2.setFont(u8g2_font_Born2bSportySlab_t_all); //W16 H16 UTF
u8g2.setFont(u8g2_font_boutique_bitmap_9x9_t_all); //W20 H16 UTF
u8g2.setFont(u8g2_font_rosencrantz_nbp_t_all); //W11 H17 UTF
u8g2.setFont(u8g2_font_guildenstern_nbp_t_all); //W11 H17 UTF
u8g2.setFont(u8g2_font_shylock_nbp_t_all); //W12 H17 UTF
u8g2.setFont(u8g2_font_crox3t_tf); //W18 H19 ISO *
u8g2.setFont(u8g2_font_crox3tb_tf); //W19 H19 B ISO
u8g2.setFont(u8g2_font_10x20_t_cyrillic); //W10 H20 UTF
u8g2.setFont(u8g2_font_crox3c_mf); //W12 H20 ISO
u8g2.setFont(u8g2_font_crox3cb_mf); //W13 H20 ISO
u8g2.setFont(u8g2_font_crox3h_tf); //W15 H20 ISO
u8g2.setFont(u8g2_font_crox3hb_tf); //W16 H20 B ISO
u8g2.setFont(u8g2_font_crox4t_tf); //W17 H21 ISO
u8g2.setFont(u8g2_font_crox4tb_tf); //W18 H21 B ISO
u8g2.setFont(u8g2_font_cu12_t_cyrillic); //W21 H22 UTF
u8g2.setFont(u8g2_font_crox4h_tf); //W18 H24 ISO
u8g2.setFont(u8g2_font_crox4hb_tf); //W19 H24 B ISO
u8g2.setFont(u8g2_font_crox5t_tf); //W23 H27 ISO
u8g2.setFont(u8g2_font_crox5tb_tf); //W24 H27 B ISO
u8g2.setFont(u8g2_font_crox5h_tf); //W24 H29 ISO
u8g2.setFont(u8g2_font_crox5hb_tf); //W25 H29 B ISO
u8g2.setFont(u8g2_font_inr24_t_cyrillic); //W20 H38 UTF
u8g2.setFont(u8g2_font_inr27_t_cyrillic); //W22 H42 UTF
u8g2.setFont(u8g2_font_inr30_t_cyrillic); //W24 H47 UTF
u8g2.setFont(u8g2_font_inr33_t_cyrillic); //W26 H50 UTF
u8g2.setFont(u8g2_font_inr38_t_cyrillic); //W30 H58 UTF
u8g2.setFont(u8g2_font_inr42_t_cyrillic); //W33 H64 UTF
u8g2.setFont(u8g2_font_inr46_t_cyrillic); //W36 H70 UTF
u8g2.setFont(u8g2_font_inr49_t_cyrillic); //W39 H75 UTF
u8g2.setFont(u8g2_font_inr53_t_cyrillic); //W42 H81 UTF
*/
/* Применение:
u8g2.clearBuffer(); // очистка буфера дисплея
u8g2.setFont(u8g2_font_crox2tb_tf); // W14 H16 B ISO (Шрифты выбираем во вкладке Fonts_Cyrillic)
PrintRusStr(7, 12, "Ваш текст", 1); // Х(7), Y(12), последний параметр 1 - ISO, 0 - UTF шрифт
u8g2.sendBuffer(); // Отображаем содержимое буфера дисплея
*/
// ------------------------------------------------------------------
// ЦИФРЫ (и латиница):
// ------------------------------------------------------------------
/*
u8g2.setFont(u8g2_font_10x20_mr); //W10 H20
u8g2.setFont(u8g2_font_crox3hb_tf); //W16 H20 B
u8g2.setFont(u8g2_font_helvB18_tn); //W13 H22
u8g2.setFont(u8g2_font_courB18_tr); //W16 H22
u8g2.setFont(u8g2_font_crox4h_tr); //W18 H24
u8g2.setFont(u8g2_font_crox4hb_tf); //W19 H24 B
u8g2.setFont(u8g2_font_courB24_tn); //W18 H28
u8g2.setFont(u8g2_font_crox5h_tr); //W23 H29
u8g2.setFont(u8g2_font_crox5hb_tf); //W25 H29 B
u8g2.setFont(u8g2_font_ncenB24_tn); //W19 H30
u8g2.setFont(u8g2_font_timB24_tn); //W17 H31
u8g2.setFont(u8g2_font_helvB24_tn); //W17 H31
u8g2.setFont(u8g2_font_7_Seg_33x19_mn); //W19 H31 цифры сегментные (начало координат - с левого верхнего! сегмента глифа)
u8g2.setFont(u8g2_font_courB24_tf); //W22 H33
u8g2.setFont(u8g2_font_calblk36_tr); //W22 H33
u8g2.setFont(u8g2_font_t0_40_tr); //W18 H38
u8g2.setFont(u8g2_font_t0_40_me); //W18 H39
u8g2.setFont(u8g2_font_t0_40b_me); //W18 H39
u8g2.setFont(u8g2_font_7_Seg_41x21_mn); //W21 H39 цифры сегментные (начало координат - с левого верхнего! сегмента глифа)
u8g2.setFont(u8g2_font_t0_40_me); //W18 H40
u8g2.setFont(u8g2_font_7Segments_26x42_mn); //W32 H42 цифры сегментные (начало координат - с левого нижнего! сегмента глифа)
u8g2.setFont(u8g2_font_logisoso62_tn); // цифры - на весь экран (128x64)!
u8g2.setFont(u8g2_font_unifont_t_emoticons); //W16 H16 смайлики 32/0020 144/0090
u8g2.setFont(u8g2_font_emoticons21_tr); //W21 H21 смайлики 32/0020 48/0030 -0037
*/ // ------------------------------------------------------------------
/* // в цикле рисуем смайлики (по коду символов)
u8g2.setFont(u8g2_font_unifont_t_emoticons); //W16 H16 смайлики от 32/0020 до 144/0099
for (int g = 1, x = 1, a = 0x0029; g < 9; g++, x += 16, a += 1) { // выводим первые 8 смайлов
int y = 16;
u8g2.drawGlyph(x, y, a); // x, y - координаты; a - код символа
}
*/
/*Пример (с изменениями) применения драйвера U8G2_SH1106_128X64 к OLED 1,3"
и вывода на печать кириллических шрифтов
PrintUTF8.ino
Use the (Arduino compatible) u8g2 function "print" to draw a text.
Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)
*/
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
//------------------------------------------------------------------------------------------------------
// функция печатает русскими буквами Шрифты Crox, закодированные в соответствии со стандартом ISO 8859-5
// Источник: https://github.com/olikraus/u8g2/issues/1815 ; Автор: https://github.com/andreydk1981
// Изменено: добавлен четвёртый параметр
//------------------------------------------------------------------------------------------------------
void PrintRusStr(int x, int y, String source, bool M_ISO) // последний параметр 1 - ISO, 0 - UTF
{
if (M_ISO) { //если флаг 1, печатаем шрифт ISO
int i, k;
String target;
unsigned char n;
char m[2] = {'0', '\0'};
k = source.length();
i = 0;
while (i < k)
{
n = source[i]; i++;
if (n >= 0xC0)
{
switch (n)
{
case 0xD0:
n = source[i]; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) { n = n + 0x30; }
break;
case 0xD1:
n = source[i]; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) { n = n + 0x70; }
break;
}
}
m[0] = n; target = target + String(m);
u8g2.drawStr(x, y, target.c_str());
}
} else { // печатаем шрифт UTF8
u8g2.setCursor(x, y);
u8g2.print(source.c_str());
}
} //-----------Конец PrintRusStr()-----------
void setup(void) {
u8g2.begin();
u8g2.enableUTF8Print(); // enable UTF8 support for the Arduino print() function
}
void loop(void) {
u8g2.setFont(u8g2_font_unifont_t_chinese2); // use chinese2 for all the glyphs of "你好世界"
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.setCursor(0, 15);
u8g2.print("Hello World!");
u8g2.setCursor(0, 40);
u8g2.print("你好世界"); // Chinese "Hello World"
//u8g2.setFont(u8g2_font_5x7_t_cyrillic); // W5 H7 UTF
(Шрифты выбираем во вкладке Fonts_Cyrillic)
u8g2.setFont(u8g2_font_crox1hb_tf); //W12 H13 B ISO
PrintRusStr(0, 60, "Привет, МИР!", 1); // последний параметр 1 - ISO, 0 - UTF
u8g2.sendBuffer();
delay(1000);
}