| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Часы на 12864_ks0108 глупые вопросы https://radiokot.ru/forum/viewtopic.php?f=66&t=199188 |
Страница 1 из 2 |
| Автор: | rezak [ Чт сен 25, 2025 14:45:00 ] | |||
| Заголовок сообщения: | Часы на 12864_ks0108 глупые вопросы | |||
Добрый день уважаемые коты! Нашел скетч Ардуино часов на 12864, время ds3231 устанавливается скетчем SetTime. Проблема в том: 1. Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" но уже на следующей неделе будет "ЯНВАРЯ" ,если в другой день то следующее "воскресенье" будет "января" char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"}; Если в этой строке изменить положение дней недели то первый день всегда будет "января" 2. Как изменить значение в строке u8g.drawStr(75, 10, den[DateTime.dayOfWeek]); Чтоб день недели отображался не с 75 строки а с -128, т.е. с правого верхнего угла в другую сторону. Спасибо!
|
||||
| Автор: | Аlex [ Чт сен 25, 2025 16:15:56 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
rezak писал(а): 1. Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" но уже на следующей неделе будет "ЯНВАРЯ" ,если в другой день то следующее "воскресенье" будет "января" Мне почему-то кажется, что Вы сами не поняли, что тут написали char * den[7]{"ВОСКРЕСЕНЬЕ","ПОНЕДЕЛЬНИК","ВТОРНИК","СРЕДА","ЧЕТВЕРГ","ПЯТНИЦА","СУББОТА"}; Если в этой строке изменить положение дней недели то первый день всегда будет "января" rezak писал(а): 2. Как изменить значение в строке Что за 75-ая строка ? И что за строка "-128" ? Что за дисплей у Вас там ? Ещё и в другую сторону u8g.drawStr(75, 10, den[DateTime.dayOfWeek]); Чтоб день недели отображался не с 75 строки а с -128, т.е. с правого верхнего угла в другую сторону. PS: Можно более подробнее и понятнее вопросы задать ? |
|
| Автор: | rezak [ Чт сен 25, 2025 16:31:38 ] | ||
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы | ||
Как подробнее объяснить Первый вопрос-не знаю! Ошибка в скетче. Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ» Сама строка здесь не причем - ошибка в скетче! Изначально пишется с 75 линии (не принципиально можно с любой) с лево на право! Нужно: День недели написать от 128 линии СПРАВО на ЛЕВО!
|
|||
| Автор: | Аlex [ Чт сен 25, 2025 17:09:44 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
rezak писал(а): Как подробнее объяснить Первый вопрос-не знаю! Ну, я тоже с трудом представляю, как понять вот это предложение (разбил его на 2 части) : rezak писал(а): Если часы установить в воскресенье ,то именно в этот день будет индикация будет "ВОСКРЕСЕНЬЕ" rezak писал(а): но уже на следующей неделе будет "ЯНВАРЯ" Теперь Вы пишете совсем другое : rezak писал(а): Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ» Вопрос - так на следующей неделе будет "ЯНВАРЯ", или постоянно ? rezak писал(а): Нужно: День недели написать от 128 линии СПРАВО на ЛЕВО! Это нужно смотреть, умеет ли библиотека зеркалить текст.
|
|
| Автор: | rezak [ Чт сен 25, 2025 17:25:01 ] | ||
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы | ||
[uquote="Аlex",url="/forum/viewtopic.php?p=4748477#p4748477"] rezak писал(а): rezak писал(а): Вместо первого дня недели в строке которую Я написал всегда будет «ЯНВАРЯ» Вопрос - так на следующей неделе будет "ЯНВАРЯ", или постоянно ? ПОСТОЯННО!!! Постоянней некуда! Первый день недели будет «ЯНВАРЯ» утащу «воскресенье» в конец строки значит «понедельник» будет «января»
|
|||
| Автор: | veso74 [ Чт сен 25, 2025 17:59:20 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
DS3231 Day = [1–7], а массив: [0..6] Попробуйте: Код: u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); Насколько понимаю, хотите, чтобы день недели был "зеркальным"? Назовите объективную причину? Насколько зеркальным должен быть? С перевернутыми или переставленными буквами? (+ транслейт БГ->РУ) |
|
| Автор: | rezak [ Чт сен 25, 2025 20:16:14 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
DS3231 Day = [1–7], а массив: [0..6] Попробуйте: Код: u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); Насколько понимаю, хотите, чтобы день недели был "зеркальным"? Назовите объективную причину? Насколько зеркальным должен быть? С перевернутыми или переставленными буквами? (+ транслейт БГ->РУ) Я не программист: u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); Вот это Я пробовал, но без DS3231 Day = [1–7]; [0..6] это куда вставить? В скетче который в 1-ом посте показать можете? Я хотел отцентровать верхнюю строку справа иначе получается так: 75 линия( я увеличил было 63 линия "Сентября" самый длинный по буквам месяц+ воскресенье или понедельник) верхняя надпись сливалась полностью в одну строку. с 75-ой не отображает 2 последние буквы воскресенье и понедельник ,но хотя бы не сливается. |
|
| Автор: | Аlex [ Пт сен 26, 2025 09:02:21 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
rezak писал(а): Я не программист Вам бы ещё научиться правильно свои мысли выражать.Ну вот что тут написано : rezak писал(а): Я хотел отцентровать верхнюю строку справа иначе получается так: 75 линия( я увеличил было 63 линия "Сентября" самый длинный по буквам месяц+ воскресенье или понедельник) верхняя надпись сливалась полностью в одну строку. с 75-ой не отображает 2 последние буквы воскресенье и понедельник ,но хотя бы не сливается. ?Это же никаким расшифровщиком не расшифровать. |
|
| Автор: | veso74 [ Пт сен 26, 2025 09:30:47 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
Надпись "скручиваем" как на старинных часах, где дисплей был маленьким. Вариантов много. Пример: Код: char * den[7]{"ВОС","ПОН","ВТ","СР","ЧЕТ","ПЯТ","СУБ"}; Подумайте о других вариантах, поэкспериментируйте. В этом и заключается хобби. Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время. |
|
| Автор: | rezak [ Пт сен 26, 2025 10:26:50 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
Надпись "скручиваем" как на старинных часах, где дисплей был маленьким. Вариантов много. Пример: Код: char * den[7]{"ВОС","ПОН","ВТ","СР","ЧЕТ","ПЯТ","СУБ"}; Подумайте о других вариантах, поэкспериментируйте. В этом и заключается хобби. Уверен, что в комнате, где находитесь, есть как минимум 10 устройств, по которым можете узнать время. Дело не в этом, а в том что отображение не правильно. Вы выше писали как сделать покажите пожалуйста в скетче как это прописать. Добавлено after 8 minutes 45 seconds: 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 [ Пт сен 26, 2025 11:01:57 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
x12 символов, замените '-' на 'пробел' Код: char * den[7]{"-ВОСКРЕСЕНЬЕ","-ПОНЕДЕЛЬНИК","-----ВТОРНИК","--------СРЕДА","------ЧЕТВЕРГ","-----ПЯТНИЦА","-----СУББОТА"};
|
|
| Автор: | rezak [ Пт сен 26, 2025 12:05:45 ] | |||
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы | |||
veso74 Спасибо, все оказалось очень просто. Тем не менее "ЯНВАРЬ" никуда не делся.
|
||||
| Автор: | Novice user [ Пт сен 26, 2025 15:56:45 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
Тебе же написали-напиши u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); ,что не понятного? DS3231 выдает день недели в формате 1,2,3,4,5,6,7-тебе об этом писали Цитата: DS3231 Day = [1–7] ,а массив начинается с 0,то есть 0,1,2,3,4,5,6,тебе и об этом писали Цитата: массив: [0..6]
|
|
| Автор: | rezak [ Сб сен 27, 2025 09:35:20 ] | |||
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы | |||
Тебе же написали-напиши u8g.drawStr(75, 10, den[DateTime.dayOfWeek-1]); ,что не понятного? [/quote] Я писал выше что делал так. При листании да, все дни недели правильные. Но при синхронизации модуля NTP DS3231 отображать будет на 1 день меньше. На фото сегодняшняя синхронизация: день "ПЯТНИЦА". Прописал строку: u8g.print(DateTime.dayOfWeek+1); не помогло.
|
||||
| Автор: | veso74 [ Сб сен 27, 2025 09:54:04 ] |
| Заголовок сообщения: | 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]); |
|
| Автор: | rezak [ Сб сен 27, 2025 09:55:24 ] | ||||
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы | ||||
В скетче используется не стандартная библиотека ds3231.h С ней не компилируется выдает ошибки. Вот эта: jarzebski DS3231 master Ниже скетч и библиотека 3231, все остальное стандартное из пакета Ардуино.
|
|||||
| Автор: | veso74 [ Сб сен 27, 2025 10:00:52 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
Как правило для вопроса: поделитесь всем кодом, включая используемые библиотеки и модификации. В противном случае не узнаем, кто что заменил. |
|
| Автор: | rezak [ Сб сен 27, 2025 10:58:06 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
veso74 Как Вы предложили выше не компилируется. char * mes[12]{"x", "ЯНВАРЯ","ФЕВРАЛЯ","МАРТА","АПРЕЛЯ","МАЯ","ИЮНЯ","ИЮЛЯ","АВГУСТА","СЕНТЯБРЯ","ОКТЯБРЯ","НОЯБРЯ","ДЕКАБРЯ"}; Ошибка в этой строке: "x", |
|
| Автор: | veso74 [ Сб сен 27, 2025 11:08:39 ] |
| Заголовок сообщения: | Re: Часы на 12864_ks0108 глупые вопросы |
char * mes[] ... в примерах 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(" "); |
|
| Автор: | rezak [ Сб сен 27, 2025 11:33:05 ] | ||
| Заголовок сообщения: | 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
|
|||
| Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


