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

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Всегда было интересно - почему легче написать в форум, чем взять мультиметр и постараться самостоятельно найти причину. там конструкция элементрана!!!! ну реально ясновидцы в отпуске. конденсаторы не могли поджариться. если 1000 вольт не пустили туда. и не купили брак на али.
процесс поиска такой - снимайте ардуину, модуль времени, шифратор. меряйте напряжения с бп. и какой бп используете. смотрите есть ли высокое напряжение. выпаять и проверить саму кренку. далее тестером конденсаторы проверить. ну резисторы я бы тоже проверил, если на али брали. там сюрпризы бывали.
 

gnomik194

✩✩✩✩✩✩✩
13 Сен 2020
7
0
Всегда было интересно - почему легче написать в форум, чем взять мультиметр и постараться самостоятельно найти причину. там конструкция элементрана!!!! ну реально ясновидцы в отпуске. конденсаторы не могли поджариться. если 1000 вольт не пустили туда. и не купили брак на али.
процесс поиска такой - снимайте ардуину, модуль времени, шифратор. меряйте напряжения с бп. и какой бп используете. смотрите есть ли высокое напряжение. выпаять и проверить саму кренку. далее тестером конденсаторы проверить. ну резисторы я бы тоже проверил, если на али брали. там сюрпризы бывали.
Потому что я не электронщик и собирал часы по инструкции. С чего бы мне разбираться?
Спасибо.
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Потому что я не электронщик и собирал часы по инструкции. С чего бы мне разбираться?
Спасибо.
Скинь лампы. Зацепи на LMку радиатор для охлаждения. Если есть возможность скинуть основные элементы, лучше конечно скинуть. Возьми мультиметр. Выставляешь режим V+- Напряжение вольтметра должно быть выше измеряемого напряжения. Черный щуп на среднюю ногу LM, красную на 1 ногу. Смотрим сколько приходит на LMку диапазон работоспособности схемы от 9 до 12 V. Далее красный щуп кидай на 3 ногу, мы узнаем сколько на выходе у стабилизатора. Должно быть 5. Сделаешь это напишешь.
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
Да, советы всё разобрать вызвали улыбку. Лампы горят, значит, высоковольтная часть работает. Греется LM, значит проблема в той части, что питается от 5В. Нужно искать проблему в этой части. Насколько я помню, там всего 4 потребителя: Ардуино, 155ИД1, DS3231, пищалка с транзистором. Не помню, драйвер MOSFET от 5В питается или от 12? Начал бы с пищалки. Вообще стоит пройтись по плате с прозвонкой, может короткое замыкание где образовалось.

P.S. забыл, что есть ещё датчик температуры/влажности, но на фото его не наблюдаю, скорее просто не установлен.
 
Изменено:

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Да, советы всё разобрать вызвали улыбку. Лампы горят, значит, высоковольтная часть работает. Греется LM, значит проблема в той части, что питается от 5В. Нужно искать проблему в этой части. Насколько я помню, там всего 4 потребителя: Ардуино, 155ИД1, DS3231, пищалка с транзистором. Не помню, драйвер MOSFET от 5В питается или от 12? Начал бы с пищалки. Вообще стоит пройтись по плате с прозвонкой, может короткое замыкание где образовалось.

P.S. забыл, что есть ещё датчик температуры/влажности, но на фото его не наблюдаю, скорее просто не установлен.
Лампы работают, разряд есть, но работают не корректно. Советы по разбору не напрасны, если будет пробой на lm из-за перегрева, прощай потребитель.

Я не имел ввиду распаивать. Скинуть тот же ИД1. Но пригляделся к фото, он тоже припаян. Как новичку звонить то, незная чего?
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
В первую очередь я бы прошёлся по дорожкам +5В с лупой. Это можно сделать вообще не зная ничего про электричество. Потом выпаял сам LM. И омметром померил сопротивление между линиями 5В и землёй. Жалко, что нет принципиальной схемы с нотацией элементов, было бы проще.
Если после этого на линии сопротивление маленькое (скажем, меньше 10-20 Ом), выпаял бы двуножечные элементы: электролитический конденсатор и пищалку. Снова бы померил... Затем - DS или DHT... И т.д. Выпаивать Ардуино сложнее всего, а проверить её можно прямо в плате с помощью штатного USB-разъема, если по линии 5В норма, конечно.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
вапаивать ардуину??? а.... точно. на колодки же не говорили ставить. это беда будет, если с ней что то.
и да. верно - проверять сопротивление по входу сразу. но если пробита таже ардуина или дешифратор без съема их не найти причину.
а проверять бп обязательно. данная ситуация не просто так возникла. что то или пробило или сгорело. может и в самом бп.
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
Если что-то потребляет настолько большой ток, то и греться должно прилично. Если после выпайки "двуножечных" и тех, кого выпаять легко, проблема не нашлась, можно пойти по пути силового вмешательства: достать где-нибудь мощный блок питания 5В, ампер под 5 и подключить его к шинам +5В и земля. Место замыкания тут же обнаружится. Правда, по симптомам я не уверен, что это "прямое к.з.". Если пробило, допустим, одну из оптопар (редко, но бывает), то можно зазря спалить Ардуино.
Но всё это предположения требующие проверки. И чем больше информации будет собрано до использования лома, тем меньше ущерб.
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Часы почти собрал на in16, корпус хочу в виде ТNT сделать. Но вот в чем загвоздка, сложно ли будет сделать такую фишку, когда остаётся 10 секунд до нового часа, включается бузер и начинает пищать все чаще? Ну наверное для удобства через define
 

Вложения

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

★★★★★★★
14 Авг 2019
4,256
1,299
Москва
Сделать можно все... Но за 10 секунд Вы очумеете с писком.. А сложно или нет.. ну это кому как. Каждый час это 3600 секунд. Вам нужно отследить 3590 секунду и начиная с нее мучить слух бузером. Если перевести текущее время в секунды и от этого числа взять остаток от деления на 3600 как раз и будет число от 0 до 3599, а его уже можно сравнивать с 3590. Это коротко о том , как отследить последние 10 секунд. А как заставить бузер пищать чаще и чаще придумывайте сами
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
В этих часах есть минуты и секунды в виде переменных, поэтому можно ничего в секунды и не переводить. Управление бузером здесь можно сделать какое угодно (tone не заблокирован прерываниями). Вот только зачем? Да, необходимость такой доработки вообще не очевидна, с этим согласен.
 

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

★★★★★★★
14 Авг 2019
4,256
1,299
Москва
@poty, На мой взгляд с переводом в секунды будет несколько проще условие соблюсти.. Да, часы не надо переводить. Надо минуты и секунды привести к секундам и можно остаток от деления не брать .
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
@Старик Похабыч, там всё проще, уже есть ветки инкремента минут и секунд, они не в прерывании обновляются. Поэтому пропустить нужную минуту (59) и секунду (50) не получится.
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Так а цель-то какая? Что этим добиваетесь?
Наверное просто на будильник поставить попробую. Цель: Имитировать звук. Вот из проекта CSGO выдернул.

void get_time() { //функция таймера обратного отсчёта
if (millis() - last_time >= 500) {
if (minutes == 0 && seconds <= 15) { //если минут 0 и секунд меньше 15
tone(speaker_pin, 4000, 100); //пищать!
}
last_time = millis();
milseconds++;
if (milseconds == 1) {
disp.point(POINT_OFF);
} else {
disp.point(POINT_ON);
}
if (milseconds >= 2) {
milseconds = 0;
seconds--;
if (minutes == 0 && seconds < 0) {
charge_mode = 1;
}
if (seconds < 0) {
seconds = 59;
minutes--;
}
if (minutes == 0 && seconds < 30 && seconds > 15) { //если минут 0 и секунд меньше от 30 до 15
tone(speaker_pin, 4000, 100); //пищать!
}
}
}
}
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Всем привет. Не могу решить такую задачу. Хотел поставить точки, но решил переиграть, и запустить штатные точки ин-16. Подключил тиристор в качестве ключа. Точки горят постоянно, вобщем фокус не удался. Но вот интересно, если держать управляющий электрод, то точка начинает моргать))). Или через mosfet будет удачным вариантом? Тогда могу ли я управлять затвором с 5v?
 

Вложения

poty

★★★★★★✩
19 Фев 2020
3,223
937
А почему бы не использовать штатный оптрон? Единственное, что нужно сделать - изменить его подключение. Зачем такие навороты?
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Всем привет. Не могу решить такую задачу. Хотел поставить точки, но решил переиграть, и запустить штатные точки ин-16. Подключил тиристор в качестве ключа. Точки горят постоянно, вобщем фокус не удался. Но вот интересно, если держать управляющий электрод, то точка начинает моргать))). Или через mosfet будет удачным вариантом? Тогда могу ли я управлять затвором с 5v?
к ИН-12Б я через пин dot в ардуино подключал точку по схеме:
 

Вложения

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Работает? Попробовал по схеме, не запускается. Есть слабое очертание, но запустить не удалось. Светодиод подключал к pin dot работает правильно.
По этой схема, часы на ин-12 уже как год работаю, на точку должен приходить минус
 

psyx86

★★★★✩✩✩
31 Янв 2020
413
235
Если бросить ее на минус, она будет постоянно гореть. По схеме катод идёт на коллектор транзистора под управлением базы.
Попросил подругу, найти макет... это был еще тот номер в объяснении что я хочу)))).... В общем, схема касячная, но собрана правильно, посмотрел по дорожкам
 

Вложения

Изменено:

poty

★★★★★★✩
19 Фев 2020
3,223
937
Это как? Катод точки бросить на коллектор оптрона?
Да. Соединить эмиттер с землёй при этом.
Работает? Попробовал по схеме, не запускается. Есть слабое очертание, но запустить не удалось. Светодиод подключал к pin dot работает правильно.
Такое включение (как, впрочем, и включение с оптроном) требует одновременного подключения анода в разряде лампы и сигнала точки. Т.е., изменения в коде.
@psyx86, в последнем сообщении перепутан коллектор и эмиттер.
 

poty

★★★★★★✩
19 Фев 2020
3,223
937
Я так пробовал, едва видно. Зачем нам зажигать лампу, если напряжение на лампу подаётся каждые 10 мс?
Если брать оригинальный скетч Алекса версии 1.3, то напряжение на лампу подаётся каждые 7(ламп, включая неонку)*3мс=21мс. В момент, когда включается неонка, напряжение не подаётся ни на одну другую лампу (в оригинальном скетче неонка зажигается по аноду):
Код отображения ламп:
void showDigits() {
  if (indState) {
    indState = false;
    redrawTimer.setInterval(on_time);   // переставляем таймер, столько индикаторы будут светить
    counter++;                          // счётчик бегает по индикаторам (0 - 6)
    if (counter > 6) counter = 0;

    if (counter != 0) {                   // если это не точка
      setDigit(digitsDraw[counter]);      // отображаем ЦИФРУ в её ИНДИКАТОР
      digitalWrite(opts[counter], 1);     // включаем текущий индикатор
    } else {                              // если это точка
      if (dotFlag)
        if (mode != 1) digitalWrite(opts[counter], 1);   // включаем точку
        else
          digitalWrite(opts[counter], 0);   // выключаем точку
    }

  } else {
    indState = true;
    digitalWrite(opts[counter], 0);                 // выключаем текущий индикатор
    //setDigit(10);
    redrawTimer.setInterval(REDRAW_TIME - on_time); // переставляем таймер, столько индикаторы будут выключены
  }
}
Потому у Вас ничего и не работает. Точно также, без изменения в скетче, не будет работать вариант с транзистором.
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
150
44
Если брать оригинальный скетч Алекса версии 1.3, то напряжение на лампу подаётся каждые 7(ламп, включая неонку)*3мс=21мс. В момент, когда включается неонка, напряжение не подаётся ни на одну другую лампу (в оригинальном скетче неонка зажигается по аноду):
Код отображения ламп:
void showDigits() {
  if (indState) {
    indState = false;
    redrawTimer.setInterval(on_time);   // переставляем таймер, столько индикаторы будут светить
    counter++;                          // счётчик бегает по индикаторам (0 - 6)
    if (counter > 6) counter = 0;

    if (counter != 0) {                   // если это не точка
      setDigit(digitsDraw[counter]);      // отображаем ЦИФРУ в её ИНДИКАТОР
      digitalWrite(opts[counter], 1);     // включаем текущий индикатор
    } else {                              // если это точка
      if (dotFlag)
        if (mode != 1) digitalWrite(opts[counter], 1);   // включаем точку
        else
          digitalWrite(opts[counter], 0);   // выключаем точку
    }

  } else {
    indState = true;
    digitalWrite(opts[counter], 0);                 // выключаем текущий индикатор
    //setDigit(10);
    redrawTimer.setInterval(REDRAW_TIME - on_time); // переставляем таймер, столько индикаторы будут выключены
  }
}
Потому у Вас ничего и не работает. Точно также, без изменения в скетче, не будет работать вариант с транзистором.
Железный аргумент.