Часы на 12864_ks0108 глупые вопросы
Часы на 12864_ks0108 глупые вопросы
Добрый день уважаемые коты!
Нашел скетч Ардуино часов на 12864, время ds3231 устанавливается скетчем SetTime.
Проблема в том:
1. Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" но уже на следующей неделе будет "ЯНВАРЯ" ,если в другой день то следующее "воскресенье" будет "января"
char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"};
Если в этой строке изменить положение дней недели то первый день всегда будет "января"
2. Как изменить значение в строке
u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
Чтоб день недели отображался не с 75 строки а с -128, т.е. с правого верхнего угла в другую сторону.
Спасибо!
Нашел скетч Ардуино часов на 12864, время ds3231 устанавливается скетчем SetTime.
Проблема в том:
1. Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" но уже на следующей неделе будет "ЯНВАРЯ" ,если в другой день то следующее "воскресенье" будет "января"
char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"};
Если в этой строке изменить положение дней недели то первый день всегда будет "января"
2. Как изменить значение в строке
u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
Чтоб день недели отображался не с 75 строки а с -128, т.е. с правого верхнего угла в другую сторону.
Спасибо!
- Вложения
-
- IMG_3080.jpg
- (80.95 КБ) 134 скачивания
-
- PG12864K_KS0108_clock.7z
- (1.13 КБ) 117 скачиваний
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
Мне почему-то кажется, что Вы сами не поняли, что тут написалиrezak писал(а):1. Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" но уже на следующей неделе будет "ЯНВАРЯ" ,если в другой день то следующее "воскресенье" будет "января"
char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"};
Если в этой строке изменить положение дней недели то первый день всегда будет "января"
Что за 75-ая строка ? И что за строка "-128" ? Что за дисплей у Вас там ? Ещё и в другую сторонуrezak писал(а):2. Как изменить значение в строке
u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
Чтоб день недели отображался не с 75 строки а с -128, т.е. с правого верхнего угла в другую сторону.
PS: Можно более подробнее и понятнее вопросы задать ?
Re: Часы на 12864_ks0108 глупые вопросы
Как подробнее объяснить Первый вопрос-не знаю! Ошибка в скетче.
Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ»
Сама строка здесь не причем - ошибка в скетче!
Изначально пишется с 75 линии (не принципиально можно с любой) с лево на право!
Нужно: День недели написать от 128 линии СПРАВО на ЛЕВО!
Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ»
Сама строка здесь не причем - ошибка в скетче!
Изначально пишется с 75 линии (не принципиально можно с любой) с лево на право!
Нужно: День недели написать от 128 линии СПРАВО на ЛЕВО!
- Вложения
-
- IMG_3080.jpeg
- (86.46 КБ) 114 скачиваний
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
Ну, я тоже с трудом представляю, как понять вот это предложение (разбил его на 2 части) :rezak писал(а):Как подробнее объяснить Первый вопрос-не знаю!
rezak писал(а):Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ"
Теперь Вы пишете совсем другое :rezak писал(а):но уже на следующей неделе будет "ЯНВАРЯ"
Вопрос - так на следующей неделе будет "ЯНВАРЯ", или постоянно ?rezak писал(а):Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ»
Это нужно смотреть, умеет ли библиотека зеркалить текст.rezak писал(а):Нужно: День недели написать от 128 линии СПРАВО на ЛЕВО!
Re: Часы на 12864_ks0108 глупые вопросы
[uquote="Аlex",url="/forum/viewtopic.php?p=4748477#p4748477"]
ПОСТОЯННО!!! Постоянней некуда! Первый день недели будет «ЯНВАРЯ» утащу «воскресенье» в конец строки значит «понедельник» будет «января»
Вопрос - так на следующей неделе будет "ЯНВАРЯ", или постоянно ?rezak писал(а):rezak писал(а):Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ»
ПОСТОЯННО!!! Постоянней некуда! Первый день недели будет «ЯНВАРЯ» утащу «воскресенье» в конец строки значит «понедельник» будет «января»
- Вложения
-
- IMG_3081.jpeg
- (93.96 КБ) 121 скачивание
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
DS3231 Day = [1–7], а массив: [0..6]
Попробуйте:
Насколько понимаю, хотите, чтобы день недели был "зеркальным"? Назовите объективную причину?
Насколько зеркальным должен быть? С перевернутыми или переставленными буквами?
(+ транслейт БГ->РУ)
Попробуйте:
Код: Выделить всё
u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]);Насколько зеркальным должен быть? С перевернутыми или переставленными буквами?
(+ транслейт БГ->РУ)
Re: Часы на 12864_ks0108 глупые вопросы
[uquote="veso74",url="/forum/viewtopic.php?p=4748484#p4748484"]DS3231 Day = [1–7], а массив: [0..6]
Попробуйте:
Насколько понимаю, хотите, чтобы день недели был "зеркальным"? Назовите объективную причину?
Насколько зеркальным должен быть? С перевернутыми или переставленными буквами?
(+ транслейт БГ->РУ)[/uquote]
Я не программист: u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); Вот это Я пробовал,
но без DS3231 Day = [1–7]; [0..6] это куда вставить?
В скетче который в 1-ом посте показать можете?
Я хотел отцентровать верхнюю строку справа иначе получается так: 75 линия( я увеличил было 63 линия "Сентября" самый длинный по буквам месяц+ воскресенье или понедельник) верхняя надпись сливалась полностью в одну строку. с 75-ой не отображает 2 последние буквы воскресенье и понедельник ,но хотя бы не сливается.
Попробуйте:
Код: Выделить всё
u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]);Насколько зеркальным должен быть? С перевернутыми или переставленными буквами?
(+ транслейт БГ->РУ)[/uquote]
Я не программист: u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); Вот это Я пробовал,
но без DS3231 Day = [1–7]; [0..6] это куда вставить?
В скетче который в 1-ом посте показать можете?
Я хотел отцентровать верхнюю строку справа иначе получается так: 75 линия( я увеличил было 63 линия "Сентября" самый длинный по буквам месяц+ воскресенье или понедельник) верхняя надпись сливалась полностью в одну строку. с 75-ой не отображает 2 последние буквы воскресенье и понедельник ,но хотя бы не сливается.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
Вам бы ещё научиться правильно свои мысли выражать.rezak писал(а):Я не программист
Ну вот что тут написано :
?rezak писал(а):Я хотел отцентровать верхнюю строку справа иначе получается так: 75 линия( я увеличил было 63 линия "Сентября" самый длинный по буквам месяц+ воскресенье или понедельник) верхняя надпись сливалась полностью в одну строку. с 75-ой не отображает 2 последние буквы воскресенье и понедельник ,но хотя бы не сливается.
Это же никаким расшифровщиком не расшифровать.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
Надпись "скручиваем" как на старинных часах, где дисплей был маленьким. Вариантов много. Пример:
Подумайте о других вариантах, поэкспериментируйте. В этом и заключается хобби.
Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время.
Код: Выделить всё
char * den[7]{"ВОС","ПОН","ВТ","СР","ЧЕТ","ПЯТ","СУБ"};Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время.
Re: Часы на 12864_ks0108 глупые вопросы
[uquote="veso74",url="/forum/viewtopic.php?p=4748589#p4748589"]Надпись "скручиваем" как на старинных часах, где дисплей был маленьким. Вариантов много. Пример:
Подумайте о других вариантах, поэкспериментируйте. В этом и заключается хобби.
Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время.[/uquote]
Дело не в этом, а в том что отображение не правильно. Вы выше писали как сделать покажите пожалуйста в скетче как это прописать.
Добавлено after 8 minutes 45 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4748484#p4748484"]DS3231 Day = [1–7], а массив: [0..6]
Попробуйте:[/uquote]
Я вот это имею ввиду
Добавлено after 25 minutes 1 second:
В скетче прописана координата для всех дней недели(в данном случае 75.И получается вот так:
ВОСКРЕСЕНЬЕ
ПОНЕДЕЛЬНИК
ВТОРНИК
СРЕДА
ЧЕТВЕРГ
ПЯТНИЦА
СУББОТА
а хотелось вот так:
ВОСКРЕСЕНЬЕ
ПОНЕДЕЛЬНИК
-----ВТОРНИК
--------СРЕДА
------ЧЕТВЕРГ
-----ПЯТНИЦА
-----СУББОТА
u8g.drawStr(75, 10, den[DateTime.dayOfWeek])
Эта строка задает координату с 75-128 линии отображения дня недели, можно ее изменить для каждого дня недели отдельно.
Спасибо!
Код: Выделить всё
char * den[7]{"ВОС","ПОН","ВТ","СР","ЧЕТ","ПЯТ","СУБ"};Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время.[/uquote]
Дело не в этом, а в том что отображение не правильно. Вы выше писали как сделать покажите пожалуйста в скетче как это прописать.
Добавлено after 8 minutes 45 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4748484#p4748484"]DS3231 Day = [1–7], а массив: [0..6]
Попробуйте:
Код: Выделить всё
u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]);Я вот это имею ввиду
Добавлено after 25 minutes 1 second:
В скетче прописана координата для всех дней недели(в данном случае 75.И получается вот так:
ВОСКРЕСЕНЬЕ
ПОНЕДЕЛЬНИК
ВТОРНИК
СРЕДА
ЧЕТВЕРГ
ПЯТНИЦА
СУББОТА
а хотелось вот так:
ВОСКРЕСЕНЬЕ
ПОНЕДЕЛЬНИК
-----ВТОРНИК
--------СРЕДА
------ЧЕТВЕРГ
-----ПЯТНИЦА
-----СУББОТА
u8g.drawStr(75, 10, den[DateTime.dayOfWeek])
Эта строка задает координату с 75-128 линии отображения дня недели, можно ее изменить для каждого дня недели отдельно.
Спасибо!
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
x12 символов, замените '-' на 'пробел'
Код: Выделить всё
char * den[7]{"-ВОСКРЕСЕНЬЕ","-ПОНЕДЕЛЬНИК","-----ВТОРНИК","--------СРЕДА","------ЧЕТВЕРГ","-----ПЯТНИЦА","-----СУББОТА"};Re: Часы на 12864_ks0108 глупые вопросы
veso74 Спасибо, все оказалось очень просто.
Тем не менее "ЯНВАРЬ" никуда не делся.
Тем не менее "ЯНВАРЬ" никуда не делся.
- Вложения
-
- IMG_3083.jpg
- (229.63 КБ) 110 скачиваний
-
- IMG_3082.jpg
- (255.14 КБ) 120 скачиваний
-
Novice user
- Мудрый кот
- Сообщения: 1704
- Зарегистрирован: Вт янв 05, 2016 10:14:25
- Откуда: поселок Мелеуз
Re: Часы на 12864_ks0108 глупые вопросы
Тебе же написали-напиши u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); ,что не понятного?
DS3231 выдает день недели в формате 1,2,3,4,5,6,7-тебе об этом писали
DS3231 выдает день недели в формате 1,2,3,4,5,6,7-тебе об этом писали
,а массив начинается с 0,то есть 0,1,2,3,4,5,6,тебе и об этом писалиDS3231 Day = [1–7]
массив: [0..6]
Re: Часы на 12864_ks0108 глупые вопросы
[uquote="Novice user",url="/forum/viewtopic.php?p=4748687#p4748687"]Тебе же написали-напиши u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); ,что не понятного?
[/quote][/uquote]
Я писал выше что делал так. При листании да, все дни недели правильные. Но при синхронизации модуля NTP DS3231 отображать будет на 1 день меньше. На фото сегодняшняя синхронизация: день "ПЯТНИЦА".
Прописал строку: u8g.print(DateTime.dayOfWeek+1); не помогло.
[/quote][/uquote]
Я писал выше что делал так. При листании да, все дни недели правильные. Но при синхронизации модуля NTP DS3231 отображать будет на 1 день меньше. На фото сегодняшняя синхронизация: день "ПЯТНИЦА".
Прописал строку: u8g.print(DateTime.dayOfWeek+1); не помогло.
- Вложения
-
- 2025-09-27_093411.jpg
- (74.85 КБ) 99 скачиваний
-
- IMG_3085.jpg
- (223.51 КБ) 105 скачиваний
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
хотя в документации DS3231 нет так, в пример RTClib. Попробуйте:
и
Код: Выделить всё
char * mes[]{"x", "ЯНВАРЯ","ФЕВРАЛЯ","МАРТА","АПРЕЛЯ","МАЯ","ИЮНЯ","ИЮЛЯ","АВГУСТА","СЕНТЯБРЯ","ОКТЯБРЯ","НОЯБРЯ","ДЕКАБРЯ"};
char * den[7]{"-ВОСКРЕСЕНЬЕ","-ПОНЕДЕЛЬНИК","-----ВТОРНИК","--------СРЕДА","------ЧЕТВЕРГ","-----ПЯТНИЦА","-----СУББОТА"}Код: Выделить всё
u8g.drawStr(26, 10, mes[DateTime.month]);
u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
Последний раз редактировалось veso74 Сб сен 27, 2025 11:09:07, всего редактировалось 3 раза.
Re: Часы на 12864_ks0108 глупые вопросы
В скетче используется не стандартная библиотека ds3231.h С ней не компилируется выдает ошибки.
Вот эта: jarzebski DS3231 master
Ниже скетч и библиотека 3231, все остальное стандартное из пакета Ардуино.
Вот эта: jarzebski DS3231 master
Ниже скетч и библиотека 3231, все остальное стандартное из пакета Ардуино.
- Вложения
-
- часы.txt
- (2.51 КБ) 88 скачиваний
-
- PG12864K_KS0108_clock.7z
- (1.13 КБ) 88 скачиваний
-
- Arduino-DS3231-dev.zip
- (16.65 КБ) 84 скачивания
Последний раз редактировалось rezak Сб сен 27, 2025 10:17:00, всего редактировалось 4 раза.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
Как правило для вопроса: поделитесь всем кодом, включая используемые библиотеки и модификации.
В противном случае не узнаем, кто что заменил.
В противном случае не узнаем, кто что заменил.
Re: Часы на 12864_ks0108 глупые вопросы
veso74 Как Вы предложили выше не компилируется.
char * mes[12]{"x", "ЯНВАРЯ","ФЕВРАЛЯ","МАРТА","АПРЕЛЯ","МАЯ","ИЮНЯ","ИЮЛЯ","АВГУСТА","СЕНТЯБРЯ","ОКТЯБРЯ","НОЯБРЯ","ДЕКАБРЯ"};
Ошибка в этой строке: "x",
char * mes[12]{"x", "ЯНВАРЯ","ФЕВРАЛЯ","МАРТА","АПРЕЛЯ","МАЯ","ИЮНЯ","ИЮЛЯ","АВГУСТА","СЕНТЯБРЯ","ОКТЯБРЯ","НОЯБРЯ","ДЕКАБРЯ"};
Ошибка в этой строке: "x",
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Часы на 12864_ks0108 глупые вопросы
char * mes[] ...
в примерах DS3231: customWire_DS3231onSAMD21:
в примерах DS3231: customWire_DS3231onSAMD21:
Спойлер
Код: Выделить всё
String daysNames[] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
String monthsNames[] = {
"-",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};Код: Выделить всё
Serial.print(daysNames[dt.dayOfTheWeek()]);
Serial.print(" ");
Serial.print(monthsNames[dt.month()]);
Serial.print(" ");Re: Часы на 12864_ks0108 глупые вопросы
veso74 char * mes[] ...
Вот так
Добавлено after 2 minutes 11 seconds:
Serial.print(daysNames[dt.dayOfTheWeek()]);
Serial.print(" ");
Serial.print(monthsNames[dt.month()]);
Serial.print(" ");
12864_KS0108_clock:19: error: 'daysNames' was not declared in this scope
Вот так
Добавлено after 2 minutes 11 seconds:
Serial.print(daysNames[dt.dayOfTheWeek()]);
Serial.print(" ");
Serial.print(monthsNames[dt.month()]);
Serial.print(" ");
12864_KS0108_clock:19: error: 'daysNames' was not declared in this scope
- Вложения
-
- IMG_3087.jpg
- (209.35 КБ) 110 скачиваний