Страница 1 из 2
Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 13:32:51
BGlike
Доброго времени суток )помогите пожалуйста не могу понять уже перелистал кучу информации даже пытался исходники смотреть дозиметров но не пойму как преобразовываются импульсы с датчика СБМ20 в микро рентгены в час (в режиме радиометра )(без длительных измерений как в дозиметре микрон или тера или нанит ) сигнал приходит на вывод МК и в прерывании инкрементируется переменная а что дальше не могу понять хоть убей, подскажите как получить текущий фон в микрорентген в час ???? из одних исходников видел что заполняется в прерывании нулевой элемент массива из [49] но потом код написан через одно место и непонятно что там происходит вообщем HELP HELP??? нашел ещё такую формулу R=3600*n/t/78 где R= уровень радиации в мкР/ч t время измерения n количество импульсов с датчика 78 с паспорта количество импульсов на микрорентген ну и 3600 это секунд в часе (НО КАК ЭТМ ПОЛЬЗОВАТСЯ В РЕАЛЬНОМ ВРЕМЕНИ Я Не понимаю(помогите ???
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 16:12:32
a797945
Чтобы что-то показывать мк должен увадеть хотя бы два импульса, измеряет длительность между ними, прикинуть - а сколько их может быть за час, ввести коэф, на датчик - вот и првое поксзание. А дальше по мере накопления замеров, усредняем
разве не так?
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 17:02:52
Martian
[uquote="BGlike",url="/forum/viewtopic.php?p=4204154#p4204154"]нашел ещё такую формулу R=3600*n/t/78 где R= уровень радиации в мкР/ч t время измерения n количество импульсов с датчика 78 с паспорта количество импульсов на микрорентген ну и 3600 это секунд в часе (НО КАК ЭТМ ПОЛЬЗОВАТСЯ В РЕАЛЬНОМ ВРЕМЕНИ Я Не понимаю(помогите ???[/uquote]
Не умеете засекать временные интервалы? Видели когда-нибудь у спортсменов секундомер? Тренер нажал кнопку, спортсмен побежал, и побежал в реальном времени, и секундомер тренера в реальном времени, и когда тренер скажет Стоп и нажмёт секундомер, то секундомер покажет время измерения, а количество шагов, которое бегун успеет сделать, эквивалентно количеству импульсов. А Ваша программа - это тренер.
Изучайте таймеры.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 17:12:48
BGlike
Таймеры я знаю! Но веть измерять интервал между частицами неправильно потому что они могут прилетать хоотично езё и не сколько сразу ? правильно нет?
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 17:32:25
Martian
Конечно хаотично. И что? Более того, Вы не в состоянии сосчитать их все, так как эти гады летают до измерения и летают после измерения, и даже когда мы сдохнем они будут летать и хаотично притом (хотя насчёт хаоса это спорно).
Сколько времени требуется для замера бытовом прибором?
https://radbez.bsmu.by/library/pribori.pdf
Спортсмен в предыдущем примере тоже неодинаковые шаги делал, а посередине дистанции ваще поссать остановился. И что? Это помешало сосчитать количество шагов за определённый период? Или определить скорость увеличения количества шагов? Совершенно нет.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 18:08:15
BGlike
Прочитал я и как называется смотрю в книгу вижу фигу я всё равно не понял как тогда радиометр производит показания в реальном времени да ещё и в мкР/ч если измерения происходят интервалами например по 20сек. Догда если пришло например 8 импульсов то как это дело перевести в рентгены и как потом следующий раз производить счёт обнулять переменную счёта а на дисплее отображать результат предедущего измерения но радиометр так не работает
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 18:49:22
Martian
Вы имеете ввиду под реальным временем текущий момент? Но в таком случае, даже обычный вольтметр не показывает в реальном времени. А градусники не показывают температуру в реальном времени. Единственное их отличие от дозиметра - временная задержка очень мала, что даёт право считать измерение мгновенным.
А вот в случаях, если частица регистрируется в среднем раз в секунду (предположим),то как обнулять переменную, с какой точностью считать и как долго и какими методами - это всё зависит от Вас. В документе, на который я дал ссылку, максимальное время измерения несколько десятков секунд!
Что сложного сделать сначала первый вариант: сосчитать количество частиц за 20 секунд?
Следующий этап это предположить, что возможна ситуация, когда частиц так много, что считать их за 20 секунд нет смысла. Что тогда надо сделать? Считать время между частицами.
Далее приходим к мысли, что надо всё это делать одновременно и бесконечно. И результат будет некое среднее за некий период. А если хочется совсем хорошо, то можно выкинуть и некоторые случайные всплески, портящие статистику, но эти методы на данном этапе Вам не нужны, просто помните, что потом, когда-нибудь имеет смысл о них задуматься и узнать, как избавиться.
Добавлено after 3 minutes 57 seconds:
Вот Вы написали: R=3600*n/t/78 ( я не знаю, истинная формула или не, но пусть)
Предположим, 8 импульсов прилетело за 20 секунд.
R = 3600*8/20/78
Что сложного-то? Счёт не останавливается, и через секунду на приборе показывается R = 3600*(число импульсов за последние 20 секунд)/20/78 и так бесконечно.
Добавлено after 4 minutes 20 seconds:
Можете вообще для начала сделать самым простым методом: массив из 20 ячеек, первая начинает подсчитывать импульсы за от 0 до 20 секунд, вторая от 1 до 21 секунды и так далее. Когда наступит время 21-й секунды, счётчик массива снова на ячейку № 0.
Через 20 секунд после начала измерений на дисплей раз в секунду выводить ячейки массива по очереди, по кругу.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 19:16:54
BGlike
Хорошо, я всё равно не понимаю, если я сделаю вот так
Int mas[49];// 49 секунд
Int sec;
Int sumimp;
Int Doze;
Interrupt input mk{
mas[sec]++;
}
Interrupt timer sec{
If(sec!=49)sec++;
}
For(int i;i<49;i++){
sumimp+=mas;
}
Потом
Sumimp считать по формуле но вот как отнимать от масива с импульсами ?
Doze
Добавлено after 4 minutes:
Хорошо попробую как вы говорите, понемногу начинает доходить
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 20:04:13
Martian
Код: Выделить всё
Int mas[49];// 49 секунд
Int sec = 0;
Int sumimp = 0;
Int Doze = 0;
Interrupt input mk // срабатывает от частицы на датчике
{
++mas[sec]; //подсчёт числа импульсов за секунду
}
Interrupt timer sec // срабатывает раз в секунду
{
If (++sec > 48) // ротация секунд-позиции массива
{
sec = 0;
}
sumimp = 0; // обнуляем старое число импульсов, которое было секунду назад
For(int i = 0; i < 49; i++)
{
sumimp += mas[i]; // суммирование импульсов за 49 секунд
}
mas[sec] = 0; // подготовка новой ячейки
}
Добавлено after 1 minute 32 seconds:
[uquote="BGlike",url="/forum/viewtopic.php?p=4204338#p4204338"]Хорошо попробую как вы говорите, понемногу начинает доходить[/uquote]
Ваш вариант гораздо оптимальней, надо было сразу его опубликовать, потому что я не понял без него суть вопроса и предложил более сложный, но, как мне казалось, гораздо наглядней, вариант.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 22:51:18
a797945
в начале измериний заполните весь массив значением одного замера и можете отображать не дожидаясь 50-ой секунды.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 23:15:28
Martian
Ага. Сравните варианты, при фактическом числи импульсов в среднем 10 в 50 секунд. (от балды).
Если вначале массив обнулен, (это эквивалентно первый замер равен 0), показывать будет 0, а потом потихоньку добегать будут до 10, если начинать отображать сразу.
Если в первом замере 1, то итогом сразу станет 50, и будет потихоньку уменьшаться к 10, если начинать отображать сразу. Уже как-то не очень.
Если в первом замере 2, то итогом сразу станет 100, и это вообще уже не не очень. А две частицы почти рядом прилететь вполне могут.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 23:25:17
АлександрЛ
BGlike писал(а):Прочитал я и как называется смотрю в книгу вижу фигу я всё равно не понял как тогда радиометр производит показания в реальном времени да ещё и в мкР/ч если измерения происходят интервалами например по 20сек.
По ссылке:
1.5 Порядок работы
1.5.1 Режим «Измерение мощности дозы»
Переведите переключатель режимов работы в положение МД
(крайнее левое положение) и нажмите кратковременно кнопку
ПУСК. При этом на цифровом табло должны появиться точки
после каждого разряда и начинается счёт импульсов.
Примерно через 20 с измерение закончится, о чем
сигнализирует звуковой сигнал, а на табло фиксируется число с
одной точкой. Это показание прибора представляет собой значение
МД в мкЗв/ч.
Сейчас в "рентгенах" никто не измеряет, измеряют в ЗИВЕРТАХ!!
А, как я понял, число на индикаторе- количество "импульсов", поступивших со счётчика за 20 секунд..
Перевод единиц радиации
https://allcalc.ru/converter/radiation
допустимые дозы радиации в микрозивертах-
https://www.google.com/search?channel=n ... 0%B0%D1%85
Безопасным считается уровень радиации до величины, приблизительно 0,5 мкЗв/ч (микрозивертов в час) или до 50 микрорентген в час. Наиболее безопасный уровень внешнего облучения тела человека, когда «радиационный фон в норме», - это до 0,2 мкЗв/ч (соответствует значениям до 20 микрорентген в час).
Если уж так хочется на МК- делаете частотомер с временем измерения 20 секунд (чтобы всё по фен-шую было)- и получаете то, что нужно..

Наверное..

Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Сб мар 26, 2022 23:31:47
a797945
сори, полагал sumimp далее усредняется к секунде.
(хоть число 49 мне было не понятно)
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Вс мар 27, 2022 00:37:02
BGlike
Вообщем искал искал и наткнулся я на вот это
http://forum.rhbz.org/topic.php?forum=62&topic=22 там предлагается считать частоту импульсов и тупо умножать сначала на 36 и при увеличении частоты меняется число умножения но частотомер на детекторе частиц это так себе тоесть нужно зделать масив с измерением частоты например 50 элементов потом вывести среднее а это средние умножить на число предлогаемое там в принципе если считать на калькуляторе то вроде как совподает но вот а если прилетело несколько частиц сразу то получается скачак частоты от 0.3Гц до 700гц ну даже если там будет 100 элементов то это будет не одэкватное значение ну как то так или всё же этот вариант лучше? Что скажете? Кстати та формула которую я нашол в самом первом посте я писал её так вот если верить паспорту датчика то считая по той формуле получается завышение при чем не слабое а если считать по p=импульсов в секунду (частота)*36 то получается как в паспорте
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Вс мар 27, 2022 00:45:47
Martian
Это там убирают какую-то нелинейность счётчика. Ничего не могу сказать, я думал, что всякая погрешность у них возникает в случае, когда два и более импульса приходят настолько быстро, что определяются как один.
Чтобы разбираться, что там за нелинейность, и есть ли она, надо искать и читать документацию по этому счётчику.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Вс мар 27, 2022 00:48:15
BGlike
Да дело в том что документации я полной не нашел а только стандартну
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Вс мар 27, 2022 00:59:30
Martian
Да, такое бывает. Надо изучать литературу не просто об этом счётчике, но вообще об измерении радиационного фона, где, возможно, что-то выяснится. Например, вот: определение мёртвого времени счётчика.
ага... ясно, откуда нелинейность.
там (где график нелинейности), кстати, тоже была ссылка на подобный документ:
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Пн мар 28, 2022 12:33:13
Jack_A
[uquote="BGlike",url="/forum/viewtopic.php?p=4204590#p4204590"]получается скачак частоты от 0.3Гц до 700гц[/uquote]
Чтобы такого не случалось, используют метод "скользящего окна". Заполняем массив, положим, из 64 элементов (безразлично - режим измерения частоты (при большой интенсивности) или периода (при малой)). Усредняем. Умножаем на нужный коэффициент. При получении очередного отсчёта (числа импульсов за очередную секунду - если измеряется частота, или периода - поступил очередной импульс, имеем очередной период) помещаем новый отсчёт на место самого "старого", опять усредняем, умножаем на нужный коэффициент и т.д. Такой метод плохо работает на быстродействующих процессах (уже прекратилось, а показания всё ещё медленно снижаются), но в данном случае радиационный фон не может меняться скачком (атомный взрыв не рассматриваем), зато резких скачков показаний не будет.
В этом случае хорошо использовать кольцевой буфер - результат помещаем по текущему указателю и перемещаем указатель по кольцу на следующий элемент.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Пн мар 28, 2022 18:57:59
74LS00
Количество импульсов за 45с на сколько помнится, это и есть число мкР/ч он же 1/100 мкЗв/час.
Всё остальное конвертация по известным форулам.
Для быстрого замера надо считать импульсы и время за которое они появились, и пропорционально делить с отображением результата, хотябы раз в секунду для наглядности.
Замерять всё что что попало за секунду и складывать в кучу, а потом брать всё что накапало за последние 45с и на экран.
Ну а для дозы просто всё подрят складывать и делить на время которое прибор включен.
Замерять частоту ардуиной то ещё извращение.
Не проще готовые проекты открыть ?
Я просто много тыкался в попытке замерить частоту ниже 10гц и это невозможно. Большую часть времени контролер просто стоит и много других пакостей уже и не вспомню.
Re: Помогите с переводом импульсов с датчика сбм20 в мкР/ч
Добавлено: Пн мар 28, 2022 19:12:13
Martian
У меня в 99.9% проектов контроллер спит. Почему это - пакость?
И можно замерить частоту даже для 1 импульса в 10 лет (лень переводить это в пикоГерцы какие-то)