Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Дозиметр на esp32

Тема в разделе "ESP32 - все о железе", создана пользователем igneus, 10 сен 2019.

  1. igneus

    igneus Новичок

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

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

    Grem_line Читатель

    Сообщения:
    57
    Симпатии:
    10
    Самое простое:
    Код (Text):
    1.  
    2. int MY_PIN = 8; //Номер ножки, на которую подан сигнал
    3. int PulseCount;
    4. unsigned long  lastTick;
    5. void setup()
    6. {
    7.  Serial.begin(115200);
    8.  Serial.printf("Start program\n");
    9.  pinMode(MY_PIN, INPUT);
    10. lastTick = millis();
    11. }
    12. void loop()
    13. {
    14.  static int OldV=0;
    15.  int V = digitalRead(MY_PIN);
    16.  if ((V != OldV) &&(V == LOW))  PulseCount++;
    17.  OldV = V;
    18.  unsigned long Tick = millis();
    19.  if (Tick - LastTick >36000)
    20.  {
    21.   LastTick = Tick;
    22.   Serial.printf("Pulse count = %i\n",PulseCount);
    23.   PulseCount = 0;
    24.  }
    25. }
    26.  
     
    igneus нравится это.
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    Так никто давно не делает.
    Импульсы подают на ADC и в PRA.
    PRA

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

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
     
  5. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
  6. igneus

    igneus Новичок

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

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

    igneus Новичок

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

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    рекомендую измерить быстродействие программы
    а то будете много пропускать импульсов и измерите что-то от столба до обеда
    а вообще-то надо делать на СИ с прямым обращением к регистру GPIO
    и для измерения времени использовать колбек таймера
    быстродействие будет раз в 10 больше, чем этот скрипт
    ---------
    для формирования импульсов компаратор
    или АЦП для вычисления площади импульсов
    ------------
    Счетчика нет поэтому выкладывать код не буду.
     
  9. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    Есть ещё проще измеритель - берете видео камеру, закрываете её голую матрицу от доступа света со всех сторон чем-то проницаемым для частиц... Можно наверно и фольгой, но тогда проникнет только переизлучение - отскоки...
    Снимаете кадр и считаете шум - более яркие точки. Всё.
     
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.965
    Симпатии:
    1.301
    О сразу нашел:

    И там говорят что это всё ерунда, как и примитивный счетчик Гейгера. мЭрят какую-то ерунду, а не реальную радиацию...
     
  11. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
  12. nikolz

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
  13. Grem_line

    Grem_line Читатель

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

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
    про таймер это я полагаю Вы для себя написали.
    Так как известно что на ESP таймер не может считать импульсы.
     
  15. Winnie_The_Pooh

    Winnie_The_Pooh Новичок

    Сообщения:
    21
    Симпатии:
    4
    Счетчик СБМ-20 выдает импульсы стандартной ширины, независимо от энергии частицы, породившей разряд в нем. Спектр радиоактивного излучения этим детектором измерить невозможно. Для решения задачи получения энергетического спектра излучения требуется другой детектор, например сцинциляционный, сигнал на выходе которого пропорционален энергии заряженной частицы. Но цена детектора там совсем другая, на порядок, если не на два больше цены СБМ-20.
     
  16. pvvx

    pvvx Активный участник сообщества

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

    Winnie_The_Pooh Новичок

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

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

    pvvx Активный участник сообщества

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

    nikolz Гуру

    Сообщения:
    4.925
    Симпатии:
    454
  20. Winnie_The_Pooh

    Winnie_The_Pooh Новичок

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

Поделиться этой страницей