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

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
Ммм... А пыль вытирать как?
Не думаю что это прям такая глобальная проблема. Раз в неделю на одну минуту можно и отключить чтоб пыль протереть)
Ну или блокировку кнопок добавить (что как по мне уже лишнее).
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
У нас разный жизненный опыт.
Но отключать устройство или механически блокировать кнопки - не дело, конечно. А вот программно позволить блокировать функции кнопок, скажем, по нажатию 5-секундному любой кнопки, и разблокировке по такому же длительному нажатию (или "пин-коду") - вполне уместно. Естественно, при срабатывании будильника отключаться он должен любой кнопкой без снятия блокировки.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
Как вариант по удержанию сразу двух клавиш блокировать, а то на одиночных удержаниях скорее всего другой функционал будет висеть..
И например блокировать на 10 секунд, а разблокировка по тайм-ауту или принудительно по удежанию любой клавиши.
Будильник само собой без блокировок.
 

gcat

★✩✩✩✩✩✩
30 Авг 2020
69
17
вопрос: собрал на немецких лампах z570m
все хорошо, все работает, но напряжение на конденсаторе не поднимается выше 166в. пробовал и duty выставлять и 220 и 250 -
все-равно 166в и хоть тресни. без нагрузки (верхней платы), само собой, зашкаливает за 300в. с лампами 166в и все. хотел чуть-чуть повысить их яркость еще
 

poty

★★★★★★✩
19 Фев 2020
3,257
949
@gcat, входное напряжение (измеренное, а не предполагаемое Вами), установлен ли входной электролитический конденсатор, греется ли что-либо из DC/DC преобразователя, какие элементы применены (дроссель, MOSFET, диод)? Какое сопротивление в аноде ламп (перед оптронами)? Как организована точка?
 

gcat

★✩✩✩✩✩✩
30 Авг 2020
69
17
@gcat, входное напряжение (измеренное, а не предполагаемое Вами), установлен ли входной электролитический конденсатор, греется ли что-либо из DC/DC преобразователя, какие элементы применены (дроссель, MOSFET, диод)? Какое сопротивление в аноде ламп (перед оптронами)? Как организована точка?
входное напряжение вы имеете ввиду в блоке питания? 5.1в
из dc/dc ничего не греется. ввсе остальное как в схеме гайвера:
диод byv26c, транзистор irf840, индуктивность 220мкГн, конденсатор 4,7 мкФ 400V, подстроечник 500ком
а вот сопротивление в аноде ламп (перед оптронами) я не мерил.
 

poty

★★★★★★✩
19 Фев 2020
3,257
949
все остальное как в схеме гайвера
В схеме Гайвера есть входной "опциональный" конденсатор (в цепи 5В) - он установлен?
Как организована точка?
??? Имеется в виду неоновая лампа (или лампы) между группами цифр или светодиод.
апряжение на конденсаторе не поднимается выше 166в. пробовал и duty выставлять и 220 и 250 -
все-равно 166в и хоть тресни.
Прошу уточнить: напряжение меняется при изменении duty?
Какой скетч используете?
 

gcat

★✩✩✩✩✩✩
30 Авг 2020
69
17
В схеме Гайвера есть входной "опциональный" конденсатор (в цепи 5В) - он установлен?
470мкф 6.3в? да установлен правда, 470мкф 16в, что было под рукой от старой материнки.

??? Имеется в виду неоновая лампа (или лампы) между группами цифр или светодиод.
неоновая точка, но я ее не впаивал. то есть, оптрон стоит, но точку я неоновую не стал запаивать.

Прошу уточнить: напряжение меняется при изменении duty?
Какой скетч используете?
напряжение под нагрузкой с верхней платой с лампами при изменении duty не меняется и остается в районе 166в
duty ставил до 250 - напряжение под нагрузкой не менялось
скетч nixieClock_v2-master v2_2.5
PS Светодиоды подсветки я не запаиваю вообще
 
Изменено:

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
напряжение под нагрузкой с верхней платой с лампами при изменении duty не меняется и остается в районе 166в
Скорее всего мосфет помер, если с Китая брали то это он 100%. Было такое, большое внутренне сопротивление. Есть чем протестить мосфет?
 

AN46

★★★✩✩✩✩
25 Мар 2021
63
102
Пенза
Всем доброго времени суток! Подскажите у часов на ИН-12 без неонки у ардуино есть свободные пины? хочу подключить несколько датчиков
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,257
949
Смотря по какой плате Вы делаете конструкцию. Мне кажется, Вы могли бы и сами посмотреть, раз собираетесь изменять что-то.
 

prohstw

✩✩✩✩✩✩✩
24 Мар 2021
7
0
Всем здравствуйте.Собрал часы на ин12 без неонки.Прошивка последняя от Гайвера,плата тоже Флюс отмыл.Напряжение В норме 179 вольт на конденсаторе.На плате 5.1 вольта. Блок питания 5в 2а.
Все работает. НО есть глюк.Время меняется примерно раз в 2 минуты либо после смены эффекта. При передергивании питания индицируется правильное время. И опять стоит до смены эффекта. Модуль часов менял. То есть каждую минуту нет изменения времени.пример было 11-29 прошло две минуты показывают 11-31.Куда копать?
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,257
949
@prohstw, на какой плате и с какой прошивкой сделаны часы?
По описанным Вами симптомам модуль времени как раз работает нормально (иначе бы после перезагрузки часов время было бы сбито), а вот почему не идёт локальное время в Ардуино - нужно смотреть.
 

prohstw

✩✩✩✩✩✩✩
24 Мар 2021
7
0
Избыточное цитирование
@prohstw, на какой плате и с какой прошивкой сделаны часы?
По описанным Вами симптомам модуль времени как раз работает нормально (иначе бы после перезагрузки часов время было бы сбито), а вот почему не идёт локальное время в Ардуино - нужно смотреть.
Прошивка последняя от Гайвера,плата тоже.пробовал другие прошивки.все тоже самое.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
У Гайвера в 2.5 синхронизация с RTC через 15 минут:
void calculateTime() (timeTicker.ino):
      if (minsCount >= 15) {            // каждые 15 мин
        minsCount = 0;
        DateTime now = rtc.now();       // синхронизация с RTC
        secs = now.second();
        mins = now.minute();
        hrs = now.hour();
      }
Если какой артефакт в отсчёте времени и возникает из-за возможного рассинхрона внутренних часов (счёта времени в программе) и RTC, то не каждые 2 минуты он должен проявляться.
Если выделенные строки закомментировать, отсчёт нормально идёт?

Или если эти строки закомментировать, а чуть ниже вставить проверку в таком виде (выделены добавленные строки):

void calculateTime() (timeTicker.ino):
    if (secs > 59) {
      newTimeFlag = true;   // флаг что нужно поменять время
      secs = 0;
      mins++;
      minsCount++;
/*
      if (minsCount >= 15) {            // каждые 15 мин
        minsCount = 0;
        DateTime now = rtc.now();       // синхронизация с RTC
        secs = now.second();
        mins = now.minute();
        hrs = now.hour();
      }
*/
      if (mins % BURN_PERIOD == 0) burnIndicators();     // чистим чистим!

      /*if (!alm_flag && alm_mins == mins && alm_hrs == hrs && true) {
        mode = 0;
        alm_flag = true;
        almTimer.start();
        almTimer.reset();
        }*/
    }

    if ((secs==23) && (minsCount >= 15)) {            // каждые 15 мин
      minsCount = 0;
      DateTime now = rtc.now();       // синхронизация с RTC
      secs = now.second();
      mins = now.minute();
      hrs = now.hour();
    }

    if (mins > 59) {
      mins = 0;
      hrs++;
      if (hrs > 23) hrs = 0;
      changeBright();
    }
    if (newTimeFlag) setNewTime();         // обновляем массив времени
(На 23-й секунде синхронизация, чтобы на границу минут не попасть. Upd: исправил ошибку после замечания @bort707.)
Если помогло, отпишись. Будет понятно, что исправлять в программе. Если не помогло, тоже отпишись, чтобы заблуждения развеять.
 
Изменено:

prohstw

✩✩✩✩✩✩✩
24 Мар 2021
7
0
Избыточное цитирование
У Гайвера в 2.5 синхронизация с RTC через 15 минут:
void calculateTime() (timeTicker.ino):
      if (minsCount >= 15) {            // каждые 15 мин
        minsCount = 0;
        DateTime now = rtc.now();       // синхронизация с RTC
        secs = now.second();
        mins = now.minute();
        hrs = now.hour();
      }
Если какой артефакт в отсчёте времени и возникает из-за возможного рассинхрона внутренних часов (счёта времени в программе) и RTC, то не каждые 2 минуты он должен проявляться.
Если выделенные строки закомментировать, отсчёт нормально идёт?

Или если эти строки закомментировать, а чуть ниже вставить проверку в таком виде (выделены добавленные строки):

void calculateTime() (timeTicker.ino):
    if (secs > 59) {
      newTimeFlag = true;   // флаг что нужно поменять время
      secs = 0;
      mins++;
      minsCount++;
/*
      if (minsCount >= 15) {            // каждые 15 мин
        minsCount = 0;
        DateTime now = rtc.now();       // синхронизация с RTC
        secs = now.second();
        mins = now.minute();
        hrs = now.hour();
      }
*/
      if (mins % BURN_PERIOD == 0) burnIndicators();     // чистим чистим!

      /*if (!alm_flag && alm_mins == mins && alm_hrs == hrs && true) {
        mode = 0;
        alm_flag = true;
        almTimer.start();
        almTimer.reset();
        }*/
    }

    if ((secs=23) && (minsCount >= 15)) {            // каждые 15 мин
      minsCount = 0;
      DateTime now = rtc.now();       // синхронизация с RTC
      secs = now.second();
      mins = now.minute();
      hrs = now.hour();
    }

    if (mins > 59) {
      mins = 0;
      hrs++;
      if (hrs > 23) hrs = 0;
      changeBright();
    }
    if (newTimeFlag) setNewTime();         // обновляем массив времени
(На 23-й секунде синхронизация, чтобы на границу минут не попасть.)
Если помогло, отпишись. Будет понятно, что исправлять в программе. Если не помогло, тоже отпишись, чтобы заблуждения развеять.
сделал как Вы написали.время меняется раз в 3 минуты.причем если реальное время 36 минут показывают 33 минуты. при передергивании питания время верное.Причем первая минута после включения нормально меняется а дальше раз в 3 минуты
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Забавно... А процессор на Ардуине какой и кварц на какую частоту?

По поводу передёргивания питания соглашусь с @poty: похоже, RTC работает.

Ну ещё заплатка "в лоб": последнюю строку процитированного кода if (newTimeFlag) setNewTime(); заменить на setNewTime();. Но что-то здесь не так...
 

prohstw

✩✩✩✩✩✩✩
24 Мар 2021
7
0
Избыточное цитирование
Забавно... А процессор на Ардуине какой и кварц на какую частоту?

По поводу передёргивания питания соглашусь с @poty: похоже, RTC работает.

Ну ещё заплатка "в лоб": последнюю строку процитированного кода if (newTimeFlag) setNewTime(); заменить на setNewTime();. Но что-то здесь не так...
328p по частоте не подскажу

часы меняют показания раз в 15 минут. но отстают на 9 мин. при передергивании питания времявыставляется правильно.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,257
949
Если всё, что Вы рассказываете, правда, то идей нет. Попробуйте загрузить ламп-тест, там хотя бы можно будет понять, с нужной ли частотой работает сама Ардуино.
Со скетчем копаться бесполезно, коль скоро Вы их перепробовали уже много.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@prohstw, и ещё два вопроса.
С какой частотой мигает светодиодная точка?
Не сенсорные ли кнопки стоят?

Нет, ещё один: откуда взята программа и какие правки/настройки вносились?
 

prohstw

✩✩✩✩✩✩✩
24 Мар 2021
7
0
Мигает примерно раз в секунду. Кнопки обычные. Прошивка с сайта гайвера. Правок не делал. Только тип платы выбрал.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,257
949
@prohstw, думаю, что какие-то факты непроверены. Поведение совсем чудное.