Добрый день dankr.
К сожалению мало информации о проекте.
Если у Вас уже есть работающий скетч то в заголовке после #include <U8g2lib.h> вставте #include "Calibri10.h" (файл должен находится в том же каталоге что и скетч.
Перед непосредственным использованием шрифта (если используется несколько шрифтов) вставте u8g2.setFont(Calibri10) иначе можно и в setup.
Если у Вас Arduino IDE работает в UTF то понадобится вставить функцию из программы (кнопка вверху справа со знаком вопроса).
Усли проекта нет, проще всего открыть пример, найти свой дисплей и добиться вывода на экран.
К сожалению ни с esp32 ни с дисплеем st7565 не работал, так что что-то корректное написать не смогу.
Добавлено after 7 minutes 3 seconds:
Уже есть от чего оттолкнуться. Как появится время, кинусь пробовать. Работающий скетч есть. А по поводу данных проекта проблем нет. Это обычные часы, как часть более крупного проекта. Всё стандартно и по минимуму. С небольшими нюансами. И большая вам благодарность за посильную помощь! И, главное, вовремя!!
Хотел уточнить. #include "Calibri10.h" вставить строчкой ниже #include <U8g2lib.h> или в одной строке они должны быть? Понимаю, вопрос абсолютного чайника, но хотелось бы однозначности.
Добавлено after 1 minute 2 seconds:
[uquote="mig958",url="/forum/viewtopic.php?p=4614648#p4614648"]Кстати я не уверен что эти шрифты работают с U8G2 я пробовал только с u8GLib.[/uquote] Вот я и попробую.
Ну в одной строчке не получится- компилятор не даст. Можно и не сразу за #include <U8g2lib.h> главное позже и до использования.
А вообще этот вопрос о языке C, C++.
Да, мне ребята выше сказали об этом, что это язык С...Просто навряд ли мне эти знания пригодятся в будущем. Я не программист и стать им скорее всего уже не успею. :0 :0
Выдало ошибку уже перед использованием. Я тут могу вам показать файл скорректированных шрифтов? При просмотре одни китайские (или не китайские) закорючки. Вы в статье писали о требованиях к наименованиям. Может у меня что не так с этим? У вас будет возможность глянуть?
Добавлено after 1 minute 13 seconds:
error: 'u8g2' was not declared in this scope; did you mean 'U8G2'?
Кое что я и так нахватался. ))) За лишнюю наводку спасибо. Лишним всё равно не будет.
/***************************************************************************
Подбор шрифтов
****************************************************************************/
#define FONT_10x20 u8g2_font_10x20_t_cyrillic
#define FONT_9x15 u8g2_font_9x15_t_cyrillic
#define FONT_6x13 u8g2_font_6x13B_tf // Секунды..... эти
#define FONT_7x13 u8g2_font_7x13_m_symbols // Секунды
#define FONT_8x13 u8g2_font_8x13_t_cyrillic // Секунды
#define FONT_9x15 u8g2_font_haxrcorp4089_t_cyrillic // Месяц и День Недели. не поместилось пол буквы - к
#define FONT_9x15 u8g2_font_logisoso16_tr // Год. оптимально.
#define FONT_9x15 u8g2_font_fur35_tr // Число! fub на пиксель толще, но цифры неаккуратные.
#define FONT_9x15 u8g2_font_fur30_tf // Число
#define FONT_6x12 u8g2_font_logisoso32_tf // Число для числа слишком узкий шрифт
#define FONT_6x12 u8g2_font_inr33_mn // Число Х
#define FONT_6x12 u8g2_font_inr33_t_cyrillic // Число Х
#define FONT_6x12 u8g2_font_inb33_mf // Число перечёркнутый НОЛЬ Х
#define FONT_9x19 u8g2_font_logisoso28_tr // Часы. по возможности найти такие же узкие, но немного длиннее.
#define FONT_6x12 u8g2_font_logisoso22_tf // Часы.
#define FONT_9x18 u8g2_font_font_logisoso38_tf
#define FONT_9x17 u8g2_font_lubB14_tf // Точки
#define FONT_8x5 u8g2_font_Calibri10 // Месяц и День Недели. Вставлен My Shrift_Calibri10 ( 8 x 5)
void setup()
{
delay(1000); // ждём завершение переходных процессов связанных с подачей питания.
Wire.begin(); // инициируем работу с аппаратной шиной I2C.
u8g2_1.begin(); // старт дисплея 1
u8g2_2.begin(); // старт дисплея 2
u8g2_3.begin(); // старт дисплея 3
rtc.begin(&Wire); // старт датчика ds3231
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // установка времени и даты последней компиляции
//rtc.adjust(DateTime(2024, 8, 12, 17, 45, 0)); // Год, Месяц, Число, Час, Мин, Сек.
{
u8g2_1.setContrast(25); //Контрастность 1
u8g2_1.enableUTF8Print(); // Вывод текста 1
u8g2_2.setContrast(25); //Контрастность 2
u8g2_2.enableUTF8Print(); // Вывод текста 2
u8g2_3.setContrast(25); //Контрастность 3
u8g2_3.enableUTF8Print(); // Вывод текста 3
[uquote="smacorp",url="/forum/viewtopic.php?p=4614715#p4614715"]Вам сам компилятор подсказывает - переменная u8g2 не объявлена в прелах области видимости, может имелась ввиду переменная U8G2?
Измените регистр букв на верхний.[/uquote]
Компилятор подсказывает, что незадекларирована библиотека. Что-то с ним наверное. Не уверен, что правильно без ошибок создал шрифты.
Ну в общем я попробовал компилировать шрифт в U8G2 и в U8GLib - не работает. Формат шрифта другой.
Могу посоветовать русские шрифты: русские шрифты
или использовать библиотеку Adafruit_GFX ST7565_LCD
Буду пробовать. Деваться некуда. Попробую скинуть фото экрана если тут на сайте получится.
Добавлено after 9 minutes 6 seconds:
Да, скобки там не хватало. Вы совершенно правы. Но, ошибка осталась. Какая-то хрень всё равно осталась незадекларированной. А что за вторая ошибка? Увидел! Исправлю.
Жаль фото не получается выставить. Для наглядности.
Добавлено after 35 minutes 50 seconds:
""Могу посоветовать русские шрифты: русские шрифты
или использовать библиотеку Adafruit_GFX ""
В первом случае речь идёт о u8g. Во втором русским духом и не пахнет. Если я правильно понял.
Есть ещё другой вопрос не менее заковыристый. Как сделать мигающие разделительные точки в часах? Сейчас в сети гуляют четыре разновидности дисплеев и кодов: 7-ми сегментные светодиодные индикаторы, OLED, 2-х строчные и маленькие цветные. Под средние ЖК почти ничего нет. Варианты, которые мне попадались не являлись прямым аналогом под мой дисплей и библиотеку RTClib. Переделки под мои комплектующие не для моих знаний. Если у кого есть рабочий вариант мигающих точек на ЖК дисплее st7565 подбросьте. Если нужен будет мой скетч в районе часов - скину.
""можно воспользоваться моей программой... "" Тогда у меня просьба. Вы бы могли сделать мне 3 буквы Не волнуйтесь. Хорошие буквы. 8 х 5 заглавную Д, Ц (чтоб хвостик в 5 пикселей поместился ) и Ь (8 х 4). Мне надо освободить 3 пиксела. Самое главное, как их можно задействовать с другими буквами? Если это гемор, то вопрос закрыт.
Вывод моргающих точек не зависит от дисплея и от библиотеки. Нужно только обеспечить раз в пол секунды печать или ":" или " " (пробела).
вот например рабочий скетч вывода часов с мигающей точкой.
Добавлено after 5 minutes 30 seconds:
По поводу 3 букв.
Если это шрифт совместимый с Adafruit_GFX вставте файл шрифта в сообщение и скажите что и как исправить. Я исправлю и верну Вам.