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

Часы на ГРИ v2. Обсуждение проекта
Вот, потихоньку делаю корпус на ГРИ) Нужно ли дальше запихивать лампы? Или наоборот сильно глубоко?) Определится не могу)
 

Вложения

Комментарии

SergKara

✩✩✩✩✩✩✩
6 Июл 2020
9
0
@SergKara, показываются 4 разных цифры на лампах? Точка мигает?
Показывает например 23:42 секундная точка не мигает подсветка тоже не "дышит". Просто зависает и пока не перезапустить ничего не изменяется.
 

poty

★★★★★★✩
19 Фев 2020
2,990
895
@SergKara, яркость при этом относительно нормы меняется? Прошивка какая?
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Показывает например 23:42
Забавно. Значит, прерывания отрабатываются - динамическая индикация работает. Но где-то в программе глухой цикл или что-то подобное. Надо подумать. Пока просто совет: вывести кнопку Reset для доступа снаружи.
 
  • Лойс +1
Реакции: SergKara

poty

★★★★★★✩
19 Фев 2020
2,990
895
@DmitryZ, самое очевидное место - опрос DS3231. Но тут очень многое зависит от того, какой скетч применяется.
 
  • Лойс +1
Реакции: DmitryZ

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@poty, согласен. Но подумать не мешает. У меня самого на разных часах - и на Atmega328, и на ESP8266 - годами работают DS3231, а вот месяца 2 как началось: то время не считают, то при инициализации подвисают, то количество звёзд в видимой части Млечного Пути вместо времени выдают... Причём, эти модули приобретались давно, вместе с теми, что работают без нареканий.
 

SergKara

✩✩✩✩✩✩✩
6 Июл 2020
9
0
@SergKara, яркость при этом относительно нормы меняется? Прошивка какая?
Яркость относительно нормы не меняется, прошивка - nixieClock_2_v2.5

Забавно. Значит, прерывания отрабатываются - динамическая индикация работает. Но где-то в программе глухой цикл или что-то подобное. Надо подумать. Пока просто совет: вывести кнопку Reset для доступа снаружи.
Идея с выносом кнопки, конечно, интересная, но каждые четыре часа прожимать reset такое себе занятие)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,188
1,280
Москва
Я на ответственные вещи ставлю вочдог, что бы он сам перегрузил плату если что. Можно и тут поставить и скорее всего будет работать, но все же надо выяснять причину зависания, т.к. вочдог это средства нештатных ситуаций все же, а не регулярного использования. Т.е. он то из за этого не испортится, но сама ситуация не правильная
 
  • Лойс +1
Реакции: DmitryZ и SergKara

АртёмЗ

✩✩✩✩✩✩✩
11 Фев 2021
2
0
просматривал прошивку и возник вопрос надо ли что то указывать в этих
/ распиновка ламп
#if (BOARD_TYPE == 0)
const byte digitMask[] = {7, 3, 6, 4, 1, 9, 8, 0, 5, 2}; // маска дешифратора платы in12_turned (цифры нормальные)
const byte opts[] = {KEY0, KEY1, KEY2, KEY3}; // порядок индикаторов слева направо
const byte cathodeMask[] = {1, 6, 2, 7, 5, 0, 4, 9, 8, 3}; // порядок катодов in12

#elif (BOARD_TYPE == 1)
const byte digitMask[] = {2, 8, 1, 9, 6, 4, 3, 5, 0, 7}; // маска дешифратора платы in12 (цифры вверх ногами)
const byte opts[] = {KEY3, KEY2, KEY1, KEY0}; // порядок индикаторов справа налево (для IN-12 turned) и ин-14
const byte cathodeMask[] = {1, 6, 2, 7, 5, 0, 4, 9, 8, 3}; // порядок катодов in12

#elif (BOARD_TYPE == 2)
const byte digitMask[] = {9, 8, 0, 5, 4, 7, 3, 6, 2, 1}; // маска дешифратора платы in14
const byte opts[] = {KEY3, KEY2, KEY1, KEY0}; // порядок индикаторов справа налево (для IN-12 turned) и ин-14
const byte cathodeMask[] = {1, 0, 2, 9, 3, 8, 4, 7, 5, 6}; // порядок катодов in14

#elif (BOARD_TYPE == 3)
const byte digitMask[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // тут вводим свой порядок пинов
const byte opts[] = {KEY0, KEY1, KEY2, KEY3}; // свой порядок индикаторов
const byte cathodeMask[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // и свой порядок катодов
?
PS. Собираю на ин14 с диодной точкой.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Старик Похабыч, вот когда оно у тебя работает годами, то, вроде, всё складывается, как надо. А когда на известном "поле" вдруг спотыкаешься, то растерянность и удивление порождают фразы, близкие к приписываемой Черномырдину: "как же так, никогда ничего подобного не было - и вот опять".

Обычно грешим мы на качество китайских комплектующих. Не без основания. Отсюда идея первая: заменить DS3231 на "честную" микросхему от Maxim - в рознице она может стоить и $5-7, но не $1 на плате вместе с доставкой. (Никто из моих знакомых, кто решался на приобретение такого предположительно "честного" варианта микросхемы, не жаловался на проблемы с ней.)
Против этой идеи может выступать практика: как уже писал, я годами ставил в разные устройства модули с DS3231, купленные на Ali, и только недавно нарвался на проблемы. Так стоит ли платить больше, если замена дефектного модуля всё равно дешевле получается "честной" микросхемы?..

Ещё мысль. Для DS3231 время нарастания сигнала должно быть до 1 мкс (1000 нс) в стандартном режиме (до 100 кГц) и до 300 нс в быстром (до 400 кГц). По умолчанию Ардуино инициализирует i2c-шину на 100 кГц. Тут приведены графики, из которых следует, что даже с рекомендованными резисторами подтяжки на 4,7 кОм не получается 1 мкс - только 1,3 мкс, а менее 1 мкс - от 3,3 кОм и ниже. В стандартном режиме высокий уровень SCL должен удерживаться не менее 4 мкс, что недостижимо при размытом фронте. Предполагаю, это одна из возможных причин нестабильности DS3231.
Опять же, питание может быть недостаточным для обеспечения стабильности - потому может плавать и форма переднего/заднего фронта, и амплитуда сигналов (уровни HIGH/LOW).
DS3231 можно сбросить (RESET) внешним сигналом, можно попытаться запустить шину, дёргая мастером SCL и ожидая высокого уровня на SDA - это уже при программной поддержке.

В общем, можно изучать эту схему в поисках причины зависания шины, можно строить предположения в теории и пытаться подобрать решение. Вот я сейчас (из теории) предлагаю уменьшить значения резисторов подтяжки SCL и SDA к +5 В (или добавить к имеющимся 10-килоомные в параллель). Осциллографа нет, увы, чтобы самому понаблюдать за результатом. Да и RTC в часах пока не глючит.
 

poty

★★★★★★✩
19 Фев 2020
2,990
895
@DmitryZ, впервые вижу эту статью и меня терзают смутные сомнения, что здесь что-то не так. Поясню: все мы знаем, что t = RC , но какое R и какое C учитывать? Дело в том, что в этой формуле R - это внутреннее сопротивление источника питания (т.е., выхода Ардуино), а не резистора подтяжки! Доказательства? Если бы в качестве R выступал резистор подтяжки, то картина фронта и спада была бы симметричной, а у нас спады вполне себе крутые! Я далёк от мысли, что автор статьи подсунул нам поддельные осциллограммы, но чем-то они должны быть обусловлены? И потом я заметил, что импульсы измерялись на шине SCL! Но! Шина SCL не управляется монопольно ведущим устройством. Если ведомое устройство не успевает принимать импульсы оно может само выставить на шине низкий уровень сигнала, и ведущее устройство должно это определить и установить паузу в передаче. Т.е., высокий уровень сигнала формируется как раз за счёт подтягивающего резистора путём перевода порта передачи в третье состояние (как вход). На шине SDA таких ограничений нет, поэтому там фронты импульсов будут весьма крутыми, как спады на приведённых осциллограммах.
Вывод: это не может быть причиной неправильной работы шины I2C.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Удивлён, что автор статьи смотрел только на один сигнал. Я бы оба сигнала посмотрел - хотя бы просто из любопытства. Но в статье приведены картинки - я из них и делаю вывод. Что t=RC - это немного не то, понятно. Но и то, что сигнал вместо прямоугольного становится пилой, тоже не хорошо.
Да и то, что сопротивление подтяжки влияет на устойчивость работы, - факт. В учебниках так и пишут: хочешь устойчивости к помехам - снижай сопротивление подтяжки.
 

psyx86

★★★★✩✩✩
31 Янв 2020
381
227
Задумка прикольная - но только при условии, что все навесным монтажем сделать - без платы )
Так и задумано, все навесным монтажом, провод в лаке от старого СССР транса. платы только нано и модуль часов (но они не бросаются в глаза)
 

9dron9

★✩✩✩✩✩✩
11 Окт 2019
25
16
Подскажите пожалуйста, проблема в отставании часов.Могут ли часы отставать из-за каких-либо наводок или из-за металлического корпуса? Сделал часы но они отставали,поменял 3 модуля ds3231 mini,все равно отстают.Психанул и вынул плату из рабочих часов которые не отставали но стояли в деревянном корпусе,в итоге и они отстают. Отстают примерно секунд на 40 в сутки,как быть не знаю.
 

poty

★★★★★★✩
19 Фев 2020
2,990
895
@9dron9, используемый вариант платы, скетч, фото.
Напряжение на питании DS3231 измеряли? Конденсатор по питанию нормальный стоит?
 

9dron9

★✩✩✩✩✩✩
11 Окт 2019
25
16
Плата вроде как Алекса только мини формата,скетч пробовал и 2.5 и 2.6, конденсатор нормально стоит, напряжение не измерял и к сожалению сейчас возможности измерить нету-корпус не разборный) просто вся суть в том что в дереве все было норм,а тут прям беда
 

poty

★★★★★★✩
19 Фев 2020
2,990
895
Если нет возможности отладки, я здесь вряд ли помогу. С наводками это слабо связано, думаю, что просто где-то коротит на этот самый металлический корпус. Те платы, что видел я, разведены на грани фола, часто дорожки идут в десятых долях миллиметра от края, причём платы не режутся в заводских условиях, а самостоятельное разрезание может ещё больше приблизить дорожку к краю. Я бы попробовал внутреннюю поверхность корпуса покрыть лаком, но он у Вас неразборный, так что...
 

wladimir

✩✩✩✩✩✩✩
24 Фев 2021
9
0
Разрешите вклиниться с вопросами. ИН-12, 4 индикатора, прошивка - nixieClock_2_v2.5, все напряжения в норме, часы работают, время показывают, подсветка работает. Кнопками все режимы перебираются, работают.
1. Не мигает разделительный светодиод между индикаторами часов и минут. На выходе ардуины D10 нет напряжения. Короткого и обрыва нет. Прошивал несколько раз. Хотя это и не критично, но хотелось бы сделать.
2. Можно ли с этой прошивкой и схемой заменить ардуину nano на микросхему atmega 328, или надо изменять схему и другую прошивку? Слаб я в этом.
 

poty

★★★★★★✩
19 Фев 2020
2,990
895
@9dron9, чудес не бывает. Если в одном корпусе всё нормально, а в другом нет, то версии может быть только две:
  • внешние элементы (питание, например);
  • что-то где-то коротит или, наоборот, отваливается.
Не знаю, что там был за предыдущий корпус, но здесь, как я понимаю, индикаторы подключены к плате проводами. То же, видимо, с подсветкой (если вообще есть). Легко может где-нибудь коротнуть (и не обязательно на корпус).
Если корпус разобрать совсем нет возможности, то можно залить скетч, в котором в setup сделать вывод состояния DS3231 и времени, которое считывается из микросхемы. Посмотреть, отвечает ли DS3231 в принципе. Если нет - смотреть питание DS3231, тут однозначно всё.
Если да - выключить часы из сети на сутки и включив посмотреть, убежало ли время? Если убежало - искать способы улучшить питание DS3231 (конденсаторы параллельно ножкам питания и т.п.). Вообще, я бы эти манипуляции для начала провёл на другом корпусе, в котором работало всё хорошо, чтобы понять, не была ли проблема там?
Не мигает разделительный светодиод между индикаторами часов и минут. На выходе ардуины D10 нет напряжения.
Залейте скетч с миганием светодиода из примеров Ардуино для проверки.
Можно ли с этой прошивкой и схемой заменить ардуину nano на микросхему atmega 328, или надо изменять схему и другую прошивку?
Что значит - заменить? ATMega 328 - это микропроцессор, который стоит в Ардуино нано. Он отдельно от минимальной обвязки работать не будет.
Если электрически его включить правильно, залить бутлоадер, выставив необходимые фьюзы, потом залить прошивку - всё работать будет. Только как Вы будете это делать? Для этого нужны некоторые другие устройства и минимальные знания.
 
  • Лойс +1
Реакции: DmitryZ

Died_on_lifr

✩✩✩✩✩✩✩
18 Фев 2021
7
0
Подскажите пожалуйста, на конденсаторе милливольты, что делать?
 

wladimir

✩✩✩✩✩✩✩
24 Фев 2021
9
0
Залейте скетч с миганием светодиода из примеров Ардуино для проверки.
Скетч заливал сразу - мигает светодиод на ардуине. Да и часы в остальном работают. Можно ли мигание с D10 переключить на D13 (свободный)? Если можно, то как это сделать в скетче?
 
Изменено: