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

Часы на ГРИ v1. Обсуждение проекта
Перечень компонентов с возможной заменой.
Список корректируется по ходу накопления опыта форумчан.

Алекс предоставил несколько версий плат под следующие индикаторы:
ИН-14 6 шт либо,
ИН-14 4шт на часы, минуты и ИН-16 2шт на секунды, либо
ИН-12 6шт
Также для схемы подойдут любые цифровые газоразрядные индикаторы ИН, но плату индикации придётся доработать самостоятельно.


R1 220 Ом 1 шт Заменить на 0,2 ом(кусочек нихромовой проволочки)
остальные резисторы 0.125 Вт , 0,25Вт, любые (главное чтобы умещались на плате)
330 Ом 2 шт R3, R4
470 Ом 1 шт R7
3 кОм 1 шт R14
10 кОм 3 шт R10, R13
33 кОм 1 шт R15
390 кОм 1 шт R5
1 МОм 1 шт R6

250 кОм 1 шт R8 - Не нужен, если вместо него поставить перемычку И
паять последовательно к каждой лампе свой резистор 200-500 кОм(от R зависит яркость)

транзисторы биполярные:
KT3102 1 шт Т2 (любой n-p-n транзистор подходящего габарита, например КТ315, КТ503 и т.п)
КТ3107 1шт Т3 (любой p-n-р транзистор подходящего габарита, например КТ361, КТ502 и т.п)
mosfet
IRF840 1 шт Т4
конденсаторы:
10 мкф 16В 2 шт С3, С4 (стоят на питании схемы. Чем больше номинал, тем лучше)
4.7 мкф 400В 1 шт С 10 (любое близкое значение номинала и напряжения)

0.1 мкф 1 шт С5 керамические подходящего габарита
510 пф 1 шт С8 керамические подходящего габарита
С1, С2 - От 0,033 до 1мкф Керамические подходящего габарита. Номинал не принципиален. Помехоподавление по питанию.
TLP627 7 шт - оптопары
к155ид1 1 шт - дешифратор Аналог SN74141
MC34063 1 шт - схема управления преобразователем напряжения
LM7805 1 шт - стабилизатор на 5в. (Отечественный аналог КР142ЕН5)
HER106 1 ШТ - быстродействующий диод (аналоги в яндекс)
240uH 1 шт - дроссель на 240мкГн (либо ближайший номинал)
Ds3231 1 шт - модуль часов
***************************************************************************************************
Доп. модули и их обвязка: (опционально)
Без этих деталей часы всё равно будут работать.

DHT22 1 шт - датчик температуры и влажности
10 кОм 1 шт R10

ds18b20 1 шт - датчик температуры
4.7 кОм 1 шт R9

PIEZO 1 шт - пищалка Q1
1кОм 2 шт R11, R12 620 - 1,5к
ВС547 1 шт Т1 для пищалки(любой n-p-n транзистор подходящего габарита, например КТ3102, КТ315, КТ503 и т.п)

Ниже есть схема, трассировка и рисунок платы с различными версиями отрезной части под индикаторы.
Плата состоит из двух деталей, размер снят по линиям шелкографии:
160х66 основная,
153х27 плата индикаторов (под Ин-12 размер отличается)
 

Вложения

Изменено:

Комментарии

poty

★★★★★★✩
19 Фев 2020
3,418
977
Если лампы сильно мерцали, стоило посмотреть причину этого в скетче. Возможно, что-то было изменено по сравнению с оригинальным скетчем, что сильно удлинило обработку между проверками таймеров динамического отображения ламп.
А теперь - немного математики:
  • начальные условия: время включения оптопар = 5мкс, время выключения оптопар 80мкс (если они не поддельные);
  • оцениваем время горения цифр за секунду для двух вариантов: 2200мкс горения / 800мкс выключено (оригинальный) и 1700мкс горения / 755мкс выключено (Ваш).
Для справки, для оригинального скетча (6 ламп + точка) частота мерцания оригинальных настроек 1/(3мс*7)=47Гц, Ваших - 1/(2,455*7)=58Гц. Путём включения точки во время горения одной из ламп для оригинальных настроек частоту можно поднять до 55Гц, для Ваших - до 67Гц. В реальности, за счёт того, что используется программный таймер, эти времена могут увеличиваться (соответственно, частоты - уменьшаться) :-(.
Итак, время горения неонок:
  • для оригинального варианта: количество циклов в секунде (определено выше) 47,6, время горения (2200-5+80)*47,6 = 108,3мс;
  • для Вашего варианта: количество циклов в секунде (определено выше) 58,2, время горения (1700-5+80)*58,2 = 103,3мс.

  • для оригинального варианта с оптимизированной точкой: 126,4мс;
  • для Вашего варианта с оптимизированной точкой: 120,5мс.

Как видим, при прочих равных, время горения (а значит и яркость неонок) для Ваших установок уменьшается. Вам нужно увеличить цифру 1700. Как я уже отмечал, из-за программного определения указанных промежутков, если есть задержки в коде, уменьшение периода переключения ламп может ещё больше уменьшить время их горения.
 
Изменено:
  • Лойс +1
Реакции: R-tem и un4orgiv

gnomik194

✩✩✩✩✩✩✩
13 Сен 2020
7
0
При запуски первая и последняя лампа отсчитывают секунды и часы в целом показывают рандом набор цифр.. Но в меню настройки времени, настроить время могу. Но часы все равно показывают так.
Что может быть?
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,418
977
В меню настройки времени секунды на своём месте?
Очень похоже, что здесь две проблемы:
1. Неверно заданы маски разрядов. Возможно, также неверны маски декодера. Нужно больше информации: фото (видео) проблемы, настройки часов...
2. Случайные цифры на индикаторе могут быть из-за модуля RTC, в последнее время что-то увеличилось количество претензий к ним. Посмотрите на последние сообщения в ветке по часам версии 2.
 

Tolik_STSH

✩✩✩✩✩✩✩
10 Авг 2019
15
8
Спасибо за ответ, значит буду пробовать дальше. ))
Продаются отсосы для припоя, стоят недорого, рублей 300.

На конденсаторе 176-177 вольт. Яркость в скетче выставил обе на 100. Но по ощущениям горят они процентов на 35 мощности.
Да. Фото тусклого горения желательно увидеть. Да вы и сами можете сравнить ваше фото с имеющимися здесь же на форуме, возможно вам просто кажется что свет тусклый.

вот я так хочу попробовать.. какие контакты надо подпаять-то? не все же в программировании задействованы?
Вообще, поидее, чтобы прошить уже в часах ардуину нужно отпаять пины RX и TX просто от платы чтобы они были незадействованы, после прошить обычно через USB и запаять их назад.
 
  • Лойс +1
Реакции: shtrlz

kofe88

✩✩✩✩✩✩✩
23 Мар 2020
3
0
Товарищи, я с таким же вопросом, лампы горят тускло, в момент включения и прогона каждой ярко, рядом для сравнения 2-я версия часов на ин-12. Как поднять яркость? Прошивка вот эта https://community.alexgyver.ru/threads/chasy-na-gri-v1-obsuzhdenie-proekta.715/post-25639
Ставил и дневную и ночную на 100, все равно тускло. На кондере 180в, все элементы из той же партии что и для ин-12, соответственно кроме некоторых.
 

Вложения

Изменено:

shtrlz

★★★★✩✩✩
23 Апр 2019
271
208
москва
oppozit.ru
нужно отпаять пины RX и TX просто от платы чтобы они были незадействованы
в данной плате (тонкие от сухарика) они (rx и tx) не задействованы. просто припаялся и подпаял ардуину без чипа. (сделал некий переходник). все прошивается "на ура".
 

Dimasssiusis

★✩✩✩✩✩✩
20 Янв 2020
128
49
Товарищи, может кто знает аналог IRF840 но в SMD исполнении?Возможно ли использовать вместо него этот транзистор?


Был бы очень благодарен
 

shtrlz

★★★★✩✩✩
23 Апр 2019
271
208
москва
oppozit.ru
а вот у меня вопрос такой - зачем тумблер будильника вешать на пин? почему нельзя просто тупо выключать динамик?
порассуждаем?
 

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

★★★★★★★
14 Авг 2019
4,295
1,310
Москва
Собрал сегодня свой комплект часов на 6 ламп, полученный по бартеру от Dimasssiusis, за что ему отдельное спасибо.

Если делать все не торопясь и аккуратно , то проблем никаких быть не должно. Как делал я: спаял нижнюю часть полностью, отмыл, перепаял конденсатор на нижнюю часть, что бы легче было прошивать ардуину, отмыл. Залили i2c scaner, убедился, что часы видны, да, до этого заранее убедился, что часы работают. Залил прошивку на тест ламп. напряжение вставил 190 в. Залил опять сканер.
Далее спаял часть верхней платы: адресные светодиоды. Проверил, на работоспособность, перепаял один, еще раз проверил. Все работает. Далее смд часть и сокеты под лампы. Отмыл. Отмыл. Отмыл. Собрал, прошил, все работает. Прошивка тоже от Dimasssiusis , но т.к. схема стандартная (вроде бы) то должны подходить любые на 6 ламп. Из минусов есть слегка заметное паразитное свечение на десятках секунд от единиц секунд. Поэтому отмыл еще раз. Пока убрал в коробочку.
Останется только изуродовать прошивку под свой вкус и напечатать корпус.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
523
229
Собрал сегодня свой комплект часов на 6 ламп, полученный по бартеру от Dimasssiusis, за что ему отдельное спасибо.

Если делать все не торопясь и аккуратно , то проблем никаких быть не должно. Как делал я: спаял нижнюю часть полностью, отмыл, перепаял конденсатор на нижнюю часть, что бы легче было прошивать ардуину, отмыл. Залили i2c scaner, убедился, что часы видны, да, до этого заранее убедился, что часы работают. Залил прошивку на тест ламп. напряжение вставил 190 в. Залил опять сканер.
Далее спаял часть верхней платы: адресные светодиоды. Проверил, на работоспособность, перепаял один, еще раз проверил. Все работает. Далее смд часть и сокеты под лампы. Отмыл. Отмыл. Отмыл. Собрал, прошил, все работает. Прошивка тоже от Dimasssiusis , но т.к. схема стандартная (вроде бы) то должны подходить любые на 6 ламп. Из минусов есть слегка заметное паразитное свечение на десятках секунд от единиц секунд. Поэтому отмыл еще раз. Пока убрал в коробочку.
Останется только изуродовать прошивку под свой вкус и напечатать корпус.
а ссылку на проект дайте!
 

Dimasssiusis

★✩✩✩✩✩✩
20 Янв 2020
128
49
а ссылку на проект дайте!
Здравствуйте! Платки - моя вариация гайверовских часов, тут как-то пару раз про них писал
Есть две версии, на 4 и на 6 ламп, обе основаны на второй версии часов гайвера, но улучшены и имеют сверхкомпактный размер

По мимо всего прочего есть верхушка под все советские индикаторы, верхушка взаимозаменяема
Пока под разные платы есть только на 4 индикатора, но на 6 уже в пути платы под разные индикаторы

Так же написана новая прошивка товарищем Старик Похабыч с кучей возможностей, тонна красивых эффектов подсветки и прочее

К сожалению в открытый доступ исходники не скину, но если кому интересно - пишите, поговорим

photo5258496664753254520.jpg photo5258496664753254521.jpg photo5258496664753254522.jpg photo5258496664753254523.jpg photo5258496664753254524.jpg photo5258496664753254525.jpg photo5258496664753254518.jpg photo5258496664753254519.jpg
 
  • Лойс +1
Реакции: Kolotoff

technotrasher

★★★★✩✩✩
14 Ноя 2019
523
229
а. я понял. не. у меня и мой вариант отлично работает. постоянно дорабатываю. gps заинтересовал. заказал - попробую тоже добавить. но я все раздаю бесплатно. :) в первой версии добавил эффекты подсветки. сейчас доделываю, чтобы и ночью не мешала и днем была интересная и достаточно яркая. а вот с корпусами плохо. я заказываю сам корпуса в солид ворксе за деньги. и потом отдаю тоже бесплатно всем. :)
 
  • Красота! +2
  • Лойс +1
Реакции: shtrlz и Dimasssiusis

Dimasssiusis

★✩✩✩✩✩✩
20 Янв 2020
128
49
а. я понял. не. у меня и мой вариант отлично работает. постоянно дорабатываю. gps заинтересовал. заказал - попробую тоже добавить. но я все раздаю бесплатно. :) в первой версии добавил эффекты подсветки. сейчас доделываю, чтобы и ночью не мешала и днем была интересная и достаточно яркая. а вот с корпусами плохо. я заказываю сам корпуса в солид ворксе за деньги. и потом отдаю тоже бесплатно всем. :)
Я уже тоже столько часов раздарил, что не сосчитать))
 

shtrlz

★★★★✩✩✩
23 Апр 2019
271
208
москва
oppozit.ru
а кто-то реально замерял - сколько в микромодуле RTC батарейка продержится если часы выключены будут...
 

poty

★★★★★★✩
19 Фев 2020
3,418
977
Они разные бывают. Просто алкалиновая батарейка - примерно 2-3 года. Аккумулятор LiIon - примерно год. Ионистор - у меня продержался 8 месяцев.
Про батарейку и аккумулятор - примерный подсчёт по току потребления.
 

shtrlz

★★★★✩✩✩
23 Апр 2019
271
208
москва
oppozit.ru
программисты, подскажите решение (я не программист, я копипастер), хочу будильник заставить играть мелодию. попробовал библиотеку TimerFreeTone , но он пока не отработает всю мелодию, не дает часам идти. собственно индикация останавливается... но светится... как бы запустить процесс параллельно?...

чтоб "мелодия" начала играть, а время продолжало идти?

C++:
byte minsCount = 0;

void calculateTime() {
      dotFlag = !dotFlag;
      newTimeFlag = true; 
        if (dotFlag) {
        secs++;

                if (hrs==BUDLO && alarm_flag &&
                 mins==59 && secs==59) {
                  TimerFreeTone(PIEZO, 670, 100, 8);                       
                  TimerFreeTone(PIEZO, 450, 300, 8);                       
                  TimerFreeTone(PIEZO, 1420, 100, 8);                       
                  TimerFreeTone(PIEZO, 1840, 50, 8);                       
                  TimerFreeTone(PIEZO, 1200, 300, 8);                       
                  TimerFreeTone(PIEZO, 630, 470, 8);                       
                  TimerFreeTone(PIEZO, 350, 200, 8);                       
              }         

        if (secs > 59) {
          secs = 0;
          mins++;
          
        if (mins % BURN_PERIOD == 0) burnIndicators();
        }
    
      if (mins > 59) {
      mins = 0;
      hrs++;
      if (hrs > 23) hrs = 0; changeBright();
      }

    if (newTimeFlag) setNewTime();   
  }
}
 

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

★★★★★★★
14 Авг 2019
4,295
1,310
Москва
@shtrlz,
На самом деле очень хлопотно. Надо завести буфер с нотами, надо следить за портом, который играет , тот, что PIEZO, следить в цикле или вешать прерывание , даже не скажу точно как. Как только перестал играть надо запускать новую ноту, до опустошения буфера. Т.е. это возможно! Если с прерыванием, то будет прилично, а если в цикл loop делать tick, то качество будет зависеть от цикла, может быть нормально, а могут быть противно-длительные паузы между нотами. Длительные это условно, но на качестве музыки может сказаться.
 

poty

★★★★★★✩
19 Фев 2020
3,418
977
В первой версии loop обеспечивает динамическое переключение ламп (как минимум каждые 3мс), поэтому серьёзных задержек не будет гарантированно. Да и "качество музыки" по отношению к биперу - понятие весьма относительное. Поэтому - да: делаем три массива (частота, продолжительность звука, продолжительность паузы) с запоминанием размерности в переменной, определяем программный таймер (хоть бы и Гайвера), добавляем четыре переменных (boolean soundOn, определяющую играть ли музыку, int noteNum - для движения по массивам, boolean isSound - играем ноту или держим паузу, boolean soundInit - начали ли играть музыку или нет), определяем где-нибудь в loop функцию, в которой выполняем озвучку и всё.
В модуль включения звука вместо TimerFreeTone вставляем:
soundOn = true;
soundInit = false;

В модуль выключения звука (например, по кнопке) добавляем:
soundOn = false;

Саму функцию тоже можно легко написать.
А вообще - я бы оформил это как класс C++ и использовал аналогично библиотекам.
 
Изменено:
  • Лойс +1
Реакции: technotrasher и VGUH

VGUH

✩✩✩✩✩✩✩
7 Июн 2020
5
1
Всем привет! Ребят подскажите что не так ...
Собрал часы , работают !) но почему то мигает только неонка которая на секундах. между часами и минутами даже не горит.
Куда копать ?