ArDos / дозиметр, часть №1

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

Особенно унитаз ......)))))

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

У меня он в районе 5 мкр/ч фонит

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

Значит поменьше надо сидеть....)))))

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Небольшой анонс) Работаю над oled миниатюрной версией(всего 71х22мм)

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

Это классно. С комплектухой проблем не будет?

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Пока все по наличию есть в чип и дипе.

Jeep64
Jeep64 аватар
Offline
Зарегистрирован: 04.05.2019

mambavamba14 пишет:

Небольшой анонс) Работаю над oled миниатюрной версией(всего 71х22мм)

под oled 128Х64 поддерживать прошивка будет?

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Нет, если только кто-то сам переделает под него

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

Первое видео работы моего дозиметра

https://www.youtube.com/watch?v=KoHiJavfRcA

 

Описание http://offgal.ru/index/metron/0-7

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

Не плохо!!!

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

Очень достойно! Особенно 4й реактор при включении зашел. Если можно, дайте картинку, пихну в свою версию прошивки ардоса.

Igor_116
Offline
Зарегистрирован: 09.11.2017

OfficialGalkin пишет:

Первое видео работы моего дозиметра

https://www.youtube.com/watch?v=KoHiJavfRcA

 

Описание http://offgal.ru/index/metron/0-7

можно пару вопросов по схемотехнике.

с лития стоит преобразователь до 5в. далее стабилизатор на 5в. он что без падения напряжения. могут быть "возбуды" в таком режиме.

мс34063 раскачивает трансформатор внутренним транзистором, у него малое пробойное напряжение к-э,

- долго не проживет, и можно ограничить всплески напряжений на данной цепи. 

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

 

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

Стаб стоит так как были большие пульсации и при замере напряжения без опорного были большие скачки, сейчас уже написано с опорным в 1.1 вольта. Но стаб стоит на сякий случай так как выход повышайки не стабилен и дает по сути возможность использовать другие повышайки не обязательно ровно на 5 вольт, изначально повышайка планировалась на 6 вольт. 

мс34063 работает стабильно. Даже при настройке когда уходила в разнос и грелась так что на тестовой плате плавилась на ней изолента, но переживает такие издевательства хорошо. В штатном штатном режиме работает без напрягов. 

Igor_116
Offline
Зарегистрирован: 09.11.2017

 такие издевательства хорошо.

чем?

[/quote]

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

Она пережила эти издевательства хорошо, а не то что издеваться над ней это хорошо.

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

«заметил это когда делал запуск с кнопки, изначально планировалось включать подав питание через диод на схему в обход мосфета, но преобразователи не хотят так работать.»

Ради эксперимента даже 6 диодов uf4007 в паралелль, не запускалось, только если напрямую подать либо через мосфет. Да и это моя первая работа, до этого ничего своего не придумывал, да и нечего сложнее уселителей на tda не паял.

nasfiratu666
Offline
Зарегистрирован: 25.10.2019

Приветствую, такой вопрос, ехал сегодня с включенным дозиметром, в одном месте (там как холмы) находится предприятие которое производит всякое из железа(фрезеровка , что то ещё) дозиметр запищал и выдал больше 100мкР(фон дома около 15), на обратном пути все норм, что они там могли делать? или это глюк дозиметра? около километра показания падали

bogdannin1
Offline
Зарегистрирован: 27.10.2018

nasfiratu666 пишет:
Приветствую, такой вопрос, ехал сегодня с включенным дозиметром, в одном месте (там как холмы) находится предприятие которое производит всякое из железа(фрезеровка , что то ещё) дозиметр запищал и выдал больше 100мкР(фон дома около 15), на обратном пути все норм, что они там могли делать? или это глюк дозиметра? около километра показания падали

Случайно не в Украине живете?

nasfiratu666
Offline
Зарегистрирован: 25.10.2019

нет, Россия, Красноярск, ОКБ микрон(судя по вывеске на трассе, но там фуры стояли), просто реально офигел)

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

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

nasfiratu666
Offline
Зарегистрирован: 25.10.2019

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

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

Левая кнопка на плате Алекса. По нажатию происходит сброс набранного массива и начинается новый набор. Пока мигает - быстрый замер (неточный). Зато показания сразу выдаёт.

nasfiratu666
Offline
Зарегистрирован: 25.10.2019

да, так и есть, если сбросить, бывает до 28 скачет, надо было остановится, перепроверить, но на работу спешил, спасибо за пояснение, так режима поиска как такового нету?

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

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

nasfiratu666
Offline
Зарегистрирован: 25.10.2019

понял,просто показания пасли, потом утихали по мере удаления, вот и удивился, вполне могли дохлые фуры такое показать

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

Не исключён и повышенный фон, но в проезжающем автобусе сложно такое уловить.

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

Глюк, там на земле фон больше миллирентгена быть должен чтобы дозиметр в машине на ходу что то увидел.

bogdannin1
Offline
Зарегистрирован: 27.10.2018

nasfiratu666 пишет:
нет, Россия, Красноярск, ОКБ микрон(судя по вывеске на трассе, но там фуры стояли), просто реально офигел)

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

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

Не стоит верить сми, фон в Киеве 15-20 мкР.

Young electro
Offline
Зарегистрирован: 08.04.2020

Привет, собрал свой девайс. Из этой схемы взял только часть формирования импульса. Как итог, нет счёта. Ставил конденсатор на 10pF, счёт появился, но очень бешеный. Кто может подсказать в чем может быть причина? Транзистор использовал BC817. Гейгер исправный.

mrokodes
Offline
Зарегистрирован: 29.08.2019

в каком месте фонит я тоже из КРАСНОЯРСКА  . иногда ночью заверещит фон подымается до 30. и причём только ночью включал по ночам или на весь день верещит по ночам . Советский район

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

Young electro, вряд ли дело в формирователе. Скорее всего проблема с высоким (если счётчик исправен). А при малой ёмкости помехоподавителя на счётный вход идёт помеха от накачки. Если имеется осциллограф - смотрите форму сигнала на выходе, образец в теме есть.
mrokodes, ставить аварийный порог ниже 45-50 не рекомендуется, будут как раз такие случайные сработки.

Young electro
Offline
Зарегистрирован: 08.04.2020

Через делитель измеряю высокое напряжение через АЦП, показывает исправно, подкачиваю чтобы было 400 В. В это коронное время нет возможности воспользоваться осциллографом, если измерять высокое напряжение мультиметром, то из-за маленького сопротивления мультиметра оно проседает до 250 В при том что на мультике показывает точно то же самое что и на экране устройства.

Имеется схема, делал давно, там я снимал импульс с анода через конденсатор или пассивный динамик, чтобы было слышно щелчки. Для проверки подсоединял выход с преобразователя высокого напряжения сделанного устройства на ту схему, там всё щелкало и работало, поэтому и не понятно, в чем может быть проблема. Да, ещё особо не понятно, при попадании частицы в трубку, яркая ионизация газа внутри трубки это нормальное явление? Или этот процесс должен быть менее интенсивен?

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

Менее. Анадный резистор точно более пяти мегаом? Выкладывайте используемую схему целиком. Или хотя бы часть преобразователь-детектор с номиналами.

Young electro
Offline
Зарегистрирован: 08.04.2020


9 Мом

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

R17 лучше в пределах 4-10к. Остальное вроде в норме. Полярность счётчика не перепутана? При ёмкости помехоподавителя C7 около 700 пик и 300 пик как себя ведёт?

Young electro
Offline
Зарегистрирован: 08.04.2020

Если корпус катод, то не перепутал. Ставил 470pF 220pF, тишина.

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

Странно. Тогда только шшупать осциллографом. Как вариант попробовать другой транзистор, может неисправный.
По разряду. R9, R16, R38 номиналы соответствуют? Промыто под ними хорошо, пробивать не может?
Параллельно R17 можно напаять прследовательную цепочку из резистора на 1к и светодиода, чтобы наблюдать импульсы не дожидиясь реакции счётной части.

Young electro
Offline
Зарегистрирован: 08.04.2020

Транзистор исправен, подавал на делитель базы 3,3 В, засчитывает импульс. Насчёт R9, R16, R38 обманул, стоят по 2 МОм каждый smd 1206, то есть общее 6 МОм. Насколько я думаю, что импульса вообще нет

vasyaveterok
Offline
Зарегистрирован: 25.02.2019
Доброго времени суток ! Хотел бы выразить огромную благодарность форумчанам - bodriy2014, tekagi, alexadresat,а так же всем причастным к данной теме , спасибо вам за проделанный труд! 
Еще год назад(или даже больше) наткнулся на видео на ютубе,а потом и на эту тему . Решил собрать себе дозиметр. Немного переработал внешний вид,из-за лени заменил ардуино на нано, была мысль добавить какую нибудь простенькую игрушку типа тетрис или змейка, а так же вместо фонарного светодиода использовать ультрафиолетовый светодиод( для подсветки например ториевого стекла),а на доп кнопку напрямую посадить фонарик,с мощным диодом.....именно для этого была добавлена 4 кнопка(понимаю что портит вид ,но фантазии они такие....).
В итоге собрал,и забросил проэкт.
Потом, как то ,все таки, решил его доработать,заменив аккум 18650 на ли-полимерный приличного размера,и доработав корпус до более менее человеческого вида. 
Соответсвенно прикрепляю архив с печаткой ,модельками корпуса ,и фотками.
 
Еще раз выражаю всем огромный респект за ваше потраченное время.
 
 
 
медведь
Offline
Зарегистрирован: 31.07.2019

с такими габаритами его можно на руке повесть типа как напульсник 

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

Кто разбирается в коде, просьба убрать всё и оставить код только чтобы на экран выводилось напряжение питания и можно было в коде указать опорное напряжение мк. Сам не осилил. Спасибо.

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Если под разводку Ардоса, то вот:

#include <avr/delay.h>

#include <LCD5110_Graph.h> //библиотека ArDOs
LCD5110 LCD(A1, A0, 12, 10, 11); //обьявляем дисплей с указанием пинов подключения (CLK, DIN, DC, RST, CE)

extern uint8_t SmallFont[]; //указываем наличие массива со шрифтом SmallFont в библиотеке

//Настройки//

#define opornoe 1.10 //опорное напряжение

//Настройки для опытных пользователей//
#define DDR_REG(portx)  (*(&portx-1))

//пин подсветки A2
#define LIGHT_BIT   2 // A2
#define LIGHT_PORT  PORTC

#define LIGHT_ON    (bitClear(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OFF   (bitSet(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OUT   (bitSet((DDR_REG(LIGHT_PORT)), LIGHT_BIT))

#define LIGHT_INIT  LIGHT_OFF; LIGHT_OUT

//пин питания дисплея A3
#define PWR_LCD_ON    bitClear(PORTC, 3)
#define PWR_LCD_OUT   bitSet((DDR_REG(PORTC)), 3)

#define PWR_LCD_INIT  PWR_LCD_ON; PWR_LCD_OUT

uint32_t t=0;

//--------------------------------------Инициализация---------------------------------------------------
void setup(void) //инициализация
    {
    //PWR_LCD_INIT;
    //PWR_LCD_ON;

    //LIGHT_INIT; //если нужна подсветка
    //LIGHT_ON; //если нужна подсветка
    
    LCD.InitLCD(); //инициализируем дисплей 
    LCD.setContrast(70);
    LCD.clrScr();

}
//--------------------------------Чтение напряжения батареи-------------------------------------
uint16_t VCC_read(void)  // Чтение напряжения батареи
{
ADCSRA = 0b11100111;
ADMUX = 0b01101110;//Выбор внешнего опорного+BG
_delay_ms(5);
while ((ADCSRA & 0x10) == 0);
ADCSRA |= 0x10;
uint8_t resu = ADCH;
//ADCSRA &= ~(1 << ADEN);  // отключаем АЦП
return resu;
}
//----------------------------------Главная-------------------------------------------------------------
void loop(void) //главная
    {
 if(millis() > t){
  float vcc_bat = (opornoe * 255.0) / VCC_read(); //состояние батареи
  
  LCD.clrScr(); // Очистка экрана
  
  LCD.setFont(SmallFont); //установка шрифта
  LCD.print("vcc bat: " + String(vcc_bat, 2) + "v",LEFT,16); //напряжение акб
  LCD.update();

  t=millis()+1000;
 }
}

 

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

Спасибо, но кроме инициализации дисплея больше ничего не отображается.

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

Можете пофиксить, а то устройство раскидал уже для прошивки, а собирать теперь незачем. Библиотеку указал LCD5110_Graph

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

По подробнее можно? в каком плане "кроме инициализации дисплея"?

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

Чистый дисплей, я просто вижу под углом что он включён и всё, больше ничего. Смотрю в коде там вроде дёргаете пин питания дисплея, если я правильно понял, у меня он питается напрямую.

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Попробуйте так. Если будет так же, попробуйте без миллис.

#include <avr/delay.h>
    
//#include <LCD5110_SSVS.h> //библиотека RADON
//LCD5110 LCD(A1, A0, 12, 10); //обьявляем дисплей с указанием пинов подключения (CLK, DIN, DC, RST)

#include <LCD5110_Graph.h> //библиотека ArDOs
LCD5110 LCD(A1, A0, 12, 10, 11); //обьявляем дисплей с указанием пинов подключения (CLK, DIN, DC, RST, CE)

extern uint8_t SmallFont[]; //указываем наличие массива со шрифтом SmallFont в библиотеке

//Настройки//

#define opornoe 1.10 //опорное напряжение

//Настройки для опытных пользователей//
#define DDR_REG(portx)  (*(&portx-1))

//пин подсветки A2
#define LIGHT_BIT   2 // A2
#define LIGHT_PORT  PORTC

#define LIGHT_ON    (bitClear(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OFF   (bitSet(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OUT   (bitSet((DDR_REG(LIGHT_PORT)), LIGHT_BIT))

#define LIGHT_INIT  LIGHT_OFF; LIGHT_OUT

//пин питания дисплея A3
#define PWR_LCD_ON    bitClear(PORTC, 3)
#define PWR_LCD_OUT   bitSet((DDR_REG(PORTC)), 3)

#define PWR_LCD_INIT  PWR_LCD_ON; PWR_LCD_OUT

//пин CE дисплея D11
#define LCD_ON    bitClear(PORTB, 3)
#define LCD_OUT   bitSet((DDR_REG(PORTB)), 3)

#define LCD_INIT  LCD_ON; LCD_OUT

uint32_t t=0;

//--------------------------------------Инициализация---------------------------------------------------
void setup(void) //инициализация
    {
    PWR_LCD_INIT;
    PWR_LCD_ON;

    //LCD_INIT; //только для библиотеки LCD5110_SSVS
    //LCD_ON; //только для библиотеки LCD5110_SSVS

    //LIGHT_INIT; //если нужна подсветка
    //LIGHT_ON; //если нужна подсветка
    
    LCD.InitLCD(); //инициализируем дисплей 
    LCD.setContrast(70);
    LCD.clrScr();

}
//--------------------------------Чтение напряжения батареи-------------------------------------
uint16_t VCC_read(void)  // Чтение напряжения батареи
{
ADCSRA = 0b11100111;
ADMUX = 0b01101110;//Выбор внешнего опорного+BG
_delay_ms(5);
while ((ADCSRA & 0x10) == 0);
ADCSRA |= 0x10;
uint8_t resu = ADCH;
//ADCSRA &= ~(1 << ADEN);  // отключаем АЦП
return resu;
}
//----------------------------------Главная-------------------------------------------------------------
void loop(void) //главная
    {
 if(millis() > t){
  float vcc_bat = (opornoe * 255.0) / VCC_read(); //состояние батареи
  
  LCD.clrScr(); // Очистка экрана
  
  LCD.setFont(SmallFont); //установка шрифта
  LCD.print("vcc bat: " + String(vcc_bat, 2) + "v",CENTER,16); //напряжение акб
  LCD.update();

  t=millis()+1000;
 }
}

У вас точно разводка как в схеме Ардос?

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

Пины дисплея я поменял в скетче, у меня 7,6,5,4,3. Прошивка от Ардоса с изменёнными пинами дисплея запускается. Проверю скетч чуть позже.

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Нашел проблему, библиотека LCD5110_SSVS не использует буфер на стороне мк в отличии от LCD5110_Graph, соответственно команды update(); и не было, поправил пробуйте.

#include <avr/delay.h>

#include <LCD5110_Graph.h> //библиотека ArDOs
LCD5110 LCD(A1, A0, 12, 10, 11); //обьявляем дисплей с указанием пинов подключения (CLK, DIN, DC, RST, CE)

extern uint8_t SmallFont[]; //указываем наличие массива со шрифтом SmallFont в библиотеке

//Настройки//
#define opornoe 1.10 //опорное напряжение

//Настройки для опытных пользователей//
#define DDR_REG(portx)  (*(&portx-1))

//пин подсветки A2
#define LIGHT_BIT   2 // A2
#define LIGHT_PORT  PORTC

#define LIGHT_ON    (bitClear(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OFF   (bitSet(LIGHT_PORT, LIGHT_BIT))
#define LIGHT_OUT   (bitSet((DDR_REG(LIGHT_PORT)), LIGHT_BIT))

#define LIGHT_INIT  LIGHT_OFF; LIGHT_OUT

//пин питания дисплея A3
#define PWR_LCD_ON    bitClear(PORTC, 3)
#define PWR_LCD_OUT   bitSet((DDR_REG(PORTC)), 3)

#define PWR_LCD_INIT  PWR_LCD_ON; PWR_LCD_OUT

uint32_t t=0;

//--------------------------------------Инициализация---------------------------------------------------
void setup(void) //инициализация
    {
    //PWR_LCD_INIT;
    //PWR_LCD_ON;

    //LIGHT_INIT; //если нужна подсветка
    //LIGHT_ON; //если нужна подсветка
    
    LCD.InitLCD(); //инициализируем дисплей 
    LCD.setContrast(70);
    LCD.clrScr();

}
//--------------------------------Чтение напряжения батареи-------------------------------------
uint16_t VCC_read(void)  // Чтение напряжения батареи
{
ADCSRA = 0b11100111;
ADMUX = 0b01101110;//Выбор внешнего опорного+BG
_delay_ms(5);
while ((ADCSRA & 0x10) == 0);
ADCSRA |= 0x10;
uint8_t resu = ADCH;
//ADCSRA &= ~(1 << ADEN);  // отключаем АЦП
return resu;
}
//----------------------------------Главная-------------------------------------------------------------
void loop(void) //главная
    {
 if(millis() > t){
  float vcc_bat = (opornoe * 255.0) / VCC_read(); //состояние батареи
  
  LCD.clrScr(); // Очистка экрана
  
  LCD.setFont(SmallFont); //установка шрифта
  LCD.print("vcc bat: " + String(vcc_bat, 2) + "v",LEFT,16); //напряжение акб
  LCD.update();

  t=millis()+1000;
 }
}

 

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

Да, работает, спасибо!

А за что отвечают строки? Их можно удалять?

#define DDR_REG(portx)  (*(&portx-1))
uint32_t t=0;