ARDUINO Проект одноглазый - Одноламповые часы (single digit nixie tube clock)

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Всем доброго времени суток!
В наткнулся случайно на картинку в интернете и захотелось собрать подобное.
Пока веду работы по сборке корпуса, далее будет использовать ИН-4, контроллер Ардуино нано (ШИМ генератор с обвязкой из проекта Гайвера "Часы на ГРИ v2")
, дешифратор К155ИД, DS3231.
Поискав подобные проекты, встречаются многолетней давности на микроконтроллере PIC. а на ардуине парочка (но мез микросхемы и с высоковольтным модулем)
Один интересный скетч от зарубежного автора, правда без электрической схемы, пытаюсь переписать под себя, но пока не очень успешно.
Из проблем:
  • просадки напряжения
  • непонятная реакция кнопок
  • отсутствие 4 неоновых точек (визуализация цикла Ч:Ч:М:М)
Если кому то тема покажется интересной и хотите принять участие, присоединяйтесь
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,230
940
Нужно нарисовать электрическую схему для начала и описать желаемый функционал. Тогда можно будет диагностировать объективные проблемы типа просадки напряжения.
Реакция кнопок - самое простое, что можно отрегулировать.
Про неоновые точки - не понял. На фото я их не вижу, в функциональности - не понимаю, где они будут стоять и для чего?
Я вот не считаю здесь К155ИД1 необходимой. Отдельных транзисторов или транзисторных сборок будет вполне достаточно, по стоимости отдельные транзисторы будут дешевле 155ИД1.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Нужно нарисовать электрическую схему для начала и описать желаемый функционал. Тогда можно будет диагностировать объективные проблемы типа просадки напряжения.
Реакция кнопок - самое простое, что можно отрегулировать.
Про неоновые точки - не понял. На фото я их не вижу, в функциональности - не понимаю, где они будут стоять и для чего?
Я вот не считаю здесь К155ИД1 необходимой. Отдельных транзисторов или транзисторных сборок будет вполне достаточно, по стоимости отдельные транзисторы будут дешевле 155ИД1.
Согласен можно и на транзисторах, но микросхемы у меня в достаточном количестве да и выходов боюсь не хватит.
Но как вариант аскетичности модели рассматривал и транзисторные сборки.
Схемку набросал.
Функционал:
  • синхронизация с DS3231 при отключение питания и раз в сутки ночью
  • кнопки для настройки времени (часы, минуты)
  • контроль анодного напряжения
  • неонки 4 шт (визуальное отображение порядкового периода,т.к. индикатор один и на него по очереди с разным интервалом выводится время Ч-пауза-Ч-пауза по больше-М--пауза-М )
  • режим антиотравления
  • эффект плавного перехода, наложение (если будет читабельно)
  • на перспективу яркость индикатора по фоторезистору, LED подсветка, будильник
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,230
940
Сейчас по такой схеме собрано? В ней очень много ошибок, если честно. Например, комбинации MPSA42/MPSA92 для неонок включены неверно. Я бы также упростил: аноды неонок через 330кОм подключил бы к VCC, катоды неонок к коллекторам MPSA42, эмитттер MPSA42 - на землю, базу - через резистор 1-2кОм - на пины Ардуино. Не знаю, каким образом Вы собираетесь управлять яркостью неонок (и собираетесь ли), но этот момент тоже неплохо бы продумать, чтобы не писать потом простыни в коде.
Высоковольтный DC/DC преобразователь у меня лично нареканий не вызывает, вместе с его делителем для контроля анодного напряжения. Подключение 155ИД1 не проверял, но, надеюсь, перерисовали с ГРИ 2 правильно. Подключение анода ИН-4 я бы реализовал на D10 - можно было бы управлять яркостью с помощью PWM, а не программным образом - проще реализовать. D10 по причине того, что достаточно высокая частота должна будет установлена для соответствующего таймера DC/DC преобразователя, можно её же и использовать для управления яркостью индикатора.
Кнопок почему-то только 2 на схеме? Так и будет?
Ещё, у модуля DS3231 mini есть неподключенный вывод (NC), если его на модуле соединить с ножкой 3 микросхемы (SQW), а на плате подвести его, допустим, к выводу D2 Ардуино, то можно вообще избавиться от необходимости синхронизации - Ардуино будет считать внутреннее время по часам DS3231. Код станет намного проще!
Фоторезистор лучше подключить сразу, добавить в схему две детали ничего не стоит, запрограммировать можно и потом. Собственно, тоже самое касается и подсветки.
Про будильник говорить не буду - в таком варианте он никогда использоваться не будет - слишком сложно его настроить.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Сейчас по такой схеме собрано? В ней очень много ошибок, если честно. Например, комбинации MPSA42/MPSA92 для неонок включены неверно. Я бы также упростил: аноды неонок через 330кОм подключил бы к VCC, катоды неонок к коллекторам MPSA42, эмитттер MPSA42 - на землю, базу - через резистор 1-2кОм - на пины Ардуино. Не знаю, каким образом Вы собираетесь управлять яркостью неонок (и собираетесь ли), но этот момент тоже неплохо бы продумать, чтобы не писать потом простыни в коде.
Высоковольтный DC/DC преобразователь у меня лично нареканий не вызывает, вместе с его делителем для контроля анодного напряжения. Подключение 155ИД1 не проверял, но, надеюсь, перерисовали с ГРИ 2 правильно. Подключение анода ИН-4 я бы реализовал на D10 - можно было бы управлять яркостью с помощью PWM, а не программным образом - проще реализовать. D10 по причине того, что достаточно высокая частота должна будет установлена для соответствующего таймера DC/DC преобразователя, можно её же и использовать для управления яркостью индикатора.
Кнопок почему-то только 2 на схеме? Так и будет?
Ещё, у модуля DS3231 mini есть неподключенный вывод (NC), если его на модуле соединить с ножкой 3 микросхемы (SQW), а на плате подвести его, допустим, к выводу D2 Ардуино, то можно вообще избавиться от необходимости синхронизации - Ардуино будет считать внутреннее время по часам DS3231. Код станет намного проще!
Фоторезистор лучше подключить сразу, добавить в схему две детали ничего не стоит, запрограммировать можно и потом. Собственно, тоже самое касается и подсветки.
Про будильник говорить не буду - в таком варианте он никогда использоваться не будет - слишком сложно его настроить.
Не совсем по этой схеме. Неонки как таковые отсутствую (добавил транзисторное управление по аналогии со своим рабочим вариантом) , для теста использую плату по проекту Гайвера версии 2 (вместо оптопар транзисторные ключи). Про модуль DS3231 и SQW я уже с вами переписывался ранее по другому проекту - поддерживаю нужно добавить в схему.
Управление яркостью самого индикатора, а НЕ неонок планируется.
Кнопок можно и добавить: сделать ВЫБОР, + и -
Управление яркостью пин D10 через PWM - транзисторная сборка справится?
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
Транзисторная сборка, с моей точки зрения, переплюнет здесь оптрон. То есть ответ - справится.
Про неонки: управление по катодам здесь будет более чем уместно. Нет смысла значительно увеличивать количество деталей.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Транзисторная сборка, с моей точки зрения, переплюнет здесь оптрон. То есть ответ - справится.
Про неонки: управление по катодам здесь будет более чем уместно. Нет смысла значительно увеличивать количество деталей.
Вроде все учел. Конденсаторы по питанию можно позже добавить, монтаж навесной
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,230
940
Отлично! Если можно (чтобы оставить возможность повесить на таймер №2 будильник (бипер)) подключите LED к D6, R10 тогда можно подключить к D7, кнопку Set - к D11. И можно уже код писать.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Отлично! Если можно (чтобы оставить возможность повесить на таймер №2 будильник (бипер)) подключите LED к D6, R10 тогда можно подключить к D7, кнопку Set - к D11. И можно уже код писать.
Пищалку можно так же прикрутить в качестве оповещения при перемещении по меню, нажатию на кнопки, сохранении настроек времени
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,230
940
Непонятно как помогать с кодом... Считаю, что нужно идти по шагам с нового проекта. Первым шагом, считаю, надо запустить высоковольтный преобразователь и DS3231. Есть проект COVID-19 у adm503, оттуда можно взять инициализацию DS3231 и код управления высоковольтным напряжением.
Вторым шагом - вывести на индикатор произвольную цифру. Проверить управление яркостью.
Дальше - проверить включение неонок и подсветки.
Собственно, потом останется только логика.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Непонятно как помогать с кодом... Считаю, что нужно идти по шагам с нового проекта. Первым шагом, считаю, надо запустить высоковольтный преобразователь и DS3231. Есть проект COVID-19 у adm503, оттуда можно взять инициализацию DS3231 и код управления высоковольтным напряжением.
Вторым шагом - вывести на индикатор произвольную цифру. Проверить управление яркостью.
Дальше - проверить включение неонок и подсветки.
Собственно, потом останется только логика.
Я так и начал делать, за основу взял проект COVID-19, работу с часами, контроль напряжения. Теперь нужно понять для себя принцип вывода цифр ( хочу оставить маску катодов под разные лампы), но пока не придумал.
В других проектах используют кейсы вывода цифр из даташит на к155ид.
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
В данном случае ничего не меняется за исключением количества индикаторов. В связи с отсутствием необходимости строгой динамической индикации всё сильно упрощается:
1. В D10 устанавливаем PWM = 0;
2. имеющимся кодом COVID-19 устанавливаем отображаемое число в 155ИД1;
3. устанавливаем PWM в нужную яркость (если пересчитывать из ГРИ 2, то там 4 лампы, т.е., PWM = 64);
4. ждём период отображения одной цифры.
5. в D10 устанавливаем PWM = 0;
6. ждём паузу между цифрами;
7. переходим к п. 2.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
btnL:
  • долгое удержание +5 часов;
  • клик +1 час;
btnR:
  • долгое удержание +5 минут;
  • клик +1 минута;
btnSet: переключение подсветки
  • клик (Дыхание, Постоянное свечение, Отключена)

Опции:
  • датчик освещения: нужно доробатывает, сильно чувствителен, резкие изменения на индикаторе (лучше реализовать день/ночь по времени)
  • датчик движения - по истичении времени PIR_TIMEOUT запускает индикатор
  • отображение сигмента времени по индикации (светодиод или неонка) в виде -Ч-Ч-М-М-

Хотелки:
  • добавить режим смены цифр : перебор, плавное появление и угасание
  • доработать настройку времени в формате:
    • горит ledHour1 (иникатор мигает) используются цифры от 0 до 2, кнопки btnL--, btnR++
    • ---- переключение на следующий btnSet клик
    • горит ledHour2 (иникатор мигает) используются цифры от 0 до 3, кнопки btnL--, btnR++
    • ---- переключение на следующий btnSet клик
    • горит ledMins1 (иникатор мигает) используются цифры от 0 до 5, кнопки btnL--, btnR++
    • ---- переключение на следующий btnSet клик
    • горит ledMins1 (иникатор мигает) используются цифры от 0 до 9, кнопки btnL--, btnR++
    • ----- выход btnSet удержание, сохранение настроек
 

Вложения

Habar

✩✩✩✩✩✩✩
22 Апр 2019
6
4
  • датчик освещения: нужно доробатывает, сильно чувствителен, резкие изменения на индикаторе (лучше реализовать день/ночь по времени)
Плавное изменение яркости ни к чему, на мой взгляд. Достаточно одной ступени - день/ночь
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Думаю вообще отказаться. По опыту с другими часами максимальная яркость ночью ни сколько не напрягает глаза на любых лампах. Если только фишки ради, то да. Больше упор на эффекты, перебор и плавные переход.
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
@psyx86, проверьте изменение startup-delay, в настоящее время стабилизация высокого не включается.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
@psyx86, проверьте изменение startup-delay, в настоящее время стабилизация высокого не включается.
Пытался в порт выводить разные значения для отладки, при написании Serial.println индикатор начинал зависать как будто где-то delay. Кое какие данные получил, внес изменения. Не работала стабилизация из-за неправленого перфикса в названии функции, вместо void dooble.
Вообще алгоритм стабилизации логичный, но странный. Изменял значения, на катоде и конденсаторе значения особо не менялись, да и по тлению заряда не особо отличается
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
В оригинальном скетче переменная startup_delay изменяется в функции счёта часов, у Вас этой функции нет, переменная не меняется, алгоритм считает, что не прошло нужное время с включения и не включает стабилизацию.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Понял, значит применим фильтр аналогово сигнала
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
Не понял, причём тут фильтр? Просто уберите условие с переменной или присвойте где-нибудь ей значение 0.
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Корпус делал под ИН-1, но лампа 69года не выдержала, внутри осыпался диэлектрик и разряд уходил между проводками. Пришлось импровизировать.

Тест при подключении питания: перебор цифр;
Нажатие btnSet в режиме часов: переключение подсветки
- клик (Дыхание, Постоянное свечение, Отключена)

Настройка времени в режиме часов:
- Час: удержание btnL (1 разряд и 2 разряд).
горит ledHour1 (иникатор мигает) используются цифры от 0 до 2, кнопка btnL++;
---- переключение на следующий разряд btnSet клик
горит ledHour2 (иникатор мигает) используются цифры от 0 до 3, кнопка btnL++;
---- переключение на следующий разряд btnSet клик (зациклено)
удержание btnSet сохранение и выход в режим часов;

- Минуты: удержание btnR (1 разряд и 2 разряд).
горит ledMins1 (иникатор мигает) используются цифры от 0 до 5, кнопка btnR++;
---- переключение на следующий разряд btnSet клик
горит ledMins2 (иникатор мигает) используются цифры от 0 до 9, кнопка btnR++;
---- переключение на следующий разряд btnSet клик (зациклено)
удержание btnSet сохранение и выход в режим часов;

 

Вложения

Изменено:

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
В общем проект завершен, все поставленные цели достигнут.
Хочу выразить огромное спасибо не равнодушному фанату своего дела @Sergo_ST, за помощь в создании эффектов и приведения скетча в порядок!
Корпус выполнен из медного прутка ф4мм + латунная сетка.
Схема реализована навесным монтажом эмалированным проводом от старого советского трансформатора.

  • Тест при подключении питания: перебор цифр и лампочек (можно отключить);
  • Переключение подсветки с кнопки btnSet (Дыхание, Постоянное свечение, Отключена);
  • Переключение эффектов btnR :
  • 0 - нет эффекта
  • 1 - плавное угасание и появление
  • 2 - перемотка по порядку числа
  • 3 - перемотка до текущего разряда времени
  • Опционально датчик движения и освещения (не подключал - проверка не проводилась)

 

Вложения

Изменено:
  • Лойс +1
Реакции: sigma5, mehub и SL.y

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Отличный проект! Ин-1, ин-4 прекрасно вписываются к этому проекту. (y)
 
  • Лойс +1
Реакции: psyx86