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

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Sergo_ST, так и идёт всё к новой схеме... А в новой схеме можно уже ШИМ-контроллер внешний поставить...
 

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
@DmitryZ, да а смысл усложнять схему внешним шим, мк спокойно со всем справиться)
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
@DmitryZ, добавил выбор типа отображения даты и проверку на количество дней в месяце.

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

Aleksey_37

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

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
@Aleksey_37, можно поподробнее, что даст подключение светодиода оптопары к 170-190 вольтам анодного напряжения?

Остальным и на всякий случай: это не совет, не делайте так.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,250
947
@DmitryZ, я предлагаю как раз делитель с подстроечником, внутренние ИОН + компаратор, в прерывании копаратора вкл/выкл шим, подстроечником выставляем напряжение.
Слишком сложно. Нет смысла поддерживать напряжение с высокой точностью, как и упомянул @DmitryZ. Для опорного напряжения можно использовать напряжение питания Ардуино: оно здесь 5В стабильное. На крайний случай - на плате есть источник 3,3В, можно использовать его. 1,1В внутреннего опорника использовать проблематично по причине слишком высокого коэффициента деления и возможного появления шумов. Также возникает опасность перенапряжения по входу, тогда как от перенапряжения по 5В и 3,3В могут спасти диоды на низкоимпедансный источник напряжения (на входах он к 5В уже имеется). Также бессмысленно использовать подстроечный резистор: в скетче можно править напряжение легко.
А для чего компаратор? Да ещё и прерывание по нему? Если вход будет использоваться аналоговый, то просто измеряем значение на входе и подстраиваем ШИМ, только и всего.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
напряжение питания Ардуино: оно здесь 5В стабильное. На крайний случай - на плате есть источник 3,3В, можно использовать его
Но в этой схеме - в часах Гайвера версии 2 - питание заведено напрямую на МК, в обход стабилизаторов на 3,3 и 5 вольт, которые на плате. Так что стабилизаторов, считай, нет. А вот чем снаружи всё это запитано - вопрос. Тут никто для общего случая никаких гарантий не даст.
Как ни крути, нужен источник опорного (стабильного) напряжения, который в данном случае либо внутренний на 1,1 В, либо внешний, которого нет в устройстве. Надо что-то приколхозить - если делать для схемы и плат "от Гайвера". Или делать другую схему - тут, конечно, можно развернуться.

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

poty

★★★★★★✩
19 Фев 2020
3,250
947
3,3В есть всегда. Оно от 5В получается. А если питание платы не 5В, тогда и Ардуино может нестабильно работать. Проще, как мне кажется, купить нормальный копеечный БП, чем "на дурака" рассчитывать.
Номинальное напряжение, допустим, 170В. При условии подбора цифрового уровня номинала и использования значения 2,5В в качестве среднего на аналоговом входе деление резистивного делителя будет 68. Т.е. 4В изменения на линии высокого напряжения будут соответствовать изменению около 60мВ на входе (примерно 12 уровней в цифре) или 120мВ на шине питания 5В. Такой БП купить нетрудно. Для 3,3В это будет существенно лучший результат.
 
  • Лойс +1
Реакции: DmitryZ

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
@psyx86, а на предыдущих прошивках такое было? Скорее всего это как-то связано обвязкой ламп, а не с мк...

@poty, ацп юзать хорошо тогда, когда нам нужно мониторить напряжение постоянно и через интерфейс устройства можно отладить все параметры, а в нашем же случае нужно один раз настроить и забыть. Использование внешнего не стабильного опорного черевато плавающем напряжением на ВВ части. Если мы будем юзать вместо ацп копаратор, то перепрошиваться по сто раз не нужно будет чтобы выставить необходимое напряжение. Если вы так боитесь за порт мк, то превысив 1.1в ничего с ним не случится, защитить дополнительно можно стабилитроном на 5в.
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
предыдущих прошивках такое было?
На прошивке от Гайвера или любой другой такого нет.
Проблескивание теми же цифрами что и отображаемая цифра эффекта, как будто с маленькой яркостью на первых трех индикаторах.
Плавные переход на последней прошивке не срабатывает. И как понял при отображении дата эффект применяется только в момент показа дата, а при смене минут нет.
На 6 индикаторов, не добрались еще?
 

poty

★★★★★★✩
19 Фев 2020
3,250
947
ацп юзать хорошо тогда, когда нам нужно мониторить напряжение постоянно и через интерфейс устройства можно отладить все параметры, а в нашем же случае нужно один раз настроить и забыть.
Не согласен. По опыту сборки устройства на 6 лампах есть очень много дестабилизирующих факторов, например:
  • включение неоновых ламп (коих две для 6-лампового варианта, а некоторые умудряются впихнуть и 4) - изменение яркости основных ламп и просадка напряжения;
  • разное количество горящих индикаторов (особенно заметно на эффектах, когда могут гореть от 0 до 6 ламп) - заметно ухудшаются визуальные эффекты, например, на "поезде" первый вдвигаемый символ получается гораздо ярче остальных, а, допустим, при зажигании определённых катодов - напряжение просаживается;
  • эффекты затухания и возрастания яркости смазываются, так как "компенсируются" изменениями напряжения.
Использование внешнего не стабильного опорного черевато плавающем напряжением на ВВ части. Если мы будем юзать вместо ацп копаратор, то перепрошиваться по сто раз не нужно будет чтобы выставить необходимое напряжение. Если вы так боитесь за порт мк, то превысив 1.1в ничего с ним не случится, защитить дополнительно можно стабилитроном на 5в.
В сборке @adm503 такое регулирование уже используется. Ничем это не чревато. Перепрошиваться не обязательно, достаточно сделать сервисное нажатие кнопок, чтобы изменять порог измерений.
По даташиту МП, Вы не должны превышать опорного напряжения на аналоговом входе, а не напряжения питания. Так как само опорное напряжение нигде не выведено, придётся ограничивать чем-то снаружи, для 1,1В - это весьма проблематично. Я уже не говорю о шумах, которые неизбежно полезут. Да и зачем, если Вы используете компаратор для выставления напряжения, Вам внутреннее опорное напряжение процессора и вообще аналоговый вход?
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
включение неоновых ламп (коих две для 6-лампового варианта, а некоторые умудряются впихнуть и 4) - изменение яркости основных ламп и просадка напряжения;
Согласен, наблюдается просадка с двумя китайскими неонками. Вчера удалось частично победить просадку на плате covid-2019 - установил индуктивность с большим сердечником-гантелькой, хочу также токоограничивающий резисторы заменить(сейчас если не забыл 220кОм). Из наблюдения на оптопарах просадка можно сказать отсутствует, у меня же доработанная плата на транзисторных ключах выполненые smd компонентами на плате размером с оптопару (т.е. можно лего заменить оптопарой без переделки платы)

В сборке @adm503 такое регулирование уже используется
Как калибровать значения функции dc-dc?
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
@psyx86, калибровать? Что Вы под этим подразумеваете?
Под разные типы ламп, хотелось бы понять логику работы этой функции. Т.к. с разными лампами на одной плате результат не однозначный, замер мультиметром с RMS значения напряжения на кондесаторе и анодах отличаются (ин-12 и z5660)
 

poty

★★★★★★✩
19 Фев 2020
3,250
947
Напряжение на анодах и должно отличаться от замены ламп, даже в рамках одного наименования ламп, в достаточно широких пределах.
Напряжение на конденсаторе поддерживается постоянным при условии достаточности дросселя (как по току, так и по соответствию индуктивности отдаваемой мощности). В коде это выражается в том, что ограничены значения PWM, как снизу, так и сверху. Также применено интегрирование на коротком отрезке времени, если есть изменения, которые короче отрезка интегрирования возможно изменение напряжения также. В общем, для лучшего анализа нужно больше информации.
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
Напряжение на анодах и должно отличаться от замены ламп, даже в рамках одного наименования ламп, в достаточно широких пределах.
Напряжение на конденсаторе поддерживается постоянным при условии достаточности дросселя (как по току, так и по соответствию индуктивности отдаваемой мощности). В коде это выражается в том, что ограничены значения PWM, как снизу, так и сверху. Также применено интегрирование на коротком отрезке времени, если есть изменения, которые короче отрезка интегрирования возможно изменение напряжения также. В общем, для лучшего анализа нужно больше информации.
В функции используется переменная:
C++:
const int nominallevel = 550; // номинальное значение напряжения
это значение зависит от сопротивлений делителя?
 

poty

★★★★★★✩
19 Фев 2020
3,250
947
Только отчасти. Первоначальный расчёт был на то, чтобы получить 2,5В (при 5В питании) на аналоговом входе. При 1024 уровнях номинальное значение напряжения должно было соответствовать 512 уровням. Резисторы в делителе выбирались из ряда номинальных сопротивлений, поэтому результат получился чуть выше расчётного, отсюда и изменение номинального цифрового уровня для сравнения = 550. При других напряжениях питания и/или резисторах в делителе это число может быть другим. Им же можно править желаемое значение высокого напряжения (для любителей).
В своей тестовой сборке я применял 4хИН-14 + 2хИН-16 и вторую плату 4хИН-12 + 2хИН-2 с одной и той же базовой платой. Обе платы поддерживают напряжение в 172В при питании 4,95В от зарядника телефона без изменений в скетче. Зафиксированные мной в тестовом скетче колебания не превышали 0,5В. Но с неонками я таким способом не смог побороться, не хватает мощности используемого дросселя для быстрого восполнения потерь в напряжении, хотя эффект значительно сгладился. Увеличил последовательное сопротивление на неонки, эффект изменения яркости основных индикаторов стал незаметен.

P.S. Кстати, имеется возможность замкнув два соседних вывода Ардуино Нано подать на AREF 3,3В, тогда от внешнего питания это вообще зависеть не будет. В коде это - минимальные изменения. Делитель тоже надо будет изменить, но это - один резистор всего.
 

psyx86

★★★★✩✩✩
31 Янв 2020
420
238
Только отчасти. Первоначальный расчёт был на то, чтобы получить 2,5В (при 5В питании) на аналоговом входе. При 1024 уровнях номинальное значение напряжения должно было соответствовать 512 уровням. Резисторы в делителе выбирались из ряда номинальных сопротивлений, поэтому результат получился чуть выше расчётного, отсюда и изменение номинального цифрового уровня для сравнения = 550. При других напряжениях питания и/или резисторах в делителе это число может быть другим. Им же можно править желаемое значение высокого напряжения (для любителей).
В своей тестовой сборке я применял 4хИН-14 + 2хИН-16 и вторую плату 4хИН-12 + 2хИН-2. Обе платы поддерживают напряжение в 172В при питании 4,95В от зарядника телефона. Зафиксированные мной в тестовом скетче колебания не превышали 0,5В. Но с неонками я таким способом не смог побороться, не хватает мощности используемого дросселя для быстрого восполнения потерь в напряжении, хотя эффект значительно сгладился. Увеличил последовательное сопротивление на неонки, эффект изменения яркости основных индикаторов стал незаметен.
Теперь логика функции мне стала понятной, значит правильно изменял значение, у меня вышло 520. Спасибо!
 

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
Не согласен. По опыту сборки устройства на 6 лампах есть очень много дестабилизирующих факторов, например:
  • включение неоновых ламп (коих две для 6-лампового варианта, а некоторые умудряются впихнуть и 4) - изменение яркости основных ламп и просадка напряжения;
  • разное количество горящих индикаторов (особенно заметно на эффектах, когда могут гореть от 0 до 6 ламп) - заметно ухудшаются визуальные эффекты, например, на "поезде" первый вдвигаемый символ получается гораздо ярче остальных, а, допустим, при зажигании определённых катодов - напряжение просаживается;
  • эффекты затухания и возрастания яркости смазываются, так как "компенсируются" изменениями напряжения.

В сборке @adm503 такое регулирование уже используется. Ничем это не чревато. Перепрошиваться не обязательно, достаточно сделать сервисное нажатие кнопок, чтобы изменять порог измерений.
По даташиту МП, Вы не должны превышать опорного напряжения на аналоговом входе, а не напряжения питания. Так как само опорное напряжение нигде не выведено, придётся ограничивать чем-то снаружи, для 1,1В - это весьма проблематично. Я уже не говорю о шумах, которые неизбежно полезут. Да и зачем, если Вы используете компаратор для выставления напряжения, Вам внутреннее опорное напряжение процессора и вообще аналоговый вход?
Нигде не видел чтоб было написано что при использовании внутреннего ИОН нельзя подавать на мультиплексатор ацп выше 1.1в...
Я предлагаю использовать встроенный компаратор в мк, а не внешний. С ИОН 1.1в просто расширяется диапазон регулирования, а аналоговый вход нужен, как ни странно, для того что отрицательный вход компаратора можно подключить только через мультиплексатор ацп. Как по мне это было бы самое удобное для пользователей, имхо.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
Я предлагаю использовать встроенный компаратор в мк, а не внешний.
А какую функцию будет выполнять компаратор? Сигнализировать, что напряжение выше установленного порога? А если ниже, то что делать?
 

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
А какую функцию будет выполнять компаратор? Сигнализировать, что напряжение выше установленного порога? А если ниже, то что делать?
Прерывание будет по любому изменению состояние. Если напряжение на отрицательном входе будет 1.1в или выше то выключаем шим, если ниже то включаем. В основном цикле можно будет добавить динамическое изменение скважности шим в зависимости насколько долго нет изменения состояния компаратора.
 

poty

★★★★★★✩
19 Фев 2020
3,250
947
Нигде не видел чтоб было написано что при использовании внутреннего ИОН нельзя подавать на мультиплексатор ацп выше 1.1в...
Table 28-8. ADC Characteristics
Analog supply voltage AVCC Vcc – 0.3 Vcc + 0.3 V
Reference voltage VREF 1.0 AVCC V
Input voltage Vin GND VREF V

Прерывание будет по любому изменению состояние. Если напряжение на отрицательном входе будет 1.1в или выше то выключаем шим, если ниже то включаем. В основном цикле можно будет добавить динамическое изменение скважности шим в зависимости насколько долго нет изменения состояния компаратора.
ШИМ имеет частоту около 8кГц, примерно с такой же частотой будут пульсации - прерывания могут вызываться с частотой 16кГц (6мкс). Точность компаратора, по верхнему пределу, 40мВ, что существенно ниже нормализованных измерений. Сложность измерений таких коротких периодов, их анализа и компенсации будет существенно больше сложности прямых измерений. Включение/выключение ШИМ не гарантирует мгновенного изменения напряжения, т.е., при возникновении некоторого возмущения система долго будет "сходиться", если не посчитать правильно входную интегрирующую цепь. Не вижу преимуществ.
 

Macbeth

✩✩✩✩✩✩✩
5 Мар 2021
2
0
Sergo_ST
Подскажите, для вашей версии 2.6.4 в полном проекте надо заменить только один (основной) файл? Остальные 0_data, 1_setup и т.д. остаются от оригинального проекта версии 2.5?
И куда установить термодатчик (в схеме Алекса)? Только вместо баззера?
 
Изменено:

Sergo_ST

★★★★★★✩
15 Мар 2020
992
831
Table 28-8. ADC Characteristics
Analog supply voltage AVCC Vcc – 0.3 Vcc + 0.3 V
Reference voltage VREF 1.0 AVCC V
Input voltage Vin GND VREF V
На сколько я знаю это характеристики для ацп, и я конечно не уверен, но по моему это имеется ввиду предел диапазона измерений, а не максимально напряжение для входа...

По поводу что лучше спорить не буду, и та и та схема вполне рабочая.
 

DmitryZ

★✩✩✩✩✩✩
10 Фев 2020
112
34
В основном цикле можно будет добавить динамическое изменение скважности шим
Нет, всё равно не понимаю. Измеряй, например, раз в секунду напряжение - и изменяй скважность. Чего мудрить-то? Это же примитивные часы! Тут же не надо переход нуля, например, ловить, или как-то иначе синхронизироваться с каким-то сигналом. Тем более, плавает напряжение и от выбранной цифры, и на разных индикаторах.

Остаюсь на прежней позиции: поставить внешний ШИМ-контроллер, запитать от 9-12 вольт - и успокоиться.