Делаем дозиметр!

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

В ардосе трансформаторная повышайка на 1-м транзисторе. Импульсами подается напряженик на первичку, на второй из-за большего количества витков возникает повышенное напряжение. 

В этой схеме транзистор просто коротит дроссель на массу насыщая его, когда транзистор закрывается, накопленная энергия идет на накопительный конденсатор. DC-DC преобразователь короче. КПД ниже у него чем у трансформаторных преобразователей.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

В АрДосе точно такой же принцип, с накоплением при закрытии транзистора и высвобождением при закрытии. Это не прямоход.

bwn
Offline
Зарегистрирован: 25.08.2014

Dark-Dante пишет:

При повторении Ардоса тоже задавался этим вопросом. Глючить будет один камень из ста, хотя даташит говорит об обратном, но около 30 конструкций на 328й работающие от лития на 16, а то и 20-22 мГц говорят о том что разработчики просто перестраховались, так что не создавайте себе проблем на ровном месте, работает- не трогайте.

Как Вы, категорично. Ведь не гоняли лонг-тесты в крайних температурных пределах, с разными кварцами.....))))
А то возникнет привычка даташиты не читать.)))

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

Да всё работает от 1,5 года и более без проблем, но это уже оффтоп. По температурах не гонял, нет необходимости, 328ю разгонял до 25 мГц при питании от лития, может и больше может, не проверял.

Muxi
Offline
Зарегистрирован: 22.01.2019

Если не секрет зачем гоните до 25?

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

Проект такой, на 16 тормозит.

TIGR
Offline
Зарегистрирован: 01.09.2019

Доброго времени суток! Тоже решил повторить сей проект. Понравилась именно сама идея такого дозиметра. Вчера, при настройке дозиметра (при первом вкл), возникли трудности. НАпряжение было в районе 360 В (измерял на конденсаторе, просадки практически не было), при попытках его поднять (игра с обмоткой трансф, увеличение/уменьшение накачки), на очередном тесте, напр резко просело до 38 В. Транзистор живой, диод тоже. Возмодно ли пробитие трансф (через каждые 100 витков, обматывал наподобие белой фум ленты, взял с катушки реле)?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Ток потребления при этом возрос? Пошаговую рекомендуемую настройку выполняли?

Если генератор держит высокое без просадки, но напряжение не соответствует расчётному - то либо ошиблись в коэффициентах (либо резисторы делителя не соответсвуют номиналам), либо плохо отмыта/высушена плата.

Фото собраного, скриншоты системного меню, снятые рабочие параметры (потребляемый ток, напряжение, скорость накачки и т.д. для разных режимов)  приветствуются.

TIGR
Offline
Зарегистрирован: 01.09.2019

Ток потребления 10 мА. Инструкцию выполнял. В том то и дело, что теперь почему то не удается получить обратьно, хотя бы эти же 360 В)) То, что сейчас выдает 38 В (на высоком) совпадаетс показаниями вольтметра. И еще момент, сначала, когда транс стоял на плате, я думал что это он шумит/свистит с определенным интервалом, потом выяснилось, когда я его подпаял на проводах, что эти звуки идут с бузера. https://sun9-19.userapi.com/c854216/v854216370/dc645/d2imlulHA9Q.jpg

https://sun9-22.userapi.com/c850436/v850436370/1aa3ee/dTjiw_sYIMc.jpg

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017

TIGR - печатку сам делал?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

10mA тогда, когда на выходе 38 вольт? Какой при этом показатель скорости?

TIGR
Offline
Зарегистрирован: 01.09.2019

Нет) если бы я сам делал, я бы все еще делал) Через китайский магазин JLCPCB заказывал. Использовал печатку от alexadresat (благодарю).

TIGR
Offline
Зарегистрирован: 01.09.2019

Подпаял обратно транс, уже 10 В высокое, накачка 8, ток скачет 12 -15,5 мА. скорость 506. Немного растерян) М.б. действительно первичку пробило

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017

Используй готовый дросель на 10 мкГн + 4 витка сверху. И отмой платку от флюса.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Джампер на ключ управления стоит? Который под экраном? А то я там только два штырька вижу.

Транзистор бузера отпаян?

TIGR
Offline
Зарегистрирован: 01.09.2019

Джампер поставил после того как уже сделал фото, Транзистор бузера стоит с др стороны, под экраном, не было смд транз, поставил обычный, с обратной стороны видны его ного с припоем

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Есть ещё дроссель - гантелька на несколько миллигенри? На лапки ему светодиод, поднести шляпкой к трансформатору в режиме работы, должен светиться.

TIGR
Offline
Зарегистрирован: 01.09.2019

Поднес, есть слабое моргание в такт тихого звука с бузера

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Транс подпаян верно? Лапками вниз, толстая обмотка между ключом и смд-конденсаторами. 

Попробуйте на тот дроссель, что со светодиодом использовали, намотать четыре витка и поставить вместо трансформатора. Если напряжение на вторичке вырастет - то транс в замену.

TIGR
Offline
Зарегистрирован: 01.09.2019

Фух) нашлась проблема, поменял трансф, выс двинулось вверх. Спасибо за помощь)

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Возможно действительно где-то лаковая изоляция нарушилась и пробивает.

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017

TIGR - Сколько по стоимости вышло и сколько заказывали печаток?

TIGR
Offline
Зарегистрирован: 01.09.2019

Заказывал по минимуму (а минимум там 5 плат), Вышло 6,4 $ (первая доставка бесплатная). Сначала хотел через pcbway, там цены еще ниже (если плата укладывается в размер 100 на 100 вроде), но эта плата чуть большего размера, там сразу цена возрастает, чуть ли не в 2 раза. Вот нашел такой вариант.

Cennmax
Cennmax аватар
Offline
Зарегистрирован: 06.09.2019

TIGR, напиши мне на почту

oootts@inbox.ru

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Любопытные вещи в сети найти можно ))

Как насчёт поделиться с общественностью моделью?

Samodelkin_YouTube
Offline
Зарегистрирован: 16.12.2018

Ранее показывал фото корпуса но особого интереса оно не вызвало. Я постараюсь в ближайшее время добавить файлы всех моделей.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Среди уже собравших - возможно. Но, надеюсь, ещё найдутся интересующиеся проектом. Корпуса в теме появлялись не раз, но, емнип, готовую провереную модель никто так и не выложил.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

tekagi, по переход на такой экран я писал.

TIGR
Offline
Зарегистрирован: 01.09.2019

Как свой дособираю, настрою, тоже возьмусь за корпус. Фото потом приложу. Пока ожидаю СБМ20, первый пришел нерабочий.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

OfficialGalkin, как по мне великоват. Я и вовсе думал перевести проект на мелкий дисплей от китайского плеера, и расположить его в торце устройства, как в Radex One или Полимастере. Но он не столь массовый, плеера на деребан удалось заказать где-то с пятой (!) попытки, до этого китайцы либо отправляли на деревню дедушке, либо не отправляли вовсе. Так что от идеи отказался.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Точно великоват?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Визуально больше смотрелся)

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017

Нормально смотрится. Экран HX1230. И нужно ли "паршивку" изменять?

 

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

alexadresat Пошивку менять надо и довольно сильно. 

А я тут начал баловаться со своей прошивкой. Хочу свой дозиметр сделать попроще. 

Из-за того что код проще намного, считает намного выше порог радиации. 

Желание сделать свою прошивку с нуля. И быструю реакцию сигналки на изменение фона. Для этого уже использую не одну счетную переменную, а две. Одна точно фон считает. Вторая усреднено считает каждые 4 секунды и выводит значения. На ней и планирует сигналка по высокому порогу. а по низкому по точным значениям. 

 

За основу "Что бы вообще понять основной принцип счета взята прошивка автора ардоса, самая первая."

//подсчет радиации в COM порт с усреднением
#define usr 3 //количество усреднений

volatile int shet = 0;
int sredn, shet_sr;
unsigned long t_milis = 0;

void setup() {
  Serial.begin(9600);
  attachInterrupt(0, Schet, FALLING);//прерываниям пин 2
}

void loop() {
  if (millis() - t_milis >= 36000) {//отсчет для СТС-5 36000 (СБМ-20 40000)
    t_milis = millis();
    Serial.print("Doza= ");
    Serial.print(shet);
    Serial.println(" uRg/h");
    shet_sr = shet_sr + shet;
    shet = 0;
    sredn++;
    if (sredn == usr) {
      Serial.print("Usrdnenie ");
      Serial.print(usr);
      Serial.print(" Doza= ");
      Serial.print(shet_sr / usr);
      Serial.println(" uRg/h");
      sredn = 0;
      shet_sr = 0;
    }
  }
}

void Schet() { //прерывание на пин 2
  detachInterrupt(0);
  shet++;
  Serial.print("#");
  attachInterrupt(0, Schet, FALLING);
}

и вот что у меня за 1 вечер получилось наковырять

//*******************************************************************************************************************************************************
//***** Пример работы с библиотекой дисплея Nokia 1202  с контроллером STE2007 в среде Arduino IDE
//***** Автор шрифтов и функциый jeka_tm http://arduino.ru/forum/proekty/khronograf-izmeritel-skorosti-puli-ot-pr...
//***** Все собрал в библиотеку Gres, взять библиотеку для Arduino можно тут: https://yadi.sk/d/uwlwBOyijDYYR
//********************************************************************************************************************************************************

#define usr 3 
#include "lcd1202.h"
#include "font.h"
LCD1202 lcd(8, 7, 5, 4);  // RST, CS, MOSI, SCK
int bl = 9; //подсветка пин

int analogPin = 3;

unsigned long shet = 0; //частицы
unsigned long shet2 = 0; //частицы каждые 4 секунды для быстрого поиска
unsigned long sredn, shet_sr; //для подсчета среднего фона
unsigned long t_milis = 0; //
unsigned long t_milis2 = 0; //
unsigned long fon = 0; //вывод фона
unsigned long fon2 = 0; //вывод фона 2
unsigned long fon_sr = 0; //вывод среднего фона
unsigned long temp = 0; //для вывода среднего фона большими цыфрами
byte menu = 0; //отображаемый экран на старте

void setup() {
pinMode(bl, OUTPUT);
attachInterrupt(0, Schet, FALLING);//прерываниям пин 2
lcd.Inicialize();  //Инициализация дисплея
lcd.Clear_LCD();  //Очистка дисплея
}

void loop() {
lcd.drawBitmap(0, 0, image_111, 96, 68, 1); //фоновая картинка
analogWrite(bl, 100); //подсветка

if (millis() - t_milis >= 40000) {//отсчет для СТС-5 36000 (СБМ-20 40000)
    t_milis = millis();
    shet_sr = shet_sr + shet;
    fon = shet;
    shet = 0;
    sredn++;
    if (sredn == usr) {
      fon_sr = shet_sr / usr;
      sredn = 0;
      shet_sr = 0;
    }
}
if (millis() - t_milis2 >= 4000 ) {t_milis2 = millis();fon2 = shet2*10;shet2 = 0;}

    if (menu == 0) 
      {
        rpoisk();  //вывод на дисплей режима поиск
      }

}
void rpoisk() { 
    lcd.print(2, 21, 1, "Доза" );
    lcd.print(30, 21, 1, fon );
    lcd.print(76, 21, 1, "м/ч" );


      lcd.print(2, 30, 1, "Усредн. в" );
      lcd.print(60, 30, 1, usr );
      lcd.print(68, 30, 1, "раза" );
      lcd.print(2, 39, 1, "Доза" );
      lcd.print(30, 39, 1, (fon_sr) );
      lcd.print(76, 39, 1, "м/ч" );

      lcd.print(2, 50, 1, fon2 ); lcd.print(40, 50, 1, shet );


  temp = fon_sr;                         // переменная для хранения
  unsigned int c6=temp%10;                        // 3
  temp/=10;
  unsigned int c5=temp%10;                        // 3
  temp/=10;
  unsigned int c4=temp%10;                        // 3
  temp/=10;
  unsigned int c3=temp%10;                        // 3
  temp/=10;
  unsigned int c2=temp%10;                        // 2
  temp/=10;
  unsigned int c1=temp%10;                        // 1
  lcd.simb10x16(2,  2, 0, c1);
  lcd.simb10x16(14, 2, 0, c2);
  lcd.simb10x16(26, 2, 0, c3);
  lcd.simb10x16(38, 2, 0, c4);
  lcd.simb10x16(50, 2, 0, c5);
  lcd.simb10x16(62, 2, 0, c6);

lcd.print(2, 59, 1, t_milis );lcd.print(55, 59, 1, analogRead(analogPin) );


lcd.Update();                             //Обновляем дисплей
lcd.Clear_LCD();                          //Очищаем дисплей
}

void Schet() { //регистрация частицы пин 2
  detachInterrupt(0);
  shet++;
  shet2++;
  attachInterrupt(0, Schet, FALLING);
  Pik();
}
void Pik() {
  tone(6, 1000, 3);//сигнал о частице
}

Но есть проблем. Кто знает от чего может пьезо свистеть? При большом потоке частиц пьезо посвистывает "резанирует"

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Почему бы ему не свистеть, если звук генерится функцией tone c заданной частотой в килогерц?

Использовать в качестве секундного отсчёта millis  - плохая идея. Не зря ж последние версии АрДоса на таймер переведены.

Зачем в прерывании отключать и заново включать прерывания? Вызов Pik() я бы тоже оттуда убрал. В прерывании желательно находиться как можно меньше времени и делать самый минимум необходимых действий. Прерывание - инкремент - вернулись.

Да, насчёт shet и shet2. Читать здесь.

OfficialGalkin пишет:
Из-за того что код проще намного, считает намного выше порог радиации.

Из-за того, что фон считается раз в 40 секунд, а среднее раз в 120. Нет ни массива посекундных данных, ни массива графика. По сути это аналог "Беллы", ни о какой "быстрой реакции сигналки" здесь речи идти не может. В АрДосе сейчас фон пересчитывается каждую секунду за 36 предыдущих и 254 предыдущих.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Нашел почему свист был. 

Свистело не с заданной частотой, а гораздо выше частота и по времени дольше. Противный такой свист.

Оказалось что когда я брал на АРДОС пьезо, брал парочку. Один в запас. Первый пассывным был как и просил. А этот оказался активным, из-за этого он и свистел. Переделал на HIGH LOW.

По поводу МИЛЛИС почитал. Но у меня нету накопленой дозы. Да и расчет считай каждые 160с сбрасывается и погрешность убирается. 

А точнее мне не понятно как это сделать, перевести на секунды. В коде ардоса я не понял как это реализовано. 

Как говриться, делаю на основе того что изучил за пару месяцев ковыряния в коде. Ранее программированием и ардуино не занимался.

 

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Для начала можно поработать с библиотекой MsTimer2.h, проще к пониманию.

Сейчас сделано так (взят пример, выложенный dimax):

Сетап:

  //-----------------------------------------------------------
  // настраиваем таймер на секундный интервал
  TCCR1A=(1<<WGM11); //режим14 FAST PWM 
  TCCR1B=(1<<CS12)|(1<<WGM13)|(1<<WGM12); //делить частоту CPU на 256
if (F_CPU == 16000000UL) 
 {
  ICR1=62499;  // (16000000MHz /div256) -1 = 1 раз в секунду
 }
else if (F_CPU == 8000000UL) 
 {
  ICR1=31249;  // (8000000MHz /div256) -1 = 1 раз в секунду
 } 
  TIMSK1=(1<<TOIE1); //разрешить прерывание
  //-----------------------------------------------------------

Обработчик:

ISR (TIMER1_OVF_vect) // прерывание по таймеру, генерируемое каждую секунду
{ 
timer_seconds++ ; //инкремент переменной каждую секунду
if (timer_seconds > 59){timer_seconds = 0;}
}

Как переменная timer_seconds используется - смотрите в коде.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Переделал на секунды. Теперь фон от источника показывает чуть меньше, чем было на миллис. (Теперь показывает так-же как Ардос) 

Но теперь не работает шим. на 9 пине делал управление подсветкой экрана. теперь если сделать как пример с шимом, то подсветка просто мерцает раз в секунду. 

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Естественно. Запас аппаратных таймеров в меге не бесконечный.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

ардос так может?

 

Я похоже понял в чем проблема ардоса. Эксперементируя выяснил что если выдавать большую частоту на выходные пини, то микроконтроллер захлебывается. Перестает нормально считать и тормозит. Это начинается в районе 6 милирентген. На таком фоне уже даже dylay(10) в индикации светом и звуком сильно влияет на счет. 

Но если убрать delay и вообще вывод како-го либо сигнала о частице, то все считает без проблем. 8мгц чип.

800 000 микрорентген / 40 секунд замера = 20 000 герц.

 

Вывод:

Надо ограничить максимальную частоту мигания светодиода/пикания бузера и избавиться от delay в индикации.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

OfficialGalkin пишет:

Я похоже понял в чем проблема ардоса...


Какой делей, какая частота мигания? Я зачем раз надцать писал про переполнение восьмибитных переменных в массиве в текущих скетчах, и, соответственно, на данный момент низком верхнем пороге? Откуда "800 000 микрорентген"? Для кого в даташите на выбранный счётчик указан максимальный измеряемый уровень фона? Значения мёртвого времени? С каких пор считаемые частицы стали ходить по струнке друг за дружкой с равным интервалом?
С таким подходом это не радиометр, а очень медленный тахометр...

bwn
Offline
Зарегистрирован: 25.08.2014

tekagi пишет:

С таким подходом это не радиометр, а очень медленный тахометр...

Неа, это личный всадник собственного, маленького Апокалипсиса.))))

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

800 мр/ч

800 000мкр/ч = 800 000 импульсов / 40 секунд замера = 20 000 импульсов в секунду

проверка путем подачи сигналала через диод шотки со звуковой карты компьютера.

да сбм20 не мерит такой фон, из-за мертвого времени будет в районе 5000 импульсов максимум, это лишь для отладки кода что бы видеть как ведет себя код на высоких уровнях излучения, проверка правильности счета. Я думаю не у каждого дома есть кусок урана что бы кинуть им в счетчик.

как там говорили в районе 170 милирентген сбм20 может замерить без тлеющего разряда? 

Так вот может на высоком уровне быть зашкал, не только счетной переменной но и сам МК захлебнется. И вообще я не чисто под сбм20 делаю, а больше уневерсальный.  Планируется использовать для начала с Бета-1 счетчиком.

TIGR
Offline
Зарегистрирован: 01.09.2019

И снова здравствуйте! На этих выходных удалось таки все привести в норму трансформатор, напряжение попадает в предел допустимого. Второй СБМ-20 пришел, лежит на почте. Первый оказался  не рабочим. Листал тему, но так и не нашел ссылку на 3д модель корпуса). Если возможно, скиньте пожалста, чтоб с 0 не моделировать.

Samodelkin_YouTube
Offline
Зарегистрирован: 16.12.2018

К концу недели постараюсь выложить все файлы для изготовления корпуса

MacMillan
Offline
Зарегистрирован: 25.10.2016

По какому принципу в данный момент происходит расчёт радиоактивности? Я так понимаю, что не просто сбором количества частиц за 40 секунд?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Почти так. Есть массив, в который за каждую прошедшую секунду вносится количество импульсов, после чего происходит сдвиг всего массива на одну позицию. Сумма 36 ячеек приблизительно равна текущему фону. Соответственно в любой момент времени мы имеем приблизительный уровень фона за предыдущие 36 секунд с ежесекундной корректировкой. При старте счёта идет подсчёт за меньшее время, но с большей погрешностью. Длительный подсчёт - сумма всего массива (около 250 ячеек) в пересчёте на 36 секунд.

Основной недостаток на данный момент - замедленная реакция на изменение фона, что меня не особо устраивает. Ну и многократно упоминаемое переполнение. Но времени пока поковырять код нет.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

От источника из HIS07. 

Альфа, бетта, гамма

Практически вплотную

Датчик БЕТА 1

 

 

MacMillan
Offline
Зарегистрирован: 25.10.2016

tekagi пишет:

Почти так. 

Интересно, если для этих целей использовать фильтры, например по медиане или фильтр Калмана, можно ли достич лучших результатов...?

Vitalink
Offline
Зарегистрирован: 17.09.2019

Здравствуйте.