"Индикация светом" - это светодиод на 13й ноге, не фонарик. Были предложения на фонарик повесить стробоскоп по аварийному пределу, но это точно не из первоочередных доработок. Пока по основному функционалу вопросов много. Потому и интерфейс не трогаю, хотя оба меню давно пора переделать.
По зарядке. На платках с TP4056 есть светодиоды индикации заряда и окончания, проще их вывести на корпус или поставить сбоку от дисплея, цветная засветка будет индицировать процесс.
Там в таком виде и во втором уровне нет никакого смысла. Сигнализация первого уровня должна быть привязана к длительному замеру, это позволит выделять малые уровни превышения над фоном (15-40 мкР/ч) без ложных срабатываний. Сигнализация второго уровня должна быть привязана к кратковременному замеру (36 секунд для СБМ-20) при низком фоне, или при превышении определённого количества импульсов даже если этот период ещё не закончился (чтобы прибор не ждал окончания периода для выдачи сигнала, а пользователь уже через пару секунд сверкал пятками). Этот порог должен начинаться от 60-100 мкР/ч. Плюс продумать временное отключение/сброс тревоги с последующим автовключением или напоминанием, что фон ещё не ниже порога.
Так сигналка 2 и работает в режиме фонового замера. Она не связана с первым уровнем. Логика работы как у той сигналки, только значения другие и сигнализация непереставая работает при превышении.
то есть она перестанет орать только при понижении фона ниже установленного, либо сброса.
Она не способна увидеть стабильное небольшое превышение. Если поставить порог 25 при фоне 15 она периодически будет давать ложные срабатывания. Смотрите код основного замера (большие цифры) и длительного (малые вверху). Одна авария должна работать по малому скользящему окну (часть массива данных), при этом контролировать сумму недавно внесённых в массив данных на предмет превышения некоего количества импульсов внутри этого малого окна, для уровней свыше 100 и быстрой реакции, вторая брать за основу данные всего массива, что позволит получить меньший разброс показаний и более точное значение фона, для низких уровней аварии. Поскольку для этого массив должен быть набран целиком - аварийный сигнал сработает позже. Для низких уровней это некритично, но исключает ложную тревогу, а при высоких раньше сработает второй уровень. Плюс надо задать логику при сработке второго уровня для временного отключения первого.
Если надо более детально - пишите на мыло, покажу к каким переменным надо привязаться. С телефона код нормально не почитаешь, а я в него уже давно не заглядывал.
По мне так и не надо ставить порог вроде 25. О чем сигнализирует такая сигналка ? Опасности никакой нет, а где то в районе 50 уже от фона не сработает случайно.
Ну вот. Первую сигналку сделать по верхним цифрам. Тобишь для малых значений. Например коротковременный сигнал что фон выше нормы. Например 30. Не опасно, но просто проинформирует что превышение.
второй же, сигналка как я ее назвал.
Будет работать в зависимости от больших цифр и маленьких. Наприпер в 500микрорентген.
здесь точные значения не нужны, да и скорость +-3 секунды не критично, не стоит усложнять код из-за пары секунд. Тут главное что бы проинформировать о грязной зоне.
Эта сигналка нужна для «невидимого» использования радиометра. Тобишь когда он у тебя в кармане. Ты идешь. Порог выставлен в 500 и фон начинает превышать этот порог то начинает орать сигналка значит что надо уходить от туда.
При резком наборе фона она так и так сработает при данном коде.
Ну вот. Первую сигналку сделать по верхним цифрам. Тобишь для малых значений. Например коротковременный сигнал что фон выше нормы. Например 30. Не опасно, но просто проинформирует что превышение.
второй же, сигналка как я ее назвал.
Будет работать в зависимости от больших цифр и маленьких. Наприпер в 500микрорентген.
В плане индикации всё верно. Но это должны быть не разные уровни одной переменной, а взятые с разных переменных, плюс для малого уровня должна быть дополнительная функция с логикой "или".
OfficialGalkin пишет:
...скорость +-3 секунды не критично...
OfficialGalkin пишет:
При резком наборе фона она так и так сработает при данном коде.
Не сразу, будет задержка, и большая, пока выровняется усреднение в массиве из 36 отсчётов. Быстро сработает только при сбросе или сразу после включения, когда счёт идёт похпервым элементам массива.
Morroc, низкий порог ставить можно, но не менее трёхкратного превышения фона и только по длительному замеру, с максимальным усреднением. Пользоваться или нет - дело пользователя, можно будет просто выключить.
Говорю сразу, аварийную сигнализацию в ближайшие месяцы трогать не буду. Первоочередное - изменение алгоритма счёта, с упором на более быструю реакцию на изменение фона.
float batnapruga = 3.20; //Настройка минимального значения напряжения акб для отображения. Зависит от работоспособности вашей схемы. Обычно 3.20 вольта by OfficialGalkin
Обратный отсчёт. Без красивостей в виде нуля перед единицами секунд и с мелким багом на последней секунде. Возможен в индикации сдвиг на одну секунду. В принципе пофиксить можно, но соображалка сейчас работает со скрипом))
if (bet_z < 2) //таймер выводим только пока идёт первый или второй замер
{
myGLCD.setFont(TinyFontRus);
myGLCD.printNumI((beta_time - minute -1), LEFT, 0);
if (toch == 0)
{
myGLCD.print(":", 5 + otsup, 0);
}
else
{
myGLCD.print(" ", 5 + otsup, 0);
}
myGLCD.printNumI((60 - sek), 10 + otsup, 0); myGLCD.print("\xBC"":""\xB9", 23 + otsup, 0);
Привет. Супрессор это. Упоминались случаи вылета полевика, смотрел осликом - есть паразитная иголка от самоиндукции в момент закрытия транзистора, она способна пробить полевик. Особенно на больших катушках (учитывая, что даже на моей 6х8 иногда превышает допустимое напряжение исток-сток). Супрессор позволяет срезать ей верх на безопасном для полевика уровне. Если хочешь - полистай несколько страниц назад, я детально описывал, с осциллограммой.
Во флайбеках это чуть ли не обязательный элемент, но супрессор - упрощённый вариант, чаще используется цепь диод - резистор - конденсатор. Для нас это излишество)
Вряд ли где-то есть подобное на донорах. Я покупал, у местных электронщиков-продаванов нашёл поштучно, и смд, и дип. Но поначалу взял по рабочему напряжению, а они иглы не режут, быстродействия не хватает. Прогрыз даташит и взял по паспортному импульсному - заработало. Там на схеме несколько аналогов указано. Справедливости ради у меня и без них работало, транз ни один не вылетел, но с ними как-то спокойней, да и повторяющим меньше шансов полевик подпалить.
Да, но надо дополнительное условие прописать. Что бы сдвигалось заполнение направо. Так как по умолчанию привязка к левой стороне. От точки координат направо все рисуется
alexadresat, скорее всего наводки с генератора на счётную часть. У себя на твоей плате подобного не замечал, надо будет потыкать как-нибудь.
Dark-Dante, это только в индикации, и то не факт, что проявится. Особо не тестировал пока.
При батарейном питании или от сети? Ничего перед этим не менял? На прикосновение/поднесение к телу СБМ так же реагирует? Только что потыкал в свой - никаких глюков.
float batnapruga = 3.20; //Настройка минимального значения напряжения акб для отображения. Зависит от работоспособности вашей схемы. Обычно 3.20 вольта by OfficialGalkin
//настройки //////////////конец
если нужно отображение процента заряда, то расскоментить строчку //процент заряда
Теперь отображение батарейки я думаю можно считать завершенным)
Можно выставить максимальное и минимальное значение напряжения.
Можно выставить напряжение при котором будет отображаться значек USB
Можно включить\выключить индикацию процентов
В настройки прописать:
bool batproc = 1; // 1- отображать проценты. 0 - не отображать
float batusb = 4.30; // настройка напряжения, выше которого будет отображаться значек USB
float batmax = 4.20; //Настройка максимального значения напряжения акб для отображения. Обычно 4.20 вольта
float batnapruga = 3.20; //Настройка минимального значения напряжения акб для отображения. Зависит от работоспособности вашей схемы. Обычно 3.20 вольта by OfficialGalkin
Вай, зачем вместо boolean использовать float? В ардуину, тащемта, планку памяти добавить нельзя... Тут люди извращаются, один байт в качестве восьми boolean используют чтобы память сэкономить, но чтобы наоборот...
С ЮСБ будет косяк, так как при подключении аккума на зарядку на нем же сразу не становится 4.3 Вольта... Доя себя оставлю батарейку по умолчанию, никакие проценты, пиксели и моргания не заменят просто обычного отображения напряжения в Вольтах посмотрев на которое всё сразу становится понятно. Как по мне лучше сделать чтобы процессор принудительно выключался либо уходил в сон при напряжении , скажем, ниже 3 1 Вольта
tekagi, можете добавить ноль перед единицами секунд при счёте времени разностного замера?
А зарядку, можно сделать индикатор «молния» . Ориентировка, точка в напряжении. Это будет нижний пиксель молнии.
Ну, индикация заряда не приоритет, я лучше пин оставлю на детект тлеющего разряда.
Кстати у тебя индикация светом работает? Я что-то все как не выставлял, фонарик не мигает, даже насеков нету на индикацию.
"Индикация светом" - это светодиод на 13й ноге, не фонарик. Были предложения на фонарик повесить стробоскоп по аварийному пределу, но это точно не из первоочередных доработок. Пока по основному функционалу вопросов много. Потому и интерфейс не трогаю, хотя оба меню давно пора переделать.
По зарядке. На платках с TP4056 есть светодиоды индикации заряда и окончания, проще их вывести на корпус или поставить сбоку от дисплея, цветная засветка будет индицировать процесс.
Ну отключение сингализации и неприрывныую с больлим диапазоном я сделал.
Вот какие пороги еще сделать? Сейчас до 1000 микрорентген можно выставить. Мне кажется выше и нет смысла?
Там в таком виде и во втором уровне нет никакого смысла. Сигнализация первого уровня должна быть привязана к длительному замеру, это позволит выделять малые уровни превышения над фоном (15-40 мкР/ч) без ложных срабатываний. Сигнализация второго уровня должна быть привязана к кратковременному замеру (36 секунд для СБМ-20) при низком фоне, или при превышении определённого количества импульсов даже если этот период ещё не закончился (чтобы прибор не ждал окончания периода для выдачи сигнала, а пользователь уже через пару секунд сверкал пятками). Этот порог должен начинаться от 60-100 мкР/ч. Плюс продумать временное отключение/сброс тревоги с последующим автовключением или напоминанием, что фон ещё не ниже порога.
Так сигналка 2 и работает в режиме фонового замера. Она не связана с первым уровнем. Логика работы как у той сигналки, только значения другие и сигнализация непереставая работает при превышении.
то есть она перестанет орать только при понижении фона ниже установленного, либо сброса.
Она не способна увидеть стабильное небольшое превышение. Если поставить порог 25 при фоне 15 она периодически будет давать ложные срабатывания. Смотрите код основного замера (большие цифры) и длительного (малые вверху). Одна авария должна работать по малому скользящему окну (часть массива данных), при этом контролировать сумму недавно внесённых в массив данных на предмет превышения некоего количества импульсов внутри этого малого окна, для уровней свыше 100 и быстрой реакции, вторая брать за основу данные всего массива, что позволит получить меньший разброс показаний и более точное значение фона, для низких уровней аварии. Поскольку для этого массив должен быть набран целиком - аварийный сигнал сработает позже. Для низких уровней это некритично, но исключает ложную тревогу, а при высоких раньше сработает второй уровень. Плюс надо задать логику при сработке второго уровня для временного отключения первого.
Если надо более детально - пишите на мыло, покажу к каким переменным надо привязаться. С телефона код нормально не почитаешь, а я в него уже давно не заглядывал.
/дубль
По мне так и не надо ставить порог вроде 25. О чем сигнализирует такая сигналка ? Опасности никакой нет, а где то в районе 50 уже от фона не сработает случайно.
Ну вот. Первую сигналку сделать по верхним цифрам. Тобишь для малых значений. Например коротковременный сигнал что фон выше нормы. Например 30. Не опасно, но просто проинформирует что превышение.
второй же, сигналка как я ее назвал.
Будет работать в зависимости от больших цифр и маленьких. Наприпер в 500микрорентген.
здесь точные значения не нужны, да и скорость +-3 секунды не критично, не стоит усложнять код из-за пары секунд. Тут главное что бы проинформировать о грязной зоне.
Эта сигналка нужна для «невидимого» использования радиометра. Тобишь когда он у тебя в кармане. Ты идешь. Порог выставлен в 500 и фон начинает превышать этот порог то начинает орать сигналка значит что надо уходить от туда.
При резком наборе фона она так и так сработает при данном коде.
tekagi, жду правок по таймеру, собрал всё последние наработки чтобы обновить свою прошивку, буду теперь ждать еще Вашу правку.
Ну вот. Первую сигналку сделать по верхним цифрам. Тобишь для малых значений. Например коротковременный сигнал что фон выше нормы. Например 30. Не опасно, но просто проинформирует что превышение.
второй же, сигналка как я ее назвал.
Будет работать в зависимости от больших цифр и маленьких. Наприпер в 500микрорентген.
В плане индикации всё верно. Но это должны быть не разные уровни одной переменной, а взятые с разных переменных, плюс для малого уровня должна быть дополнительная функция с логикой "или".
Не сразу, будет задержка, и большая, пока выровняется усреднение в массиве из 36 отсчётов. Быстро сработает только при сбросе или сразу после включения, когда счёт идёт похпервым элементам массива.
Morroc, низкий порог ставить можно, но не менее трёхкратного превышения фона и только по длительному замеру, с максимальным усреднением. Пользоваться или нет - дело пользователя, можно будет просто выключить.
Говорю сразу, аварийную сигнализацию в ближайшие месяцы трогать не буду. Первоочередное - изменение алгоритма счёта, с упором на более быструю реакцию на изменение фона.
Сделал индикацию АКБ
В настройках добавляем строчку
В логотипах добалвяем логотиб линии
В Gif.c логотип и линия батареи
Ну и саму баттарейку переписываем
OfficialGalkin - давай выкладйвай целиком прошивку(hex и gif). Будем пробовать....
Обратный отсчёт. Без красивостей в виде нуля перед единицами секунд и с мелким багом на последней секунде. Возможен в индикации сдвиг на одну секунду. В принципе пофиксить можно, но соображалка сейчас работает со скрипом))
tegagi - Привет! Заметил на схеме ты добавил диод D3, это просто дла защиты?
Привет. Супрессор это. Упоминались случаи вылета полевика, смотрел осликом - есть паразитная иголка от самоиндукции в момент закрытия транзистора, она способна пробить полевик. Особенно на больших катушках (учитывая, что даже на моей 6х8 иногда превышает допустимое напряжение исток-сток). Супрессор позволяет срезать ей верх на безопасном для полевика уровне. Если хочешь - полистай несколько страниц назад, я детально описывал, с осциллограммой.
Во флайбеках это чуть ли не обязательный элемент, но супрессор - упрощённый вариант, чаще используется цепь диод - резистор - конденсатор. Для нас это излишество)
ОК. А сдесь случаем в нутри уже не установлен?
Нет, здесь встроеный защитный диод от обратной полярности и супрессор для защиты от перенапряжения на затворе.
Откуда этот супрессор выковырить?
Вряд ли где-то есть подобное на донорах. Я покупал, у местных электронщиков-продаванов нашёл поштучно, и смд, и дип. Но поначалу взял по рабочему напряжению, а они иглы не режут, быстродействия не хватает. Прогрыз даташит и взял по паспортному импульсному - заработало. Там на схеме несколько аналогов указано. Справедливости ради у меня и без них работало, транз ни один не вылетел, но с ними как-то спокойней, да и повторяющим меньше шансов полевик подпалить.
В печатку в #26 я супрессор добавил.
Еще поправку сделай. В место сопротивления с 6 ножки 470 Ом поставь перемычку, и далее в место конденсатора 100n замени на сопротивление 2 кОм.
Лови. Строго не судить. Я только на прошлой неделе начал заниматься "программированием"
прошивка
графика
alexadresat, про них забыл. Появится минута - перерисую.
OfficialGalkin - шкалу на батарейки надо наоборот повернуть, чтоб слева наперво шкала была. Так сказать по феншую.
Да, но надо дополнительное условие прописать. Что бы сдвигалось заполнение направо. Так как по умолчанию привязка к левой стороне. От точки координат направо все рисуется
tekagi - у меня к тебе вопроc...
У меня проблема, палец подносишь к трансу счет как будто изотоп поднес. Что может это быть?
Не понял что за сдвиг? Опять 61 секунда что-ли?
Все. теперь по феншую.
закменить на
OfficialGalkin - ОК!
alexadresat, скорее всего наводки с генератора на счётную часть. У себя на твоей плате подобного не замечал, надо будет потыкать как-нибудь.
Dark-Dante, это только в индикации, и то не факт, что проявится. Особо не тестировал пока.
Не дотрагиваюсь, а подношу миллиметров на 8-10. Появилось это чудо месяц назад.
Есть идеи как это победить...
У меня вообще верещал постоянно. Я транс обмотал фальгой и посадил фальгу на +, который на транс идет с резистора.
При батарейном питании или от сети? Ничего перед этим не менял? На прикосновение/поднесение к телу СБМ так же реагирует? Только что потыкал в свой - никаких глюков.
у него может близко транс стоит к линии считывания импульсов. у меня эти импульсы считал без всяких пальцев.
От батарейки пищит. От блока питания все хорошо, как и должно быть.
OfficialGalkin, на разных концах платы. На данный момент это самая удобная печатка, невзирая на перевёрнутую ардуину.
Электролит поболе по питанию пробовал подкидывать? Может внутреннее сопротивление батареи выросло?
Ну у меня прям около ардуины. Самая компактная плата хахаха
Я кстати транс потом поменял. Тот в кз ушел.
Транс на индуктивности 8.2 микрогенри.
http://arduino.ru/forum/proekty/delaem-dozimetr?page=57#comment-464483
Нет не пробывал, завтра. Еще момент если к разъему зарядки прикоснуться, все работает как надо, хоть датрагивайся да транса.
tekagi - Электролит не помог.
Супрессор поставил двунаправленный вот этот SMBJ10CA ,как думаешm нормально?
Срез на 17V, думаю вполне подойдёт. Я ставил следующий, одиннадцатый.
Пофиксил батарейку.
1) Теперь длина шкалы 10 пикселей.
2) 1 приксель заполнения равен 10% заряда.
3) Сдвинуто заполнение. Теперь от 90% и выше юудет полная батарея. Со старым кодом полная батарея была только со 100% что невозможно.
4) Упрощен рассчет. Убраны лишние умножения\деления
5) Мигание сделано от 5%
графика
настройки теже
если нужно отображение процента заряда, то расскоментить строчку //процент заряда
Теперь отображение батарейки я думаю можно считать завершенным)
А при напряжении выше 4,3V вместо заполнения нарисовать знак юсб? ))
Ага) Сделаю. Только проблема, сейчас только дошло. Что если изменить настройки на например 3.5 вольта. То даже при 4.2 вольта будет не 100%.
У кого-то же плата при 3.4 вольта уже отрубается. А тут надо 3.2 вольта что бы правильно проценты считались.
Сейчас это переделываю. И тогда уже точно будет все окончательно готово ))
И можно будет хоть 3.8 вольта минимальное выставить
Все. Теперь точно готово. Пользуемся)
Можно выставить максимальное и минимальное значение напряжения.
Можно выставить напряжение при котором будет отображаться значек USB
Можно включить\выключить индикацию процентов
В настройки прописать:
В служебных переменных добавить логотипы:
Код батареи:
Ну и логотипы
Отображение процентов отключается при подключении USB
Проценты считаются по формуле
n*100:N
Где:
n { Текущее напряжение - выставленное минимальное напряжение}
N { Выставленное максимальное напряджение - текущее напряжение}
10 агуста 2019: Исправлен баг с присвоением значения 1 процентам.
Вай, зачем вместо boolean использовать float? В ардуину, тащемта, планку памяти добавить нельзя... Тут люди извращаются, один байт в качестве восьми boolean используют чтобы память сэкономить, но чтобы наоборот...
Косячок у батарейки....
Напряжение выше установленного? Я прописал условие и изменил код ьбатарейки. что бы выше 99% проценты не отображались
С ЮСБ будет косяк, так как при подключении аккума на зарядку на нем же сразу не становится 4.3 Вольта... Доя себя оставлю батарейку по умолчанию, никакие проценты, пиксели и моргания не заменят просто обычного отображения напряжения в Вольтах посмотрев на которое всё сразу становится понятно. Как по мне лучше сделать чтобы процессор принудительно выключался либо уходил в сон при напряжении , скажем, ниже 3 1 Вольта
tekagi, можете добавить ноль перед единицами секунд при счёте времени разностного замера?