Еще одни часы на матрицах

yucan
Offline
Зарегистрирован: 20.04.2015

Уровни шины тоже желательно согласовать.

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Желательно,но работает и так. Хотя по Камасутре надо

vk007
Offline
Зарегистрирован: 16.06.2015

Если использовать не голый чип, а китайский модуль, то там на плате уже стоит стабилизатор на 3,3В - XC6206P332MR (662K).

andrva
Offline
Зарегистрирован: 26.10.2018

Крякозябры вместо кирилицы на матрицах. На ENG все нормально. Preproc.substitute_unicode=false выполнил. Во внешнем редакторе (Notepad++) сохранил в 1251, загрузил в ардуинку. Получается правильно с кирилицей на матрицах через раз. Не могу понять закономерности правильного форматирования кода. Кто-нибудь (или vk007) разъясните порядок правильной последовательности конвертации кода для корректного отображения кирилицы.

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

По этому поводу пишутся научные труды и защищаются докторские диссертации. (Шутка)
У коллеги вин10. Переправили в преференсах - у него шьет отлично. У меня вин7-Уже и с бубном и святой водой, и переставлял, и нашел еще в папке ардуино преференсы. Переправил - ни фига. взял в папку ардуино попытался встроить надстройку, которая определяет, в какой кодировке зашивать- не запустилось.
У соседа тоже вин 10. танцы с бубном никчему не привели. Тоже кракозября.
Вот така фигня.

 

vk007
Offline
Зарегистрирован: 16.06.2015

andrva пишет:

Крякозябры вместо кирилицы на матрицах. На ENG все нормально. Preproc.substitute_unicode=false выполнил. Во внешнем редакторе (Notepad++) сохранил в 1251, загрузил в ардуинку. Получается правильно с кирилицей на матрицах через раз. Не могу понять закономерности правильного форматирования кода. Кто-нибудь (или vk007) разъясните порядок правильной последовательности конвертации кода для корректного отображения кирилицы.

Да какбы не существует никакой "правильной последовательности" и конвертировать ничего не надо. Код как есть в юникоде загружаю в Arduino IDE. За все время таких проблем не было, а в процессе написания и отладки ардуина прошивалась не один десяток раз.

Главное, версии для компиляции не использовать свежие. Я копилировал на 1.6.5.

Еще, возможно, не тот или не так preferences.txt правите. Почитайте сообщение #31.

В крайнем случае, можно поступить радикально, хотя очень хлопотно, - весь кириллический текст переписать не буквами, а кодами. Например, не "воскресенье", а "\xE2\xEE\xF1\xEA\xF0\xE5\xF1\xE5\xED\xFC\xE5". Тогда точно "через раз" не будет :)

P.S. Я смотрю, судя по вопросам, люди потихоньку эти часики делают, кто себе, кто друзьям. А фотки где? Почему фоток не выкладывате?

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Главная проблема электроника не как сделать,а как в корпус засунуть.без корпуса не смотрится.а так и показывать нечего

vk007
Offline
Зарегистрирован: 16.06.2015

Ну не у всех же голые платы. Может, хоть кто-то умудрился таки довести до ума.

AleksandrM
Offline
Зарегистрирован: 20.07.2017

Может кто сталкивался? Купил ВМР280. Не хочет работать - температуру показывает 0.00, давление 234Ра.

В библиотеке указан адрес )х77

а сканер шины 0х76.

При изменении адреса ничего не происходит.Библиотека -Adafruit_BMP085.

Что это может быть?

 

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Читай выше.
1. Библиотеку неправильно указал.нужно adafruit bmp280
2. В строке инициализации БМП укажи адрес 0х76. Как в коде с прошлой страницы.

misir
Offline
Зарегистрирован: 14.05.2018

yucan
Offline
Зарегистрирован: 20.04.2015

Пару штук таких сделал. Одни дома, другие на работе. Проблем со шрифтом не было. Компилировал в 1.6.5

AleksandrM
Offline
Зарегистрирован: 20.07.2017

Спасибо. Все заработал датчик.

Lis06
Offline
Зарегистрирован: 24.10.2018

Добрый всем, а с матрицами ни кто не разобрался, как шрифт перевернуть на 90 град? Чтоб планку китайскую не пилить, чёт так не охота колхозить, а часики класс)))

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

На первой странице написано,что нужно переписывать код полностью,плюс объем скетча будет больше,а скорость прорисовки ниже.лично я распилил на отдельные сегменты,залудил и пропал.уоммутация со стороны микросхем.

Lis06
Offline
Зарегистрирован: 24.10.2018

Да вот тоже уже решился, пилю

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Все линии параллельны,кроме Din,он последовательно. После пайки у тебя везде земля.ее можно не тянуть.
Удачи

Lis06
Offline
Зарегистрирован: 24.10.2018

Спасибо

Lis06
Offline
Зарегистрирован: 24.10.2018

Ещё вопрос, а с монитором порта кто разобрался? Подключаю к компу, в настройках часов выбираю комп, открываю порт, а там одни квадратики.... Так понимаю это команды. По командам так как описано на 1 странице набираю, ничего не происходит. Все команды перепробовал, результата ноль, даже время не сменил. Что может быть?

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Выставь скорость порта 57600,а вот перевод каретки или нет не помню.но,по моему,от квадратиков ты скоростью порта избавиться

Lis06
Offline
Зарегистрирован: 24.10.2018

Да действительно, кваказябры исчезли, и команды выполняются. Спасибо на добром слове)

vpashko
Offline
Зарегистрирован: 21.02.2019

Здравствуйте друзья, помогите пожалуйста. Не получается так сказать запустить часы. Прошивал разными ардуиноми но эфекта никакого. Постоянно бежит бегущая строка, кнопки не реагируют, нет выхода в меню, ПОМОГИТЕ!!!!

vk007
Offline
Зарегистрирован: 16.06.2015

Мне кажется, что у вас похожая проблема, как в сообщении #37 - кнопки не подтянуты к плюсу.

vpashko
Offline
Зарегистрирован: 21.02.2019

Здравствуйте,  и кнопки к плюсу подтянуты, и ардуино нано-уно-уно-нано менял все равно бежит строка, на кнопки не реагирует. Скетч несколько раз скачивал разными  браузерами ну ни как. Еще вариант попоробывать Ваш (кто нибудь) скиньте скетч может заработает.

vpashko@rambler.ru

vk007
Offline
Зарегистрирован: 16.06.2015

Как они у вас подтянуты к плюсу? Резисторами или через input_pullup? Если через input_pullup, то попробуйте через резисторы, как показала практика, input_pullup бывает недостаточно.

В программе при отображении веремени постоянно идет проверка на нажатие кнопок. Если нажата "ОК", то переходит в меню, если "ВВЕРХ" или "ВНИЗ", то переходит к выводу прочей информации.

Если подтяжки кнопок нет или она плохая, то пин ловит наводки. Эти наводки заставляют программу считать, что нажата кнопка. Вот поэтому она и ведет себя так - вывело время и сразу перешло на дату и прочее. Другой причины я не вижу.

AleksandrM
Offline
Зарегистрирован: 20.07.2017

vpashko А прибором проверить состояние

на ногах ардуины не проще?

vpashko
Offline
Зарегистрирован: 21.02.2019

Здравствуйте, часики заработали, подкоректировал некоторые цифры и буквы. Подскажите еще, не могу допереть над этим предложением: ....... сейчас при отображении времени слежение за освещением идет постоянно. Это конечно хорошо, но если наблюдаются глюки, то лучше этим пожертвовать и перенести SetBrightness() из цикла while((millis() - time_previous_millis... в самое начало loop'а. Тогда установка яркости будет происходить один раз перед выводом времени. В этот момент экран пустой и влиять на фоторезистор он не будет.

        В скетче не получается перенести код, подскажите что да как?. Я думаю что это где-то здесь??

//===============================================================================

void loop()
{
  unsigned long current_millis = millis();
  DisplayTime(5, 0);
  boolean flag_blink = 1;
  if(!beeper) beeper = AlarmNotActive();
  unsigned long time_previous_millis = millis();
  while((millis() - time_previous_millis < TIME_SHOW_MSEC && digitalRead(UP_PIN) && digitalRead(DOWN_PIN)) || (beeper && !AlarmNotActive()))
  {
vk007
Offline
Зарегистрирован: 16.06.2015

vpashko пишет:
еще, не могу допереть над этим предложением: .......

У вас что, тоже фоторезистор направлен в сторону матриц и яркость от этого мерцает? Или вы решили, раз уж делать, то сразу все "доработки"?

vpashko пишет:
В скетче не получается перенести код, подскажите что да как?. Я думаю что это где-то здесь??

Именно. Только не "где-то здесь", а сразу после него вызывается функция SetBrightness(). Удалите ее оттуда и пропишите ее же в начале лупа.

b707
Offline
Зарегистрирован: 26.05.2017

vk007 - а код все тот же, что на первой странице? - нашел там выход за границы массива, странно что за столько времени никто не заметил, строка 459

for(byte row = 0; row < 32; row++)
    screen_buffer[row] = screen_buffer[row + 1];

 

vk007
Offline
Зарегистрирован: 16.06.2015

b707 пишет:
vk007 - а код все тот же, что на первой странице?

А кто ж его менял. Годами работает, да и ладно :) Уверен, что там еще далеко не одна ошибка имеется. Небольшой интерес было проснулся на момент публикации (кое-где чуть подправил и доделал), да и снова угас. Даже было желание в корне переделать многие вещи, в т.ч. и скроллинг.

Ошибка не проявляла себя никак из-за того, что, в любом случае, что бы не было скопировано в screen_buffer[31], оно сразу после этого цикла перетирается или нулем, или данными из sprite_buffer[0].

 

b707
Offline
Зарегистрирован: 26.05.2017

vk007 - поправил код для работы на линейке из матриц. Если правильно нашел, всего в коде надо поменять 5 строчек. Часы и температура показываются, остальное не проверял.

если вы не против, возьму фонты и часть кода в свой проект

vk007
Offline
Зарегистрирован: 16.06.2015

b707 пишет:
vk007 - поправил код для работы на линейке из матриц. Если правильно нашел, всего в коде надо поменять 5 строчек.

Меняли setRow на setColumn или как-то иначе переделали?

b707 пишет:
если вы не против, возьму фонты и часть кода в свой проект

Без проблем.

b707
Offline
Зарегистрирован: 26.05.2017

vk007 пишет:

Меняли setRow на setColumn или как-то иначе переделали?

да - поменял setRow на setColumn и перевернул порядок вывода колонок (отзеркалил, как вы писали на прошлой странице :)

Если бы процедуры вывода курсора и уровня батарейки были написаны в том же стиле, как все остальное - через буфер - для смены типа матриц было бы достаточно поменять одну-единственную строчку в процедуре Show

А с учетом этих добавок получилось 5 строчек.

Код не стал выкладывать, потому что не могу проверить - я целиком проект не собирал, мне нужен только вывод времени на матрицы. Но если кто готов проверить - могу выложить.

vk007
Offline
Зарегистрирован: 16.06.2015

У меня нет такой линейки матриц, поэтому не с чем было экспериментровать. Когда меня начали спрашивать за переделку, то я пробовал менять setRow на setColumn, но меня не устроила скорость работы setColumn. Я кажется уже писал, что, в отличие от setRow, которая зажигает весь ряд фактически одной командой, setColumn делает это по одному светодиоду, т.е. 8 раз вызывается setLed. Из-за этого страдает скорость скроллинга, и это сильно заметно. Поэтому оставил эту затею.

Но если вам надо только вывод времени, без скроллируемого текста, то такой подход вполне уместен.

YRA
Offline
Зарегистрирован: 10.01.2015

vk007 спасибо за проект. Работают почти год.

YRA
Offline
Зарегистрирован: 10.01.2015

b707, а не могли бы Вы выложить код под линейку матриц, вроде собрал всю элементную базу.

 

vikonix
Offline
Зарегистрирован: 19.05.2019

Приветствую всех. Сделал свою версию часов: http://arduino.ru/forum/proekty/o-clock-prostye-chasy-na-matritse-8kh32
Если вдруг кого-то заинтересует. Несколько идей позаимствовал из этих часов. Функционал проще, так как делал часы-будильник. 

Lis06
Offline
Зарегистрирован: 24.10.2018

Ребята караул!!! Заливаю я значит сегодня скетч что с первой страницы, залил, думаю дай ка уберу темп. на улице, так как датчик не ставил, и отображения батареи, загрузил. И все, показывает тупо время, без анимации, простыми в один диодик цифрами, весь день мучаюсь, и другую ардуину взял, и через usbasp, ни как, как будто программы совсем нет, а просто выводит время с часов и все, что делать, помогите(

Xer0x_king
Offline
Зарегистрирован: 22.06.2017

Проверьадреса и целостность линий до датчиков. Там смысл в том, что если скетч не видит датчик, то он автоматом его не показывает.

Lis06
Offline
Зарегистрирован: 24.10.2018

Так если бы датчики не видел, то вопросики бы показывал, а у меня вот что, ни с того, ни с сего, работало и перестало( и время не

обновляется, пока сам не обновишь

vk007
Offline
Зарегистрирован: 16.06.2015

Lis06 пишет:
Так если бы датчики не видел, то вопросики бы показывал, а у меня вот что, ни с того, ни с сего, работало и перестало( и время не обновляется, пока сам не обновишь

Проверьте кнопки и резисторы подтяжки. Судя по картинке, а конкретно по шрифту, и фразе "время не обновляется" - очень похоже на то, что "запала" кнопка "меню" и часы находятся в режиме установки времени. Только там так, как на фото, показываются часы и минуты узким шрифтом, ну и время само не обновляется.

Если, конечно, вы в оригинальном скетче ничего самостоятельно не намутили.

Lis06
Offline
Зарегистрирован: 24.10.2018

Вообще ни чего не менял, кнопки вообще не подключал после этого, брал разные ардуины и микро и Уно, все одно, помню без кнопок просто бегает по всей меню, а тут вообще хз, чё происходит

vk007
Offline
Зарегистрирован: 16.06.2015

Lis06 пишет:
Вообще ни чего не менял, кнопки вообще не подключал

Даже если кнопки еще не подключали, то резисторы подтяжки ставить обязательно надо, в скетче подтяжка не включена, да и, как уже писали, программной бывает недостаточно.

Как я уже писал, такая картинка, как на вашем фото, только в режиме настройки времени. В такой режим часы могут самостоятельно перейти сразу при включении, если в RTC сбилось время, например, вынималась батарейка. Правда, тогда нули высвечивает и курсор мигает.

Lis06 пишет:
Так если бы датчики не видел, то вопросики бы показывал

Lis06 пишет:
думаю дай ка уберу темп. на улице, так как датчик не ставил

При отсутствии датчика вопросы отображаются только для уличной температуры, все остальное при отсутствии датчиков не отображается совсем.

Чтобы убрать и эти вопросы, найдите в скетче блок, начинающийся с комментария "// +++++ Уличная температура +++++". В конце него будет "else", в котором и выводятся эти "???" - удалите/закомментируйте эти семь строк (начиная с else) и при отсутствии уличного датчика вопросы тоже не будут отображаться.

vk007
Offline
Зарегистрирован: 16.06.2015

vk007 пишет:
В такой режим часы могут самостоятельно перейти сразу при включении, если в RTC сбилось время, например, вынималась батарейка. Правда, тогда нули высвечивает и курсор мигает.

Впрочем, если батарейка разряжена и ее уже не хватает для работы осциллятора, то может и время какое-то отображаться. Поменяйте батарейку - 99,9%, что причина такого поведения в этом.

 

Lis06
Offline
Зарегистрирован: 24.10.2018

Хорошо, всё проверю отпишусь

Lis06
Offline
Зарегистрирован: 24.10.2018

Спасибо, на добром слове, да это батарейка) ура!!

vk007
Offline
Зарегистрирован: 16.06.2015

Lis06 пишет:
да это батарейка

А часы не предупреждали, что батарейка разряжена?

Я все не могу дождаться, пока разрядится батарейка в естественных условиях так сказать, чтобы проверить правильно ли я указал порог напряжения для вывода предупреждения о разряде батарейки, и сколько часы еще могут нормально проработать от полудохлой.

Lis06
Offline
Зарегистрирован: 24.10.2018

Да, предупреждали, игнорил и вообще отключил отображения, а оказывается вот как, надо снова включить)

Дим
Offline
Зарегистрирован: 05.05.2017

Lis06 пишет:
Подключаю к компу, в настройках часов выбираю комп

где нужно выбирать?

vk007
Offline
Зарегистрирован: 16.06.2015

Дим пишет:

Lis06 пишет:
Подключаю к компу, в настройках часов выбираю комп

где нужно выбирать?

Почитали бы вы первую страницу, там сложно не заметить мои сообщения с довольно подобными инструкциями с картинками:

vk007 пишет:
При отображении времени нажатие на любую кнопку, кроме "ОК", принудительно переведет часы в режим отображения дополнительной информации.
Кнопка "ОК" вызывает меню с настройками: .

Последний пункт меню - связь с компьютером .