ARDUINO Часы на ГРИ v2. Обсуждение проекта

znachok88

✩✩✩✩✩✩✩
2 Мар 2021
3
0
Приветы. Не ругайте...но завтык у меня. Собрал платы, одна (3 -я) лампа не рабочая(выпаял) ....тестовый скетч работает, а любой другой для часов не хочет. Это из -за отсутсвия лампы, или что я сделал не так?
Библиотеки, скетчи, все загружается, но не светится ничего. На тестовом скетче...цыферки мигают по очереди.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Отсутствие лампы не должно влиять на работу.
Запускается ли программа часов после нажатия Reset на плате Arduino?
Одинаковые ли параметры, установленные в начале программ часов (nixieClock_2_*.ino) и тестового скетча?
Какое высокое напряжение при работе программы часов? (И какое при работе теста?) Есть ли ШИМ на затворе транзистора?
RTC (модуль DS3231) правильно установлен?

Ну и так, для нашего общего развития: какая плата (часов), какой модуль RTC, какие лампы, какая версия программы - в общем, хоть что-нибудь, кроме того, что третья лампа выпаяна.
 

Aleksey_37

✩✩✩✩✩✩✩
2 Янв 2021
9
1
DmitryZ

Программу изменил, пробовал на версии 2.6.3. переключения день/ночь, отрабатывают нормально.
Соотношение между уровнем яркости, и скважностью ШИМ, подобрал экспериментально ещё на версии 2.5. Старался, чтобы напряжение, было в пределах 165-170в. Пробовал на четырёх вариантах часов, показания везде одинаковые.
При DUTY_N 99 и INDI_BRIGHT_N 1 лампы зажигаются уверенно (даже на версии 2.5) светятся ровно, напряжение при этом всё те-же 165в.

Конденсатор - 4,7 мкФ 350V правда диод стоит BYV26C вместо HER106. Лампы ИН-12.

@DmitryZ предложил 2 варианта, какой проверили?
Пробовал на версии 2.6.3.
 

-=SaNcHeZ=-

✩✩✩✩✩✩✩
6 Янв 2020
14
3
Питание от сети также предполагает ограничение тока до рабочего, просто одним диодом здесь не отделаться, нужно последовательное сопротивление. Хотите попробовать включить без него? Попробуйте, только наденьте защитные очки.
Пардон что Вы восприняли мои слова буквально, но об установке токоограничивающего сопротивления я не писал, т.к. считал что это само собой разумеющееся мероприятие, так сказать "по умолчанию" ;)
Это были мои мысли вслух, я никого не хотел задеть, и согласен, что "насиловать" лампы не есть хорошо. Просто проекту в таком виде уже несколько лет, и еще никто не написал что лампы умерли от ночного режима работы :)

Касаемо программной корректировки величины напряжения, то я безусловно опробую в своих часах этот вариант, спасибо DmitryZ. Ведь одно дело эксплуатировать устройства с превышением эксплуатационных характеристик не имея альтернативы, и совсем другое дело ёё (альтернативу) иметь, но не использовать.
 

poty

★★★★★★✩
19 Фев 2020
3,248
946
Никаких проблем не вижу с разными точками зрения.
Касаемо напряжения в ночном режиме: да, есть такая практика и как бы на данный момент сообщений о проблемах не наблюдается. Вижу несколько причин этого. Я здесь совсем недавно и поэтому вряд ли могу сказать за всё время существования проекта, но последние вопросы касались в основном повышения яркости. Т.е. яркость в ночном режиме если и снижают, то ненамного. Многие вообще этого не делают, благо это легко отключается в прошивке. В таких условиях напряжение не падает настолько сильно.
Вторая часть связана с первоначальной конструкцией со слабым дросселем. Там в принципе вся конструкция работает на пределе, имеющийся подстроечный резистор даёт дополнительную постоянную нагрузку, частично устраняющую колебания напряжения. Как только момент с дросселем устранили (вместе с большим нагревом и недостатком напряжения при номинальной нагрузке) возникла проблема с повышением напряжения при пониженном токе нагрузки. Более того, возникли артефакты в виде явного влияния, допустим, неоновых точек на основные индикаторы. Также эффекты с изменяемой яркостью становятся неинтересными: яркость практически не изменяется.
Считаю, что программный вариант хоть и элегантный, но половинчатый. Лучше, как в конструкции adm503, например, регулировать питание автоматически через обратную связь.
 

-=SaNcHeZ=-

✩✩✩✩✩✩✩
6 Янв 2020
14
3
возникли артефакты в виде явного влияния, допустим, неоновых точек на основные индикаторы
В своих часах решил это программно, подобрав значение дневной яркости точки

Считаю, что программный вариант хоть и элегантный, но половинчатый. Лучше, как в конструкции adm503, например, регулировать питание автоматически через обратную связь.
Полностью с Вами солидарен

Как-то так. В теории. Надо проверять.
Опробовал, всё работает. Благодарю!!!!
Теперь напряжение в ночном режиме 183В (было 210В)
 

nikola.75

✩✩✩✩✩✩✩
27 Мар 2020
17
0
Всем привет!
Доработал немного оригинальную прошивку для часов!
Спасибо за прошивку!
Подскажите как сменить в прошивке отображение на день / месяц, а не месяц / день? И как сделать обнуление секунд при установке времени?
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
Спасибо за прошивку!
Подскажите как сменить в прошивке отображение на день / месяц, а не месяц / день? И как сделать обнуление секунд при установке времени?
Я бегло посмотрел, нужно прошивку править.
 

Napomni

✩✩✩✩✩✩✩
3 Мар 2021
5
9
Всем привет, у кого то есть проект по термометру для дома, на ин-12 или ин-14 неон
Или может есть доделки под уже имеющиеся платы ин-12 ин-14 неон, платы Гайвера
А так жекто то может поделиться корпусами под данные платы, очень благодарен.
 

poty

★★★★★★✩
19 Фев 2020
3,248
946
Есть несколько конструкций часов со встроенной погодной станцией, в частности от @adm503, с измерением температуры, влажности и давления. В первой версии оригинальных часов Гайвера также встроено измерение и отображение температуры и влажности. Там тоже количество разных плат весьма велико.
По корпусам не подскажу.
 

Иван Ш.

✩✩✩✩✩✩✩
26 Фев 2021
1
0
Как настраивать Антиокисление ламп (частота, циклы, мин) ? Лучше чаще или реже но больше? Или не критично вообще
 
Изменено:

Napomni

✩✩✩✩✩✩✩
3 Мар 2021
5
9
Подскажите, как организовать подключение питания, на корпусе от гайвера под ин-14, тот что с латунными кольцами
И вообще, может есть какие то совсем миниатюрные штекеры, или аналоги miniusb, что бы припаять где данной плате
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Всем привет, у кого то есть проект по термометру для дома, на ин-12 или ин-14 неон
Или может есть доделки под уже имеющиеся платы ин-12 ин-14 неон, платы Гайвера
А так жекто то может поделиться корпусами под данные платы, очень благодарен.
у меня меряет температуру давление влажность и СО2. и файлы корпуса в автокаде
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Подскажите как сменить в прошивке отображение на день / месяц, а не месяц / день?
Попробую. Опять в теории, без проверки. Но сделаю неправильно. По-правильному смена формата отображения должна быть доступна в оперативных настройках, я же предложу вариант, когда выбор об этом формате надо сделать до компиляции с помощью #define.
Все правки путём добавления в файл nixieClock_2_v2.6.3_mod.ino выделенных в коде ниже строк. В заголовке блоков с кодом указал процедуры/функции, к которым этот код относится.

в начале nixieClock_2_v2.6.3_mod.ino добавить выделенные строки::
#define SHOW_DATE_S 5        // время отображения даты (5..240)(с)
#define SHOW_YEAR_S 5        //время отображения года (5..240)(с)
// формат отображения даты:
#define SHOW_DATE_FORMAT DDMM         // если DDMM, то сначала день, потом месяц, ЛЮБОЕ ИНОЕ значение - сначала месяц, потом день
// =======================  ЯРКОСТЬ =======================
void settings_time():
        case 1:
#if (SHOW_DATE_FORMAT == DDMM)
          changeLeft = days;
          changeRight = mouns;
#else
          changeLeft = mouns;
          changeRight = days;
#endif
          break;
тоже в void settings_time():
    //+++++++++++++++++++++  опрос кнопок  +++++++++++++++++++++++++++
    switch (check_keys()) {
      case 1: //right click
        switch (curMode) {
          case 0:
            //настройка времени
            switch (currentDigit) {
              case 0: if (hrs < 23) hrs++; else hrs = 0; break;
              case 1: if (mins < 59) mins++; else mins = 0; break;
            }
            sendTime(hrs, mins);
            break;

          case 1:
            //настройка даты
            switch (currentDigit) {
#if (SHOW_DATE_FORMAT == DDMM)
            case 0: if (days < pgm_read_byte(&daysInMonth[mouns - 1]) + (mouns == 2 && !(years % 4)) ? 1 : 0) days++; else days = 1; break;
              case 1: if (mouns < 12) mouns++; else mouns = 1; days = 1; break;
            }
            sendTime(days, mouns);
#else
            case 0: if (mouns < 12) mouns++; else mouns = 1; days = 1; break;
              case 1: if (days < pgm_read_byte(&daysInMonth[mouns - 1]) + (mouns == 2 && !(years % 4)) ? 1 : 0) days++; else days = 1; break;
            }
            sendTime(mouns, days);
#endif
            break;

          case 2:
            //настройка года
            if (years < 2050) years++; else years = 2020;
            sendTime(years / 100, years % 100);
            break;
        }
        break;

      case 2: //left click
        switch (curMode) {
          case 0:
            //настройка времени
            switch (currentDigit) {
              case 0: if (hrs > 0) hrs--; else hrs = 23; break;
              case 1: if (mins > 0) mins--; else mins = 59; break;
            }
            sendTime(hrs, mins);
            break;

          case 1:
            //настройка даты
            switch (currentDigit) {
#if (SHOW_DATE_FORMAT == DDMM)
              case 0: if (days > 1 ) days--; else days = (mouns == 2 && !(years % 4)) ? 1 : 0 + pgm_read_byte(&daysInMonth[mouns - 1]); break;
              case 1: if (mouns > 1) mouns--; else mouns = 12; days = 1; break;
            }
            sendTime(days, mouns);
#else
              case 0: if (mouns > 1) mouns--; else mouns = 12; days = 1; break;
              case 1: if (days > 1 ) days--; else days = (mouns == 2 && !(years % 4)) ? 1 : 0 + pgm_read_byte(&daysInMonth[mouns - 1]); break;
            }
            sendTime(mouns, days);
#endif
            break;
С подсказки @Herr Direktor добавил:
void mainTick():
#if SHOW_DATE
      if (!alarm || alarmWaint) {
        switch (++secs_date) {
          case date_s:
            date_on = 1;
            setPWM(DOT, getPWM_CRT(dotMaxBright));
#if (SHOW_DATE_FORMAT == DDMM)
            setNewTime(days, mouns);
#else               
            setNewTime(mouns, days);
#endif               
            animShow = true;
            break;
Надеюсь, ничего не пропустил.
И да, заметил, что при настройке месяца число сбрасывается на 1. Причём, при установке предыдущего месяца тоже. Понятно, что есть проблема с необходимостью контроля за количеством дней в месяце, но это же одна строчка: если в месяце нет текущего числа, установить максимальное число для этого месяца. Есть вероятность, что число собьётся (например, при смене 30 января на 30 марта придётся дни корректировать), но хотя бы 15 декабря на 15 января быстро установится. В общем, есть над чем подумать.

И как сделать обнуление секунд при установке времени?
А разве секунды не обнуляются при возврате из настроек времени в режим часов удержанием левой кнопки? Речь же о nixieClock_2_v2.6.3_mod.ino? Впрочем, в 2.5 тоже обнуляются.
 
Изменено:

Herr Direktor

✩✩✩✩✩✩✩
26 Фев 2021
6
2
Попробую. Опять в теории, без проверки. Но сделаю неправильно.
Так не будет работать. Отображение на индикаторах делается через setNewTime. Т.е. если нужно просто поменять местами отображение "месяц/день" на "день/месяц", то просто меняем в блоке

C++:
#if SHOW_DATE
      if (!alarm || alarmWaint) {
        switch (++secs_date) {
        case date_s:
          date_on = 1;
          setPWM(DOT, getPWM_CRT(dotMaxBright));
          setNewTime(days,mouns); //<-- менять тут
          animShow = true;
days и mouns местами.
Настройка остаётся прежней (слева месяц, справа день).
 
  • Лойс +1
Реакции: Sher и DmitryZ

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Herr Direktor, согласен с указанием места в коде. Печально, что я в файле с кодом его таки исправил, а сюда из-за невнимательности не перенёс.

Не согласен с тем, что при настройке порядок будет иной. (В смысле, он таким будет, если другое не править, но мне так не нравится.) Да, как получилось сейчас у меня, тоже неудобно: сначала настраивается день, а если надо настроить месяц, то день сбросится в 1 - снова его надо настраивать. Но хотя бы день и месяц всегда на одних местах - считаю этот подход правильным.
Конечно, правки в программе можно чуть расширить: можно начинать настройку с месяца, можно убрать переход на первое число, особенно нелогичное при обратном перелистывании месяцев.
 

Herr Direktor

✩✩✩✩✩✩✩
26 Фев 2021
6
2
Ну вы довольно глобально подходите к решению вопроса, с размахом... :) (y)

По-идее, код следует выложить куда-нибудь на гит(может уже есть такой для этого мода, просто не нашёл сходу?), а там уже подобные патчи реализовывать, чтобы народ мог обновляться по мере необходимости, не собирая по форуму нужные/полезные куски.
Да и свистоперделками можно обвесить, типа новых эффектов, пиликать однобитные мелодии можно научить и т.п.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
991
831
@DmitryZ, добавил выбор типа отображения даты и проверку на количество дней в месяце.

@Herr Direktor, генерацию мелодий можно добавить, у меня есть готовая такая функция. Единственное мы не сможем менять частоту бузера.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Napomni, а стандартные разъёмы 5,5x2,1 мм (есть и потоньше) чем не устраивают? На выбор монтируемые и на корпус (панель), и на плату, и на провод. С miniUSB сложнее - в основном есть гнёзда для платы, для панели - редкость.

@Herr Direktor, слава Богу, мод не заброшен, автор мода активен и тут присутствует. И это воля автора, как реагировать на просьбы, вносить ли изменения в свою программу или нет. Я не претендую на авторство, а предлагаю решения частных проблем.
Но я, пытаясь поставить себя на место автора, считаю, что автору программы всегда полезно знать не только про ошибки в ней, но и насколько востребован тот или иной функционал, как сделать удобнее пользовательский интерфейс. Потому обсуждения, высказывания разных точек зрения тут не бесполезны для общего дела.
И, в конце концов, код открыт - каждый может взять и подточить под свои уникальные хотелки.

@Sergo_ST, не проверял, но кажется, что "#ifdef DDMM" при "#define SHOW_DATE_FORMAT DDMM" поведёт себя не так, как задумывалось.
И потом, мне кажется, что настройка генерации высокого напряжения под ночной режим более востребована должна быть.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
991
831
@DmitryZ, Да, спасибо, забыл удалить SHOW_DATE_FORMAT... По поводу ВВ преобразователя я думаю, предложенный вами вариант позже добавлю, но хотелось бы конечно чтоб стабилизация была по обратной связи...

Добавил изменение скважности шим день/ночь.
 
Изменено:
  • Лойс +1
Реакции: DmitryZ

Napomni

✩✩✩✩✩✩✩
3 Мар 2021
5
9
Всем привет, кто то может помочь добавить к часам от гайвера с этого проекта https://alexgyver.ru/projects/page/2/
Отображение температуры ?
Как это сделать и что докупить ?
 

Herr Direktor

✩✩✩✩✩✩✩
26 Фев 2021
6
2
@Sergo_ST, с новым алгоритмом обработчика кнопок в 2.6.4, кнопки перестали вообще реагировать на что-то (нажатие, удержание).
Откатился назад, на 2.6.3 - все заработало обратно.
Плата "стандартная" (от Алекса), под ИН-12 со светодиодом.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Sergo_ST, да, обратная связь - штука полезная. Но чем плохо решение "в лоб"? Два резистора в делитель - на A6 или A7? Референсное, конечно, надо бы постабильнее задать - это даже с TL431 ещё больше усложнит навес на схеме... Или делить на 300..400 и использовать внутренний источник на 1,1 В. Высокое измерять с точностью даже до вольта не обязательно - хватит и 3-5 вольт. А калибровочную константу можно подобрать по фактическим измерениям на конкретных часах.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
991
831
@DmitryZ, я предлагаю как раз делитель с подстроечником, внутренние ИОН + компаратор, в прерывании копаратора вкл/выкл шим, подстроечником выставляем напряжение.