Дозиметр на esp32

igneus

New member
Здравствуйте. Иметься esp32 и счетчик гейгера с обвязкой, на выходе короткие сигналы 5v (нужно 3.3?).

Как произвести подсчет этих сигналов за 36 секунд? Так как в программировании я пока полный нуб был бы очень благодарен за короткий скетч Arduino ide с выводом в сериал порт значения импульсов за 36 секунд.
 

Grem_line

New member
был бы очень благодарен за короткий скетч Arduino ide с выводом в сериал порт значения импульсов за 36 секунд.
Самое простое:
Код:
int MY_PIN = 8; //Номер ножки, на которую подан сигнал
int PulseCount;
unsigned long  lastTick;
void setup()
{
 Serial.begin(115200);
 Serial.printf("Start program\n");
 pinMode(MY_PIN, INPUT);
lastTick = millis();
}
void loop()
{
 static int OldV=0;
 int V = digitalRead(MY_PIN);
 if ((V != OldV) &&(V == LOW))  PulseCount++;
 OldV = V;
 unsigned long Tick = millis();
 if (Tick - LastTick >36000)
 {
  LastTick = Tick;
  Serial.printf("Pulse count = %i\n",PulseCount);
  PulseCount = 0;
 }
}
 

pvvx

Активный участник сообщества
Так никто давно не делает.
Импульсы подают на ADC и в PRA.
PRA
и т.д.
К ESP подключаете нормальный ADC и вперед - с простым разложением он справится, но если сам детектор фиговый - Из счетчика Гейгера, спичек и ардуины. Часть первая — теория , то ничего хорошего из него не выйдет. Он мЭрит какую-то ерунду, а не то, что надо.
 

igneus

New member
@Grem_line
Спасибо за помощь, ваш скетч работает.
Вопрос только сколько максимально он сможет прочесть импульсов в секунду?

@pvvx
Насколько понимаю в этом видео спектрометр, а не дозиметр и вроде как счетчик сбм20 так не работает. Мне нужен простой детектор ахтунга, точность измерений не настолько важна.
Проверил с помощью скетча выше фоновые значения и рядом с пакетом калия сернокислого, датчик прекрасно замечает его радиационный фон, мне этого более чем достаточно для бытовых нужд.
За ссылку на статью спасибо.
 

igneus

New member
Может кому будет интересно, сделал замеры сбм20 + скетч сверху на 36 сек (грубый замер) и на 360, + дополнительно перевел импульсы в микрорентген в час (rad). Фоновые значения и с пакетиком удобрения монокалийфосфат в плотную к датчику.
калий.jpg
 

nikolz

Well-known member
Может кому будет интересно, сделал замеры сбм20 + скетч сверху на 36 сек (грубый замер) и на 360, + дополнительно перевел импульсы в микрорентген в час (rad). Фоновые значения и с пакетиком удобрения монокалийфосфат в плотную к датчику.
Посмотреть вложение 7847
рекомендую измерить быстродействие программы
а то будете много пропускать импульсов и измерите что-то от столба до обеда
а вообще-то надо делать на СИ с прямым обращением к регистру GPIO
и для измерения времени использовать колбек таймера
быстродействие будет раз в 10 больше, чем этот скрипт
---------
для формирования импульсов компаратор
или АЦП для вычисления площади импульсов
------------
Счетчика нет поэтому выкладывать код не буду.
 

pvvx

Активный участник сообщества
рекомендую измерить быстродействие программы
а то будете много пропускать импульсов и измерите что-то от столба до обеда
а вообще-то надо делать на СИ с прямым обращением к регистру GPIO
и для измерения времени использовать колбек таймера
быстродействие будет раз в 10 больше, чем этот скрипт
---------
для формирования импульсов компаратор
или АЦП для вычисления площади импульсов
------------
Счетчика нет поэтому выкладывать код не буду.
Есть ещё проще измеритель - берете видео камеру, закрываете её голую матрицу от доступа света со всех сторон чем-то проницаемым для частиц... Можно наверно и фольгой, но тогда проникнет только переизлучение - отскоки...
Снимаете кадр и считаете шум - более яркие точки. Всё.
 

pvvx

Активный участник сообщества
О сразу нашел:
И там говорят что это всё ерунда, как и примитивный счетчик Гейгера. мЭрят какую-то ерунду, а не реальную радиацию...
 

Grem_line

New member
рекомендую измерить быстродействие программы
а то будете много пропускать импульсов и измерите что-то от столба до обеда
Достаточно измерить длительность импульса, чтобы быть уверенным, что приведенный скетч его не пропустит. Судя по тому, что время накопления выбрано 31 сек эти импульсы следуют достаточно редко.
Ну а вообще-то таймер в ESP, наверное, можно перевести в режим счетчика импульсов (как это делается в Atmega), читайте даташит. В этом случае подсчет импульсов будет производиться аппаратно с высоким быстродействием. Но если предложенный мной скетч работает - не стоит и огород городить - это самое простое.
Вопрос только сколько максимально он сможет прочесть импульсов в секунду?
Так как переменная для подсчета импульсов выбрана типа int то максимальное значение до переполнения будет определяться этим. Не вдавался, какой длины int в ESP8266, но обычно для ардуино это 2 байта.
Это значит, что максимально можно подсчитать 32767 импульсов.
 

nikolz

Well-known member
Достаточно измерить длительность импульса, чтобы быть уверенным, что приведенный скетч его не пропустит. Судя по тому, что время накопления выбрано 31 сек эти импульсы следуют достаточно редко.
Ну а вообще-то таймер в ESP, наверное, можно перевести в режим счетчика импульсов (как это делается в Atmega), читайте даташит. В этом случае подсчет импульсов будет производиться аппаратно с высоким быстродействием. Но если предложенный мной скетч работает - не стоит и огород городить - это самое простое.

Так как переменная для подсчета импульсов выбрана типа int то максимальное значение до переполнения будет определяться этим. Не вдавался, какой длины int в ESP8266, но обычно для ардуино это 2 байта.
Это значит, что максимально можно подсчитать 32767 импульсов.
про таймер это я полагаю Вы для себя написали.
Так как известно что на ESP таймер не может считать импульсы.
 

Winnie_The_Pooh

New member
рекомендую измерить быстродействие программы
а то будете много пропускать импульсов и измерите что-то от столба до обеда
а вообще-то надо делать на СИ с прямым обращением к регистру GPIO
и для измерения времени использовать колбек таймера
быстродействие будет раз в 10 больше, чем этот скрипт
---------
для формирования импульсов компаратор
или АЦП для вычисления площади импульсов
------------
Счетчика нет поэтому выкладывать код не буду.
Счетчик СБМ-20 выдает импульсы стандартной ширины, независимо от энергии частицы, породившей разряд в нем. Спектр радиоактивного излучения этим детектором измерить невозможно. Для решения задачи получения энергетического спектра излучения требуется другой детектор, например сцинциляционный, сигнал на выходе которого пропорционален энергии заряженной частицы. Но цена детектора там совсем другая, на порядок, если не на два больше цены СБМ-20.
 

pvvx

Активный участник сообщества
Счетчик СБМ-20 выдает импульсы стандартной ширины, независимо от энергии частицы, породившей разряд в нем.
Вы не путаете его включение и работу схемы считывания с триггером Шмитта?
В трубке инертный газ. Но это не "неонка", где идет "тлеющий разряд" - там да, ... лавина порождает пробой. Но использовать неонку на пониженном напряжении тоже не выйдет - старые вообще содержат изотоп, чтобы "возбуждать" газ на малом напряжении, а в новых - какой катализатор :) Будете измерять его, а не внешние частицы...
Ну влетела частица в СБМ-20 и накидала ионов в газе - они поплыли к заряженным электродам... Т.е. их кол-во и заряд измерим.
Спектр радиоактивного излучения этим детектором измерить невозможно. Для решения задачи получения энергетического спектра излучения требуется другой детектор, например сцинциляционный, сигнал на выходе которого пропорционален энергии заряженной частицы. Но цена детектора там совсем другая, на порядок, если не на два больше цены СБМ-20.
И что-же тогда измеряет СБМ-20? Температуру? :)
В стандартной, Ардуино-подобной, схеме включения он хуже "прогноза погоды".
Схема включения у него рассчитана на Ардуиншика считающего импульсы.
 

Winnie_The_Pooh

New member
Вы не путаете его включение и работу схемы считывания с триггером Шмитта?
В трубке инертный газ. Но это не "неонка", где идет "тлеющий разряд" - там да, ... лавина порождает пробой. Но использовать неонку на пониженном напряжении тоже не выйдет - старые вообще содержат изотоп, чтобы "возбуждать" газ на малом напряжении, а в новых - какой катализатор :) Будете измерять его, а не внешние частицы...
Ну влетела частица в СБМ-20 и накидала ионов в газе - они поплыли к заряженным электродам... Т.е. их кол-во и заряд измерим.
И что-же тогда измеряет СБМ-20? Температуру? :)
В стандартной, Ардуино-подобной, схеме включения он хуже "прогноза погоды".
Если Вы спрашиваете всерьез: СБМ-20 является лавинной разрядной трубкой с самогашением. Каждая заряженная частица, пролетевшая через трубку и имеющая энергию, достаточную для возбуждения лавинного разряда, породит лавинный разряд. Этот лавинный разряд будет погашен процессом самогашения. Время этого гашения - одинаково для любого разряда. Т.е. импульс тока в СБМ-20 имеет одинаковую длительность, определяемую параметрами гасящей смеси, для любой зарегистрированной частицы. Выше по этой теме есть ссылка на букварь на Хабре, там очень доступно описана работа СБМ-20 и аналогичных счетчиков Гейгера.

Датчик СБМ-20 выдает одинаковые по длительности импульсы, случайно распределенные во времени, среднее число которых пропорционально текущей радиационной обстановке в данном месте и в данное время.
 

pvvx

Активный участник сообщества
Датчик СБМ-20 выдает одинаковые по длительности импульсы, случайно распределенные во времени, среднее число которых пропорционально текущей радиационной обстановке в данном месте и в данное время.
Т.е. регистрирует "сигналы точного времени" от ближайших радиостанций?
"лавинной разрядной трубкой с самогашением" - самогашение чем обеспечено?
Разрядной емкостью? Ограничением тока источника? :)
Напряжение до пробоя стабилизировано с учетом температуры?
Не переписывайте чужие статьи - в них многое не учтено. В итоге и показания от такого датчика никудышные.
 

Winnie_The_Pooh

New member
Т.е. регистрирует "сигналы точного времени" от ближайших радиостанций?
"лавинной разрядной трубкой с самогашением" - самогашение чем обеспечено?
Разрядной емкостью? Ограничением тока источника? :)
Напряжение до пробоя стабилизировано с учетом температуры?
Не переписывайте чужие статьи - в них многое не учтено. В итоге и показания от такого датчика никудышные.
Я в недоумении, Вы в начале треда дали ссылку на статью на Хабре, но Ваши слова говорят, что Вы совсем не в курсе устройства и принципа действия счетчиков Гейгера. Может быть Вам ее прочесть уже?
Самогашение обеспечивается введением галогенов и ограничением тока источника - обычно резистором в единицы- десятки мегаом последовательно с трубкой.
У этих датчиков есть т.н. "плато", что позволяет не заботиться о стабилизации напряжения в разумных пределах.
Я сам пописываю статейки и обычно разбираюсь в деталях в вопросе: Измеритель радиоактивности (радиометр) с Глонасс приемником и передачей данных по Wi-Fi
 
Сверху Снизу