Удалось добиться 2.7мА. Похоже, вернусь к nop'ам, по настройке придётся думать.
Кстати, идея для сервис-меню: если брать за опорное напряжение питания (можно периодически калибровать его по внутреннему опорнику), то можно мерять падение на резисторе в цепи питания преобразователя и врежиме реального времени смотреть потребляемый ток.
нам не обязательное опорное ставить 1,1 можно и с АКБ ставить и потом с помощью benGap его мерить, но это дольше, при сильной дозе будет тормозить.
Можно и при таком опорном, поставить отключаемый делитель на лапку ардуины. Прижали к земле, померяли на делителе, отпустили.
bodriy2014 пишет:
_delay_us(18); это 18 мкС начни с одной.
Упс, лопухнулся. Спутал такты и микросекунды... _delay_us(1); совпало с моими 18ю nop'ами. Всё верно, при 16МГЦ 16 тактов плюс время на запись в регистр. Получается, что это минимальное допустимое значение и изменять можно только с таким шагом? Многовато.
У меня в наличии только 5110 и 1602. ОЛЕДов пару заказал, но когда они дойдут... Для продвинутого функционала семисегментника мало (его бы хорошо с парой регистров в тини-версию, как карманный неубиваемый).
bodriy2014 пишет:
Возможно свободный таймер останется...
Хотелось бы задействовать ватчдог по назначению, а то дозик подвис в кармане, а на него надеешься. Про проблемы с загрузчиком знаю.
bodriy2014 пишет:
tekagi
Дай пож схему как ты импульс снимаешь.
Только подумал, что надо бы схему выложить, может ещё любители (радиофобы и радиофилы) подтянутся. На данный момент макетка такая. Кондер в цепи питания импульсника поменяю на меньший, резистор на больший (ставил то, до чего рука дотянулась).
Давай лучше 5110. Писарь из меня пока неважный, я ж вопросами замучаю, пока ты будешь основной код ваять )) Когда нормально заработает - можно и под другие дисплеи адаптировать.
Может shet вообще boolean сделать? В прерывании ставим в единицу, в loop'e проверяем, если единица - сбрасываем в ноль, выполняем нужные действия (изменение переменных, замер напруги, индикацию). Ну и замер напряжения и проверка есть ли вообще импульсы (всё ли в порядке с ВВ частью и датчиком) просто выполняем с периодичностью раз в n секунд.
Может shet вообще boolean сделать? В прерывании ставим в единицу, в loop'e проверяем, если единица - сбрасываем в ноль, выполняем нужные действия (изменение переменных, замер напруги, индикацию). Ну и замер напряжения и проверка есть ли вообще импульсы (всё ли в порядке с ВВ частью и датчиком) просто выполняем с периодичностью раз в n секунд.
Оно то можно но если импульсы пачкой прилетят мы их поймаем,
а если сбрасывать флаг и его проверять в коде, то код нужно ужать то мертвого времени счетчика,
пока счетчик мертв после импульса и не может поймать частицу мы должны будем все успеть.
А если счетчики в паралель два тогда точно не успеем.
подобрать нужный импульс :( То много, то мало, 2.7мА против прежних 0.94мА. Слишком грубая настройка получается. Если цикл на асме реализовать, не быстрее будет? Или оставить nop'ы и не мучаться?
Этот-то код мне и не подошёл. Не знаю, за сколько тактов выполняется сравнение и декремент в цикле, но выходит очень много. Ох, чую на это таймер просится :( Буду копать информацию по регулируемой задержке на асме, Си здесь не помощник.
Проверил мою-твою схему под нагрузкой 2 тумблера с СПД показало себя отлично, сигнал на осциллографе не слипается и не захлебывается, есть четкие импульсы для прерывания.
R4 можно убрать , или ты его на всякий пожарный?
R3 уменьшай до 10-15КОм иначе фронт после импульса сильно пологий иногда наскакивает на соседние под нагрузкой. Я поставил себе 10кОм.
R3 уменьшай до 10-15КОм иначе фронт после импульса сильно пологий иногда наскакивает на соседние под нагрузкой. Я поставил себе 10кОм.
Ok. Перерисую и перевыложу.
bodriy2014 пишет:
R4 можно убрать , или ты его на всякий пожарный?
Как хочешь, на функционал он влиять не должен. Просто не люблю я напрямую к пинам цепляться: стоит ошибиться с конфигурацией в скетче - прощай, порт (а может и мега).
bodriy2014 пишет:
2 тумблера с СПД
Не держи подобную каку в жилых помещениях. СПД имеет свойство осыпаться и разлетаться по комнате радиоактивной пылью. Ну и обязательно держать их в герметичных пакетах с зип-застёжкой, не вынимая никогда. Я поэтому и не хочу подобные Контрольные Источники (КИ) использовать. Всё пытаюсь найти какое-нибудь изделие из уранового стекла.
По схеме: собираюсь ещё разделить R7 на 5 по 2МОм. Как из-за приведённой ёмкости так и из-за вероятности поверхностного пробоя. (Хотя всё равно планирую сделать ВВ часть отдельной платкой-модулем и залить пластик-лаком или эпоксидкой.)
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :(((( параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!) какие мощности резисторов ? диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
А как вы относитесь к такой схеме подключения счетчиков и снятия импульсов?
Со схемами включения транзистора с общей базой не сталкивался, поэтому ничего сказать не могу. Узел, который подобрад bodriy_2014 вполне справляется с задачей, менять смысла не вижу.
Joiner пишет:
И что за деталька отмеченная стрелкой?
Очень похоже на пьезотансформатор. Из серии "сам не сделаешь, и фиг достанешь".
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :(((( параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!) какие мощности резисторов ? диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
[/quote]
Привет.
---Я делал два транса один мотал гантельку в навал смог намотать 600 витков и схема эта без умножителя. Вторую взял котовую индуктивность и поверх намотал три свои витка и работает хорошо но с умножителем на три. Можно взять трас от китайской зарядки и убрать все обмотки кроме самой высокоомной и поверх нее намотать три витка.
---резисторы главное чтоб однопроцентные на делителе напряжения были, мощьность не важна там мили и микро Амперы.
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :((((
Больше тестеров - меньше багов в финальной версии ))
Surikat пишет:
диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
1N4007 не подойдёт, нужны именно высоковольтные диоды с высоким быстродействием. FR107 тоже може быть неоптимален (из-за тока обратной утечки), но у нас делитель больше просадит. А так - диод массовый и дешёвый.
Можно попробовать HER108, RGP10M, HER158...
Surikat пишет:
какие мощности резисторов ?
Любые) В финальной версии буду ставить смд, сейчас 0,125. В высоковольтной части больше, чем 0,125 ставить нельзя, увеличивается приведённая к счётчику ёмкость.
Surikat пишет:
параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!)
Я мотал на гантельке от балласта ЛДС, высотой 9 и внешним диаметром 6мм. Правда, перематывал несколько раз - изначально взял толстоватый провод и не помещалось :( Сделал ипровизированный намоточный станок: ручную дрель зажал в тисах, на патрон наклеил кусочек изоленты (считать витки). По большому счёту надо бы мотать порядово, с покрытием лаком каждые 50-100 витков, но сделал "по быстрому, авось сойдёт" внавал. Сначала мотается вторичка, вывода фиксируются на ножки гантельки. Потом термоусадка в размер, поверх первичка более толстым проводом. Перемотал заодно транс от китайской дешёвой одноамперной зарядки на Ш-образном сердечнике (чуть добавив зазора надфилем), но пока не тестировал. В "Дозиметре Сталкера" использовали для намотки Ш-образный дроссель от энергосберегаек 7-9Вт.
- параллельно конденсатору С1 поставить стабилитрон на 2,7 В (при питании от литий-ионного аккумулятора)
и резистор на 470 кОм,
- не устанавливать детали R1, R2, T1, R3, R4.
Дело не в шуме, это по плюсу СБМ-20 есть четкий импульс 200В и больше который мы можем взять через конденсатор и огграничив стабильтроном подать в Ардуино. Но как оказалось из паспорта на батчик так лучше не делать.
А по минусу датчика только куча шумов и всплеск тока в момент импульса, вот этот всплеск мы и формируем для компаратора. Вот пост где я проверял #127.
А Вы соответственно начните с ТОЭ, законов им. вышеупомянутого, тогда под откровенную лажу о различии токов на одном и втором выводе подгавкивать перестанете.
Разные режимы потребуют разной индикации. В обычном режиме скорее всего усреднённое значение за пару-тройку минут (при околофоновых значениях), график, скажем, за полчаса. В поисковом время замера и интервал отображения графика придётся сокращать. Пока над компоновкой не думал...
Вот пример максимализма Рад-Боя:
Какую библиотеку собираешься использовать? Я парочку потыкал, монструозные они. Вывод трёх значений на экран (даже не в лупе, а по времени несколько раз в секунду) сбивал накачку с 200 имп/с до 350. Так и не понял, почему.
Разные режимы потребуют разной индикации. В обычном режиме скорее всего усреднённое значение за пару-тройку минут (при околофоновых значениях), график, скажем, за полчаса. В поисковом время замера и интервал отображения графика придётся сокращать. Пока над компоновкой не думал...
Вот пример максимализма Рад-Боя:
Какую библиотеку собираешься использовать? Я парочку потыкал, монструозные они. Вывод трёх значений на экран (даже не в лупе, а по времени несколько раз в секунду) сбивал накачку с 200 имп/с до 350. Так и не понял, почему.
Ага видел, аж мельтишит.
Думаю больше двух или трех кнопок не стоит и одну из них на прерывание.
библиотеку эту, там ркский можно вкрутить без проблем
Мдеее. Попробовал
1
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
2
3
PORTD |= (1 << 5);
//дергаем пин 5
4
5
_delay_us(18);
6
7
PORTD &= ~(1 << 5);
//дергаем пин 5
8
9
}
Ток вырос до 33мА с 0.9мА. Не равно 18 тактам аж никак...
Вот так:
1
PORTD |= (1 << 5);
//дергаем пин 5
2
int
c=6;
3
while
(c>0){asm(
"nop"
); c--; }
4
PORTD &= ~(1 << 5);
//дергаем пин 5
Удалось добиться 2.7мА. Похоже, вернусь к nop'ам, по настройке придётся думать.
Кстати, идея для сервис-меню: если брать за опорное напряжение питания (можно периодически калибровать его по внутреннему опорнику), то можно мерять падение на резисторе в цепи питания преобразователя и врежиме реального времени смотреть потребляемый ток.
tekagi
_delay_us(18); это 18 мкС начни с одной.
нам не обязательное опорное ставить 1,1 можно и с АКБ ставить и потом с помощью benGap его мерить, но это дольше, при сильной дозе будет тормозить.
Счас такой скечь пользую, проверь прерывание.
01
//блок питания счетчика гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 230 //значение АЦП при котором 400В
07
byte
puls = 2;
//длинна импульса для трансформатора
08
//настройки //////////////конец
09
10
int
hv_adc;
11
volatile
int
shet = 0;
12
13
void
setup
() {
14
analogReference(INTERNAL);
15
pinMode(5, OUTPUT);
16
pinMode(13, OUTPUT);
17
nakachka();
//первая накачка
18
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
19
}
20
21
void
loop
() {
22
generator();
//накачка по обратной связи с АЦП
23
}
24
void
Schet() {
//прерывание на пин 2
25
detachInterrupt(0);
26
digitalWrite(13, !digitalRead(13));
27
shet++;
28
attachInterrupt(0, Schet, FALLING);
29
}
30
31
void
generator() {
//накачка по обратной связи с АЦП
32
hv_adc = analogRead(A2);
33
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
34
PORTD |= (1 << 5);
//дергаем пин 5
35
_delay_us(puls);
36
PORTD &= ~(1 << 5);
//дергаем пин 5
37
}
38
}
39
40
void
nakachka() {
//первая накачка
41
byte
n = 0;
42
while
(n < 20) {
43
PORTD |= (1 << 5);
//дергаем пин
44
n++;
45
_delay_us(puls);
46
PORTD &= ~(1 << 5);
//дергаем пин
47
_delay_us(100);
48
}
49
}
Работает, отсчёт вижу. Непривычно вместо коротких импульсов видеть зажигание по одной частице, погасание по другой))
tekagi
нам не обязательное опорное ставить 1,1 можно и с АКБ ставить и потом с помощью benGap его мерить, но это дольше, при сильной дозе будет тормозить.
Можно и при таком опорном, поставить отключаемый делитель на лапку ардуины. Прижали к земле, померяли на делителе, отпустили.
_delay_us(18); это 18 мкС начни с одной.
Упс, лопухнулся. Спутал такты и микросекунды... _delay_us(1); совпало с моими 18ю nop'ами. Всё верно, при 16МГЦ 16 тактов плюс время на запись в регистр. Получается, что это минимальное допустимое значение и изменять можно только с таким шагом? Многовато.
Счас такой скечь пользую, проверь прерывание.
01
//блок питания счетчика гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 230 //значение АЦП при котором 400В
07
byte
puls = 2;
//длинна импульса для трансформатора
08
//настройки //////////////конец
09
10
int
hv_adc;
11
volatile
int
shet = 0;
12
13
void
setup
() {
14
analogReference(INTERNAL);
15
pinMode(5, OUTPUT);
16
pinMode(13, OUTPUT);
17
nakachka();
//первая накачка
18
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
19
}
20
21
void
loop
() {
22
generator();
//накачка по обратной связи с АЦП
23
}
24
void
Schet() {
//прерывание на пин 2
25
detachInterrupt(0);
26
digitalWrite(13, !digitalRead(13));
27
shet++;
28
attachInterrupt(0, Schet, FALLING);
29
}
30
31
void
generator() {
//накачка по обратной связи с АЦП
32
hv_adc = analogRead(A2);
33
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
34
PORTD |= (1 << 5);
//дергаем пин 5
35
_delay_us(puls);
36
PORTD &= ~(1 << 5);
//дергаем пин 5
37
}
38
}
39
40
void
nakachka() {
//первая накачка
41
byte
n = 0;
42
while
(n < 20) {
43
PORTD |= (1 << 5);
//дергаем пин
44
n++;
45
_delay_us(puls);
46
PORTD &= ~(1 << 5);
//дергаем пин
47
_delay_us(100);
48
}
49
}
Работает, отсчёт вижу. Непривычно вместо коротких импульсов видеть зажигание по одной частице, погасание по другой))
Чтоб сделать без реверса а это нужно через милис чтоб бех делея.
Да это неважно, главное было увидеть приём и обработку импульса.
tekagi
Вернул прежнюю экономию!
У меня в коде просто нопы, вайл для меня долгий проверял.
Нужно будет что-то придумать чтоб более гибко с меню настраивать под любой транс.
Возможно свободный таймер останется тогде сделаем на нем.
Пока код такой, думаю о дисплее.
01
//блок питания счетчика гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 190 //значение АЦП при котором 400В с учетом вашего делителя напряжения
07
#define led 4 //пин светика
08
//настройки //////////////конец
09
10
int
hv_adc;
11
volatile
int
shet = 0;
12
13
void
setup
() {
14
analogReference(INTERNAL);
15
pinMode(5, OUTPUT);
16
pinMode(led, OUTPUT);
17
nakachka();
//первая накачка
18
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
19
}
20
21
void
loop
() {
22
generator();
//накачка по обратной связи с АЦП
23
}
24
void
Schet() {
//прерывание от счетчика на пин 2
25
detachInterrupt(0);
26
digitalWrite(led, !digitalRead(led));
27
shet++;
28
attachInterrupt(0, Schet, FALLING);
29
}
30
31
void
generator() {
//накачка по обратной связи с АЦП
32
hv_adc = analogRead(A2);
33
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
34
PORTD |= (1 << 5);
//дергаем пин 5
35
asm(
"nop"
); asm(
"nop"
); asm(
"nop"
); asm(
"nop"
);
//точная задержка импульса транзистора
36
PORTD &= ~(1 << 5);
//дергаем пин 5
37
}
38
}
39
40
void
nakachka() {
//первая накачка
41
byte
n = 0;
42
while
(n < 20) {
43
PORTD |= (1 << 5);
//дергаем пин
44
n++;
45
asm(
"nop"
); asm(
"nop"
); asm(
"nop"
); asm(
"nop"
);
//точная задержка импульса транзистора
46
PORTD &= ~(1 << 5);
//дергаем пин
47
_delay_us(100);
48
}
49
}
tekagi
Дай пож схему как ты импульс снимаешь.
Пока код такой, думаю о дисплее.
У меня в наличии только 5110 и 1602. ОЛЕДов пару заказал, но когда они дойдут... Для продвинутого функционала семисегментника мало (его бы хорошо с парой регистров в тини-версию, как карманный неубиваемый).
Возможно свободный таймер останется...
Хотелось бы задействовать ватчдог по назначению, а то дозик подвис в кармане, а на него надеешься. Про проблемы с загрузчиком знаю.
tekagi
Дай пож схему как ты импульс снимаешь.
Только подумал, что надо бы схему выложить, может ещё любители (радиофобы и радиофилы) подтянутся. На данный момент макетка такая. Кондер в цепи питания импульсника поменяю на меньший, резистор на больший (ставил то, до чего рука дотянулась).
По дисплеям у меня два варианта.
Если у тебя есть желание я могу начать на Олед писать а ты параллельно на 5110.
Если нет я начну на 5110.
1
PORTD |= (1 << 5);
//дергаем пин
2
n++;
3
asm(
"nop"
); asm(
"nop"
); asm(
"nop"
); asm(
"nop"
);
//точная задержка импульса транзистора
4
PORTD &= ~(1 << 5);
//дергаем пин
5
_delay_us(100);
Перенеси n++ ниже PORTD &= ~(1 << 5);//дергаем пин, инкременту тоже надо время на выполнение, будем путаться.
Давай лучше 5110. Писарь из меня пока неважный, я ж вопросами замучаю, пока ты будешь основной код ваять )) Когда нормально заработает - можно и под другие дисплеи адаптировать.
1
digitalWrite(led, !digitalRead(led));
лучше убрать из прерывания, не будем терять время. Проверяем в loop'e, изменился ли shet и меняем состояние леда (или генерим импульс).
В остальном - работает.
Спасибо что ткнул носом!)
теперь и в меню есть настройка и мне подходит у меня импульс 400нС
01
//блок питания счетчика гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 190 //значение АЦП при котором 400В с учетом вашего делителя напряжения
07
#define led 13 //пин светика
08
#define puls 4 //тонкая настройка длинны импульса высоковольтного транса
09
//настройки //////////////конец
10
11
int
hv_adc;
12
volatile
int
shet = 0;
13
14
void
setup
() {
15
analogReference(INTERNAL);
16
pinMode(5, OUTPUT);
17
pinMode(led, OUTPUT);
18
nakachka();
//первая накачка
19
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
20
}
21
22
void
loop
() {
23
generator();
//накачка по обратной связи с АЦП
24
}
25
void
Schet() {
//прерывание от счетчика на пин 2
26
detachInterrupt(0);
27
digitalWrite(led, !digitalRead(led));
28
shet++;
29
attachInterrupt(0, Schet, FALLING);
30
}
31
32
void
generator() {
//накачка по обратной связи с АЦП
33
hv_adc = analogRead(A2);
34
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
35
PORTD |= (1 << 5);
//дергаем пин 5
36
int
c=puls;
37
while
(c>0){asm(
"nop"
); c--; }
38
PORTD &= ~(1 << 5);
//дергаем пин 5
39
}
40
}
41
42
void
nakachka() {
//первая накачка
43
byte
n = 0;
44
while
(n < 20) {
45
PORTD |= (1 << 5);
//дергаем пин
46
int
c=puls;
47
while
(c>0){asm(
"nop"
); c--; }
48
PORTD &= ~(1 << 5);
//дергаем пин
49
n++;
50
_delay_us(100);
51
}
52
}
Может shet вообще boolean сделать? В прерывании ставим в единицу, в loop'e проверяем, если единица - сбрасываем в ноль, выполняем нужные действия (изменение переменных, замер напруги, индикацию). Ну и замер напряжения и проверка есть ли вообще импульсы (всё ли в порядке с ВВ частью и датчиком) просто выполняем с периодичностью раз в n секунд.
Может shet вообще boolean сделать? В прерывании ставим в единицу, в loop'e проверяем, если единица - сбрасываем в ноль, выполняем нужные действия (изменение переменных, замер напруги, индикацию). Ну и замер напряжения и проверка есть ли вообще импульсы (всё ли в порядке с ВВ частью и датчиком) просто выполняем с периодичностью раз в n секунд.
Оно то можно но если импульсы пачкой прилетят мы их поймаем,
а если сбрасывать флаг и его проверять в коде, то код нужно ужать то мертвого времени счетчика,
пока счетчик мертв после импульса и не может поймать частицу мы должны будем все успеть.
А если счетчики в паралель два тогда точно не успеем.
Оно то можно но если импульсы пачкой прилетят мы их поймаем,
а если сбрасывать флаг и его проверять в коде, то код нужно ужать то мертвого времени счетчика,
пока счетчик мертв после импульса и не может поймать частицу мы должны будем все успеть.
А если счетчики в паралель два тогда точно не успеем.
Согласен, не подойдёт.
Не удалось мне с кодом
1
while
(c>0){asm(
"nop"
); c--; }
подобрать нужный импульс :( То много, то мало, 2.7мА против прежних 0.94мА. Слишком грубая настройка получается. Если цикл на асме реализовать, не быстрее будет? Или оставить nop'ы и не мучаться?
.... Если цикл на асме реализовать, не быстрее будет? Или оставить nop'ы и не мучаться?
Будет быстрее, У ИДЕ есть оптимизация кода,
возможно вайл не сразу выполняется а после нопов.
Мне этот кусок подешел, быстро получается
1
void
generator() {
//накачка по обратной связи с АЦП
2
hv_adc = analogRead(A2);
3
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
4
PORTD |= (1 << 5);
//дергаем пин 5
5
int
c=puls;
6
while
(c>0){asm(
"nop"
); c--; }
7
PORTD &= ~(1 << 5);
//дергаем пин 5
8
}
9
}
Этот-то код мне и не подошёл. Не знаю, за сколько тактов выполняется сравнение и декремент в цикле, но выходит очень много. Ох, чую на это таймер просится :( Буду копать информацию по регулируемой задержке на асме, Си здесь не помощник.
Проверил мою-твою схему под нагрузкой 2 тумблера с СПД показало себя отлично, сигнал на осциллографе не слипается и не захлебывается, есть четкие импульсы для прерывания.
R4 можно убрать , или ты его на всякий пожарный?
R3 уменьшай до 10-15КОм иначе фронт после импульса сильно пологий иногда наскакивает на соседние под нагрузкой. Я поставил себе 10кОм.
В чем ты схемы рисуешь?
В чем ты схемы рисуешь?
sPlan (rusPlan) 7
R3 уменьшай до 10-15КОм иначе фронт после импульса сильно пологий иногда наскакивает на соседние под нагрузкой. Я поставил себе 10кОм.
Ok. Перерисую и перевыложу.
R4 можно убрать , или ты его на всякий пожарный?
Как хочешь, на функционал он влиять не должен. Просто не люблю я напрямую к пинам цепляться: стоит ошибиться с конфигурацией в скетче - прощай, порт (а может и мега).
Не держи подобную каку в жилых помещениях. СПД имеет свойство осыпаться и разлетаться по комнате радиоактивной пылью. Ну и обязательно держать их в герметичных пакетах с зип-застёжкой, не вынимая никогда. Я поэтому и не хочу подобные Контрольные Источники (КИ) использовать. Всё пытаюсь найти какое-нибудь изделие из уранового стекла.
По схеме: собираюсь ещё разделить R7 на 5 по 2МОм. Как из-за приведённой ёмкости так и из-за вероятности поверхностного пробоя. (Хотя всё равно планирую сделать ВВ часть отдельной платкой-модулем и залить пластик-лаком или эпоксидкой.)
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :(((( параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!) какие мощности резисторов ? диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
надо ехать в Домбай кусок гранита отковырять, для проверки прибора пойдёт
Гранит тоже разный бывает, мне пока особо активных не попадалось. Максимум в два - два с половиной раза над фоном.
уже нормально жеж
А как вы относитесь к такой схеме подключения счетчиков и снятия импульсов? И что за деталька отмеченная стрелкой?
Это фрагмент схемы бытового дозиметра
А как вы относитесь к такой схеме подключения счетчиков и снятия импульсов?
Со схемами включения транзистора с общей базой не сталкивался, поэтому ничего сказать не могу. Узел, который подобрад bodriy_2014 вполне справляется с задачей, менять смысла не вижу.
И что за деталька отмеченная стрелкой?
Очень похоже на пьезотансформатор. Из серии "сам не сделаешь, и фиг достанешь".
......................................
Очень похоже на пьезотансформатор. Из серии "сам не сделаешь, и фиг достанешь".
P.S. До сегодняшнего дня не знал о существовании такой детальки.
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :(((( параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!) какие мощности резисторов ? диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
[/quote]
Привет.
---Я делал два транса один мотал гантельку в навал смог намотать 600 витков и схема эта без умножителя. Вторую взял котовую индуктивность и поверх намотал три свои витка и работает хорошо но с умножителем на три. Можно взять трас от китайской зарядки и убрать все обмотки кроме самой высокоомной и поверх нее намотать три витка.
---резисторы главное чтоб однопроцентные на делителе напряжения были, мощьность не важна там мили и микро Амперы.
---нужны быстрые диоды.
Очень похоже на пьезотансформатор. Из серии "сам не сделаешь, и фиг достанешь".
Я таких тоже не встречал.
bodriy2014, опередил)
уменя возникли вопросы , извеняюсь что вклиниваюсь в процес разработки кодов :((((
Больше тестеров - меньше багов в финальной версии ))
диод FR107 заменить на 1N4007 док 1А 1000В или быстродействие слишком мало?
1N4007 не подойдёт, нужны именно высоковольтные диоды с высоким быстродействием. FR107 тоже може быть неоптимален (из-за тока обратной утечки), но у нас делитель больше просадит. А так - диод массовый и дешёвый.
Можно попробовать HER108, RGP10M, HER158...
какие мощности резисторов ?
Любые) В финальной версии буду ставить смд, сейчас 0,125. В высоковольтной части больше, чем 0,125 ставить нельзя, увеличивается приведённая к счётчику ёмкость.
параметры гантельки можно ли готовую куить если только мотать (можно в новал витков очень много нужно сделать!!!!)
Я мотал на гантельке от балласта ЛДС, высотой 9 и внешним диаметром 6мм. Правда, перематывал несколько раз - изначально взял толстоватый провод и не помещалось :( Сделал ипровизированный намоточный станок: ручную дрель зажал в тисах, на патрон наклеил кусочек изоленты (считать витки). По большому счёту надо бы мотать порядово, с покрытием лаком каждые 50-100 витков, но сделал "по быстрому, авось сойдёт" внавал. Сначала мотается вторичка, вывода фиксируются на ножки гантельки. Потом термоусадка в размер, поверх первичка более толстым проводом. Перемотал заодно транс от китайской дешёвой одноамперной зарядки на Ш-образном сердечнике (чуть добавив зазора надфилем), но пока не тестировал. В "Дозиметре Сталкера" использовали для намотки Ш-образный дроссель от энергосберегаек 7-9Вт.
tekagi
Привет.
Переделал мигание диодом и буззером в отдельную функцию.
Теперь более привычно и по скорости исполнения отлично.
Когда все ноги рапределим нужно будет зманить Ардуиновские дерганья на С++
Поделись на почту в Splan схемой, пожалуйста.
(была почта)
01
//Питание и индикация счетчика Гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 190 //значение АЦП при котором 400В с учетом вашего делителя напряжения
07
#define puls 4 //тонкая настройка длинны импульса высоковольтного транса
08
#define led 13 //пин светика
09
#define buzz 8 //пин бузера
10
bool
led_ON = 1;
//включить индикацию светодтодом (1)
11
bool
buzz_ON = 0;
//включить индикацию бузером (1)
12
//настройки //////////////конец
13
14
int
hv_adc, shet_s;
15
volatile
int
shet = 0;
16
unsigned
long
mil_s = 0;
17
18
void
setup
() {
19
analogReference(INTERNAL);
20
pinMode(5, OUTPUT);
21
pinMode(led, OUTPUT);
22
pinMode(buzz, OUTPUT);
23
nakachka();
//первая накачка
24
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
25
}
26
27
void
loop
() {
28
generator();
//накачка по обратной связи с АЦП
29
signa ();
//подача сигнала о частичке
30
}
31
void
signa () {
//индикация каждой частички звуком или светом
32
if
(shet_s != shet) {
33
shet_s = shet;
34
if
(led_ON == 1) {
35
digitalWrite(led, HIGH);
36
}
37
if
(buzz_ON == 1) {
38
digitalWrite(buzz, HIGH);
39
}
40
}
41
if
(millis() - mil_s >= 10) {
42
mil_s = millis();
43
digitalWrite(led, LOW);
44
digitalWrite(buzz, LOW);
45
}
46
}
47
48
void
Schet() {
//прерывание от счетчика на пин 2
49
detachInterrupt(0);
50
shet++;
51
attachInterrupt(0, Schet, FALLING);
52
}
53
54
void
generator() {
//накачка по обратной связи с АЦП
55
hv_adc = analogRead(A2);
56
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
57
PORTD |= (1 << 5);
//дергаем пин 5
58
int
c = puls;
59
while
(c > 0) {
60
asm(
"nop"
);
61
c--;
62
}
63
PORTD &= ~(1 << 5);
//дергаем пин 5
64
}
65
}
66
67
void
nakachka() {
//первая накачка
68
byte
n = 0;
69
while
(n < 20) {
70
PORTD |= (1 << 5);
//дергаем пин
71
int
c = puls;
72
while
(c > 0) {
73
asm(
"nop"
);
74
c--;
75
}
76
PORTD &= ~(1 << 5);
//дергаем пин
77
n++;
78
_delay_us(100);
79
}
80
}
Почту не свети, заспамят) Сейчас кину.
Почту не свети, заспамят) Сейчас кину.
Удалю, но спамерам не переплюнуть подписчиков у которых пультоскоп не компилируется из-за отсутствия библиотек)))))))))
Плата за популярность :D
Переделал пока так:
Спасибо за разъеснения!!! на мои вопросы!!! :(
Текущая моя схема и скетч
01
//Питание и индикация счетчика Гейгера
02
#include <util/delay.h>
03
04
//настройки /////////////начало
05
#define ADC_HV A2 //пин замера высокого
06
#define ADC 190 //значение АЦП при котором 400В с учетом вашего делителя напряжения
07
#define puls 4 //тонкая настройка длинны импульса высоковольтного транса
08
#define led 13 //пин светика
09
#define buzz 8 //пин бузера
10
bool
led_ON = 1;
//включить индикацию светодтодом (1)
11
bool
buzz_ON = 0;
//включить индикацию бузером (1)
12
//настройки //////////////конец
13
14
int
hv_adc, shet_s;
15
volatile
int
shet = 0;
16
unsigned
long
mil_s = 0;
17
18
void
setup
() {
19
analogReference(INTERNAL);
20
pinMode(5, OUTPUT);
21
pinMode(led, OUTPUT);
22
pinMode(buzz, OUTPUT);
23
nakachka();
//первая накачка
24
attachInterrupt(0, Schet, FALLING);
//прерываниям пин 2
25
}
26
27
void
loop
() {
28
generator();
//накачка по обратной связи с АЦП
29
signa ();
//подача сигнала о частичке
30
}
31
void
signa () {
//индикация каждой частички звуком или светом
32
if
(shet_s != shet) {
33
shet_s = shet;
34
if
(led_ON == 1) {
35
digitalWrite(led, HIGH);
36
}
37
if
(buzz_ON == 1) {
38
digitalWrite(buzz, HIGH);
39
}
40
}
41
if
(millis() - mil_s >= 10) {
42
mil_s = millis();
43
digitalWrite(led, LOW);
44
digitalWrite(buzz, LOW);
45
}
46
}
47
48
void
Schet() {
//прерывание от счетчика на пин 2
49
detachInterrupt(0);
50
shet++;
51
attachInterrupt(0, Schet, FALLING);
52
}
53
54
void
generator() {
//накачка по обратной связи с АЦП
55
hv_adc = analogRead(A2);
56
if
(hv_adc < ADC) {
//Значение АЦП при котором на выходе 400В
57
PORTD |= (1 << 5);
//дергаем пин 5
58
int
c = puls;
59
while
(c > 0) {
60
asm(
"nop"
);
61
c--;
62
}
63
PORTD &= ~(1 << 5);
//дергаем пин 5
64
}
65
}
66
67
void
nakachka() {
//первая накачка
68
byte
n = 0;
69
while
(n < 20) {
70
PORTD |= (1 << 5);
//дергаем пин
71
int
c = puls;
72
while
(c > 0) {
73
asm(
"nop"
);
74
c--;
75
}
76
PORTD &= ~(1 << 5);
//дергаем пин
77
n++;
78
_delay_us(100);
79
}
80
}
Если возникнет желание упростить схему по посту #159, то можно
- поменять местами R7 и СБМ-20 (иключительно для читабельности схемы),
- параллельно конденсатору С1 поставить стабилитрон на 2,7 В (при питании от литий-ионного аккумулятора)
и резистор на 470 кОм,
- не устанавливать детали R1, R2, T1, R3, R4.
Если возникнет желание упростить схему по посту #159, то можно
- поменять местами R7 и СБМ-20 (иключительно для читабельности схемы),
Ни в коем разе. Это быстро уложит счётчик. Ну и ввиду большой ёмкости катода счётчика импульс потеряет форму и будет труднодетектируемым.
- параллельно конденсатору С1 поставить стабилитрон на 2,7 В (при питании от литий-ионного аккумулятора)
и резистор на 470 кОм,
- не устанавливать детали R1, R2, T1, R3, R4.
Вообще-то это формирователь импульса для чёткого срабатывания прерывания, а не просто элемент защиты.
А без формирователя, прерывание по уровню не сработает?
RISING, может, и сработает. Но стабилитрон сам по себе является источником шума.
С каких пор стабилитрон стал так сильго шуметь (вольты)?
....
- параллельно конденсатору С1 поставить стабилитрон на 2,7 В (при питании от литий-ионного аккумулятора)
и резистор на 470 кОм,
- не устанавливать детали R1, R2, T1, R3, R4.
Дело не в шуме, это по плюсу СБМ-20 есть четкий импульс 200В и больше который мы можем взять через конденсатор и огграничив стабильтроном подать в Ардуино. Но как оказалось из паспорта на батчик так лучше не делать.
А по минусу датчика только куча шумов и всплеск тока в момент импульса, вот этот всплеск мы и формируем для компаратора. Вот пост где я проверял #127 .
Дело не в шуме, это по плюсу СБМ-20 есть четкий импульс 200В ...
А по минусу датчика только куча шумов и всплеск тока в момент импульса
)))
Кирхгоф в гробу перевернулся, законы сохранения улетели в тартарары... продолжайте.
А Вы для начала изучите принципы снятия сигнала с анода и катода счётчика Гейгера-Мюллера. Тогда и Кирхгофа всуе поминать не будете...
А Вы соответственно начните с ТОЭ, законов им. вышеупомянутого, тогда под откровенную лажу о различии токов на одном и втором выводе подгавкивать перестанете.
Каких токов? С анода снимается импульс напряжения через резистивно-емкостную цепь, с катода токовый с последовательно включённого резистора.
Человек, пытающийся мерить высоковольтную слаботочку мультиметром учит ТОЭ... Есть предложения по проекту - говорите, нет - не разводите флуд.
tekagi
Есть предложения что должно быть на дисплее размером 84*48
как ты это видишь?
например
-текущая доза
-накопленная доза
-время работы
и т.д.
И какие значения должны как выглядеть (размер цифр)
Разные режимы потребуют разной индикации. В обычном режиме скорее всего усреднённое значение за пару-тройку минут (при околофоновых значениях), график, скажем, за полчаса. В поисковом время замера и интервал отображения графика придётся сокращать. Пока над компоновкой не думал...
Вот пример максимализма Рад-Боя:
Какую библиотеку собираешься использовать? Я парочку потыкал, монструозные они. Вывод трёх значений на экран (даже не в лупе, а по времени несколько раз в секунду) сбивал накачку с 200 имп/с до 350. Так и не понял, почему.
Разные режимы потребуют разной индикации. В обычном режиме скорее всего усреднённое значение за пару-тройку минут (при околофоновых значениях), график, скажем, за полчаса. В поисковом время замера и интервал отображения графика придётся сокращать. Пока над компоновкой не думал...
Вот пример максимализма Рад-Боя:
Какую библиотеку собираешься использовать? Я парочку потыкал, монструозные они. Вывод трёх значений на экран (даже не в лупе, а по времени несколько раз в секунду) сбивал накачку с 200 имп/с до 350. Так и не понял, почему.
Ага видел, аж мельтишит.
Думаю больше двух или трех кнопок не стоит и одну из них на прерывание.
библиотеку эту, там ркский можно вкрутить без проблем
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>