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

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
Если вдруг кого-то заинтересует. Несколько идей позаимствовал из этих часов. Функционал проще, так как делал часы-будильник.