Как хотят. Могут через раз срабатывать, могут каждое нажатие.
Возможно, придётся отказаться от идеи коэффициента n и 1/n и вернуться к массиву с раздельными минимумом и максимумом. Близко к ЕРФ малые значения выпадают намного чаще.
mambavamba14, возможно стоит при автосбросе максимум не затирать, а оставлять прежний, пока новое значение не стабилизируется на требуемом количестве ячеек, после этого если новое больше - менять, если нет - держать старое до превышения его значения.
Так может быть коэффициент поправки на фон загрубить сильнее?
Как раз в конфиге выше. Пока весьма приблизительно. Идея с массивами с кучей пресетов позволяет производить очень гибкую настройку, но займёт это немало времени на эксперименты. Выводы данных текущего отношения и заданного весьма помогают.
Пока работают, иногда субъективно подглюкивают. Не трогай пока.
mambavamba14 пишет:
И да, диапазон фона следующий не нужно указывать с "1" тк это будет мертвая зона тогда.
Упсь, понял. Когда менял - в обработку не смотрел.
alexadresat пишет:
И показания, черточки и единицы измерения пропадают.
У меня такое на секунду раз проскочило, но по какому условию - так и не понял. Ориентировочно в конце первичного набора массива после старта.
UPD: Пропадает на секунду после смены "----" на значение. Но не только, может пропасть "----" мкР/ч и снова появиться "----" мкР/ч.
#define COEF_DEBUG 0 //выводить отладку коэффициента рядом с надписью "ФОН"(0 - не выводить | 1 - выводить)
Это коэффициенты, по сравнению которых происходит автосброс для ускорения счёта. Вверху - реальное соотношение на данный момент, над мкР/ч - расчётный коэффициент, с которым сравниваем. Относится к таблицам в сетапе.
Как по стабильости при ЕРФ и при работе с КИ на разных расстояниях и при перемещении источника?
alexadresat - Ну что поделать, это немыслимое расточительство столько тратить на 2 строки..)) Как вариант картинка...но блин каждый раз перерисовывать версию такое себе... Если только как вариант сделать картинку с пустым местом под версию, а версию уже печатать из прошивки.
Здравствуйте, форумчане. Собрал я данный девайс. Преобразователь сделал свой. Со стабилизацией. Делал чтоб использовать для любых схем. Потребление около 5ма. Но можно сделать около 1ма. Но вот беда, мой СТС-5 не заработал. Ранее стоял в другом самодельном дозиметре. С давних времен завалялся СИ8б. Просмотрел я бегло форум и не нашел, кто б изменил код под другую чувствительность. Может кто то всеж сделал это. Подскажите пожалуйста. Буду очень благодарен.
#ArDos_with_RADON_2.0.1 - Добавлен глубокий сон при ЕРФ для снижения энергопотребления, минимальный порог отключения можно задать в "config" параметр "RAD_PWR_DOWN", исправлен алгоритм счета фона, оптимизация объема.
alexadresat - Да мне нравится, добавил))
tekagi - Уупс.. вышла накладочка с алгоритмом перебора времени счета для коэффициентов... Рассчитывалось изначально что в каждом новом этапе будет на 1 сек больше, а не как на 5 - 10 - 20 и тд... В общем исправил это безобразие, сейчас должно с любыми данными в массиве правильно)) ПыСы. Возможно из за этого и была нестабильность текущего коэффициента, тк. необходимый диапазон ячеек еще не заполнен, но алгоритм "заранее" делил на него(что понятное дело не правильно).
Jonni333 - Все зависит от времени счета, играясь с ним можно будет подогнать под свой счетчик. В данных алгоритмах фон ни что иное как сумма импульсов за время счета))
UPD. Исправлен не сбрасывающийся переключатель массива коэффициентов счета.
mambavamba14, увы, но проблема с заменой датчиков "в лоб" простым изменением времени счёта не решается. Для бОльших датчиков время маленькое, и часто дробное, к примеру 6,15 сек., а при секундных интервалах снятия импульсов уже поправочный коэффициент. А для малышей вроде СБМ-21 и СБМ-10 сотни секунд, при которых наш алгоритм ускорения сойдёт с ума, да и основные показания фона будут сильно гулять.. Если укладывается в рамки 20-60 секунд, то можно менять без проблем.
Вечером пошшупаю изменения.
Мужики, что то утворил. Решил обновить прошивку, прошился и не работает, нет счёта. На касания пальцами реакция есть, отсчёт после включения по нулям. Перед прошивкой всё работало, куда копнуть?
1707 - Какая версия прошивки и какая была до этого? Я так понимаю треск бузера есть, а не отображает уровень фона? Параметры преобразователя свои вводили?
Если прошивка радон, то пробуйте сброс настроек(удержание кнопки "ок" при включении). Если версия совсем старая была мб что не так пошло...
mambavamba14 проишлся сейчас на 2,0,1 всё тоже, сброс делал. Прошла рабочая была вроде 1,7. Плата как у Вас. Треск и счёт есть при касании пальце, а так тишина и по нулям.
1707 - Транс потрескивает? И выставил ли свои настройки в делителе?
//Настройки//
uint8_t ADC_value = 185; //значение АЦП при котором 400В с учетом вашего делителя напряжения (0..255). Для значений делителя с сайта srukami 163. alexadresat 185.
uint16_t k_delitel = 500; //коефициент делителя напряжения, зависит от вашего делителя. Для значений делителя с сайта srukami k_delitel 576. alexadresat 500.
1707 - Если при касании есть треск и показания меняются, а когда просто лежит нету счета вообще, скорее всего проблема со счетчиком(трубкой). Попробуйте предыдущую залить прошивку(2.0.0, 1.7.1 или 1.6.5) если на них будет тоже самое, то точно счетчик(ну или контакт мб где плохенький).
alexadresat ничего не менял в коде, всё стоит как и у меня должно, плата Ваша.
Подкинул ещё 2 датчика, одинаково. Транс пищит. В меню зайти не могу почему то.
1707 - В какое меню? Если меню отладки или статистики, так это потому что они отключены по умолчанию, если меню настроек, то с версии 2.0.0 вход в меню удержанием клавиши "ок".
Поставил 1,7 - всё заработало, считает. Перед этим ставил утилиту настройки, в ручную более 80% не поднялось. Автоматическая настроилась / сохранил и прошил 1,7 версию. В чём баг не понятно. Данные в утилите не менял - резаки 200 и 100, напругу свою поставил, вручную стрикал импульс перебором, не помогло. Видимо в крайних прошивках более всё требовательно к трансу, а на 1.7 версии по проще с этим и прибор работает.
1707 - Импульс в утилите можно подобрать "автонастройкой импульса", данные из утилиты(которые она сохраняет) пока автоматически в прошивках не подгружаются. Поэтому после настройки их нужно вводить в ручную во вкладку "SETUP".
"Но в утилите подбором не получилось закачать на 100%" - что вы имеете ввиду?
alexadresat - Изменения в основном коснулись алгоритма счета(должно более стабильно начать работать) и режимов сна(в полной спячке более глубоко зачыпаем при низком фоне) должно по идее дать минимальное потребление(но это не точно).
1707 - Пробуйте сначала "автонастройку импульса" а потом снова "быструю настройку" и сопротивления нужно указать которые у вас установлены(если они отличаются от заданных изначально).
В автонастройке импульса не хватает вывода напряжения, хотя бы для информации.
С калибровкой высокого проблема. Либо делать её на напряжении около 100-150 вольт, либо дорабатывать алгоритм накачки. Если старая прошивка у меня без особого напряга тянет подключённый на высокое мультиметр, то утилита затыкается (на версии РАДОН пока не пробовал). Поскольку для настройки нужно ввести текущий уровень напряжения -то мультиметры даже на 10 МОм не дадут выйти на режим. При подключённом на высокое мультиметре алгоритм не может докачать до требуемого уровня и падает с ошибкой. При автонастройке импульса без мультиметра выдаёт 11, с мультиметром 2. Наиболее экономичная должна быть 4-5, но без замера тока её не отловить, по минимуму скорости как раз 10-11, для грубой настройки подойдёт.
alexadresat - Опять эта фигня...перезалил, перепроверил, сейчас нормально должно быть. У тебя кст с кнопками как дела обстоят??
Идет набор даже частицы не ловит...
Артефакт при выводе дебага перед значением, filler почему-то стоит 32 вместо 43.
Добавь в общий код, чтобы не переписывать в каждый новый:
Инициализация глобальной:
В подсчёт между этих строк:
float coef = coef_time_mass[mass_switch] * coef_back; //получаем коэффициент из массива для сравнения на скачок/спад #if COEF_DEBUG //отладка коэффициента debug_coef = coef; #endif for (uint8_t i = 0; i < time_1; i++) temp_run += rad_buff[i + 1]; //запоняем буффер первого плеча for (uint8_t i = time_1; i < (time_1 + time_2); i++) temp += rad_buff[i + 1]; //запоняем буффер вторго плечаИ в выводе заменить блок:
#if COEF_DEBUG //отладка коэффициента switch (scr_mode) { case 0: setFont(TinyNumbersDown); //установка шрифта invertText(true); printNumF(now, 2, 19, 0, 46, 5, 43); //строка 1 invertText(false); printNumF(debug_coef, 2, 57, 8, 46, 5, 43); //строка 2 break; } #endifПоследнюю пока не заливал, версия 16:15.
alexadresat - Да, уже увидел в чем беда...
tekagi - Хорошо сделаю. На 16:15 как себя кнопки ведут??
Как хотят. Могут через раз срабатывать, могут каждое нажатие.
Возможно, придётся отказаться от идеи коэффициента n и 1/n и вернуться к массиву с раздельными минимумом и максимумом. Близко к ЕРФ малые значения выпадают намного чаще.
Сейчас конфиг такой:
#define COEF_DEBUG 1 //выводить отладку коэффициента рядом с надписью "ФОН"(0 - не выводить | 1 - выводить) #define MASS_TIME 4 //всего данных в массиве коэффициентов времени #define MASS_BACK 7 //всего данных в массиве коэффициентов фона static const uint8_t time_mass[MASS_TIME][2] { //массив выборки элементов из основного буффера для сравнения // 2, 6, //0-й порог // 3, 9, //1-й порог // 4, 12, //2-й порог 5, 15, //3-й порог 6, 18, //4-й порог 7, 21, //5-й порог 8, 24, //6-й порог // 6, 7, //7-й порог // 6, 8, //8-й порог // 7, 8, //9-й порог // 7, 9, //10-й порог // 8, 9, //11-й порог // 8, 10 //12-й порог }; static const float coef_time_mass[MASS_TIME] { //массив коэффициентов сравнения для выявления скачков/спадов 5.00, //0-й порог 4.00, //1-й порог 3.00, //2-й порог 2.50, //3-й порог // 2.00, //4-й порог // 1.70, //5-й порог // 1.50, //6-й порог // 2.00, //7-й порог // 2.00, //8-й порог // 1.75, //9-й порог // 1.75, //10-й порог // 1.75, //11-й порог // 1.75 //12-й порог };почти адекватно. В основном падает по низкому коэффициенту, при 5.0 сравнения часто падает ниже 0.2.
Ок, тяну новую.
tekagi - Последнюю перезалил дефы добавил баг с набором счета исправил!
Так может быть коэффициент поправки на фон загрубить сильнее?
mambavamba14 - Заметил что в макс обнуляются показания и пропадает единицы измерения. Кнопки и в этой и в предыдущей прошивки ведут себя адекватно.
mambavamba14, возможно стоит при автосбросе максимум не затирать, а оставлять прежний, пока новое значение не стабилизируется на требуемом количестве ячеек, после этого если новое больше - менять, если нет - держать старое до превышения его значения.
alexadresat, попробуй такой конфиг:
//Конфигурация прошивки// #define WDT_TIMEOUT 8000 //длительность тайм-аута колибровки WDT(50..10000)(ms) #define START_TIME 1000 //длительность ожидания перед стартом прошивки(50..10000)(ms) #define FONT_TIME 2000 //длительность ожидания заставки при первом включении(50..10000)(ms) #define POWER_TIME 2000 //длительность ожидания отображениия разряженой акб при включении(50..10000)(ms) #define MASSEGE_TIME 1000 //длительность отображения окон(50..10000)(ms) #define START_PUMP_TIME 3000 //длительность до автоматического выхода из первой накачки преобразователя(50..10000)(ms) #define ERROR_MASSEGE_TIME 3000 //длительность отображения окон ошибок(50..10000)(ms) #define ERROR_LENGTHY_TIME 10000 //длительность до отображения следующей ошибок(50..10000)(ms) #define ALARM_AUTO_GIST 10 //гистерезис(разница) автоматического отключения тревоги(1..99)(%) #define TIME_OUT_SETTINGS 15 //тайм-аут автоматического выхода из настроек(0 - выкл)(5..250)(s) #define TIME_OUT_FAST 15 //тайм-аут автоматического выхода из быстрого меню(0 - выкл)(5..250)(s) #define TIME_OUT_PARAM 15 //тайм-аут автоматического выхода из параметров(0 - выкл)(5..250)(s) #define TIME_OUT_DEBUG 15 //тайм-аут автоматического выхода из отладки(0 - выкл)(5..250)(s) #define STAT_UPD_TIME 60 //интервал записи статистики в память(60..3600)(s) #define IMP_ERROR_TIME 60 //время после которого можно ститать что импульсы от счетчика отсутствуют(10..255)(s) #define UPD_BAT_TIME 5 //частота обновлния информации о заряде батареи(1..255)(s) #define LOW_BAT_TIME 30 //частота появления сообщения о разряде батареи(1..255)(s) #define LOW_BAT_POWER 95 //при каком значение АЦП считать акб разряженной и не давать у-ву включиться(0..255) #define LOW_BAT_STAT 90 //при каком значение АЦП считать акб разряженной(0..255) #define LOW_BAT_STAT_SLEEP 95 //при каком значение АЦП считать акб разряженной во сне(0..255) #define MIN_BAT 95 //значение АЦП при разряженной батарее(0..255) #define MAX_BAT 70 //значение АЦП при заряженной батарее(0..255) #define GRAF_RAD 2000 //максимальный фон предела графика(10..10000)(uR) #define GRAF_MAX_MS 1015 //максимальное время обновления графика(140..65000)(ms) #define GRAF_MIN_MS 525 //минимальное время обновления графика(140..65000)(ms) #define GRAF_IND_MAX 100 //максимум предела шкалы частиц/сек.(48..10000)(имп/с) #define TYPE_CHAR_FILL 43 //выбор симола заполнителя на главных экранах(48 - "0" | 47 - "/" | 46 - "." | 45 - "-" | 44 - "_" | 43 - " ") #define BTN_GIST_TICK 2 //количество циклов для защиты от дребезга(0..255) #define BTN_HOLD_TICK 30 //количество циклов после которого считается что кнопка зажата(0..255) //Технические настройки #define BUFF_LENGTHY 101 //длинна буфера секундных замеров(10..255) uint8_t CYCLE_OVERFLOW = 255; //количество циклов подкачки ВВ до аварийного выхода и выдачи ошибки(10..255) #define TIME_CORRECT -38 //корректировка реального времени(-1750..1750)(mcs/10) #define RAD_PWR_MANAGER 10000 //порог отключения режима сна для более корректной работы устройства(100..100000)(uRh) #define COEF_DEBUG 1 //выводить отладку коэффициента рядом с надписью "ФОН"(0 - не выводить | 1 - выводить) #define MASS_TIME 4 //всего данных в массиве коэффициентов времени #define MASS_BACK 7 //всего данных в массиве коэффициентов фона static const uint8_t time_mass[MASS_TIME][2] { //массив выборки элементов из основного буффера для сравнения // 2, 6, //0-й порог // 3, 9, //1-й порог // 4, 12, //2-й порог 5, 15, //3-й порог 6, 18, //4-й порог 7, 21, //5-й порог 8, 24, //6-й порог // 6, 7, //7-й порог // 6, 8, //8-й порог // 7, 8, //9-й порог // 7, 9, //10-й порог // 8, 9, //11-й порог // 8, 10 //12-й порог }; static const float coef_time_mass[MASS_TIME] { //массив коэффициентов сравнения для выявления скачков/спадов 5.00, //0-й порог 4.00, //1-й порог 3.00, //2-й порог 2.50, //3-й порог // 2.00, //4-й порог // 1.70, //5-й порог // 1.50, //6-й порог // 2.00, //7-й порог // 2.00, //8-й порог // 1.75, //9-й порог // 1.75, //10-й порог // 1.75, //11-й порог // 1.75 //12-й порог }; static const uint16_t back_mass[MASS_BACK][2] { //массив квантования коэффициентов поправки на текущий фон 0, 30, //0-й порог 30, 100, //1-й порог 100, 300, //2-й порог 300, 1000, //3-й порог 1000, 10000, //4-й порог 10000, 35200, //5-й порог 35200, 65500, //6-й порог // 6, 7, //7-й порог // 6, 8, //8-й порог // 7, 8, //9-й порог // 7, 9, //10-й порог // 8, 9, //11-й порог // 8, 10 //12-й порог }; static const float coef_back_mass[MASS_BACK] { //массив коэффициентов поправки на текущий фон 3.00, //0-й порог 2.00, //1-й порог 1.30, //2-й порог 1.00, //3-й порог 0.90, //4-й порог 0.70, //5-й порог 0.50, //6-й порог // 0.80, //7-й порог // 0.70, //8-й порог // 0.60, //9-й порог // 0.50, //10-й порог // 0.40, //11-й порог // 0.30 //12-й порог }; //Конфигурация звуков// #define FREQ_BUZZ 500 //частота щелчков(10..10000)(Hz) #define TIME_BUZZ 10 //длительность щелчков(10..500)(ms) #define FREQ_BEEP 2000 //частота звука клавиш(10..10000)(Hz) #define TIME_BEEP 30 //длительность звука клавиш(10..500)(ms) //Конфигурация вибрации тревоги// #define VIBRO_TIME_ON 150 //длительность включения вибромотора(50..500)(ms) #define VIBRO_TIME_OFF 250 //длительность выключения вибромотора(50..500)(ms) #define VIBRO_TIME_WAINT 550 //длительность паузы до следующего цикла включения вибромотора(50..1000)(ms) //Конфигурация звука оповещения о готовности замера// #define MEASUR_SOUND 1 //вкл/выкл звука готовности замера(1 - звук включен | 0 - звук выключен) #define SAMPLE_MEASUR_0_FREQ 3000 //частота семпла 0 разряда акб(10..10000)(Hz) #define SAMPLE_MEASUR_0_TIME 200 //длительность звука семпла 0 разряда акб(50..500)(ms) #define SAMPLE_MEASUR_0_WAINT 200 //длительность паузы после семпла 0 разряда акб(50..1000)(ms) #define SAMPLE_MEASUR_1_FREQ 3000 //частота семпла 1 разряда акб(10..10000)(Hz) #define SAMPLE_MEASUR_1_TIME 200 //длительность звука семпла 1 разряда акб(50..500)(ms) #define SAMPLE_MEASUR_1_WAINT 200 //длительность паузы после семпла 1 разряда акб(50..1000)(ms) #define SAMPLE_MEASUR_2_FREQ 3000 //частота семпла 2 разряда акб(10..10000)(Hz) #define SAMPLE_MEASUR_2_TIME 200 //длительность звука семпла 2 разряда акб(50..500)(ms) #define SAMPLE_MEASUR_2_WAINT 200 //длительность паузы после семпла 1 разряда акб(50..1000)(ms) //Конфигурация звука разряда акб во сне// #define BAT_SLEEP_LOW_SOUND 1 //вкл/выкл звука разряда акб во сне(1 - звук включен | 0 - звук выключен) #define SAMPLE_BAT_SLEEP_0_FREQ 3000 //частота семпла 0 разряда акб во сне(10..10000)(Hz) #define SAMPLE_BAT_SLEEP_0_TIME 200 //длительность звука семпла 0 разряда акб во сне(50..500)(ms) #define SAMPLE_BAT_SLEEP_0_WAINT 200 //длительность паузы после семпла 0 разряда акб во сне(50..1000)(ms) #define SAMPLE_BAT_SLEEP_1_FREQ 2000 //частота семпла 1 разряда акб во сне(10..10000)(Hz) #define SAMPLE_BAT_SLEEP_1_TIME 200 //длительность звука семпла 1 разряда акб во сне(50..500)(ms) #define SAMPLE_BAT_SLEEP_1_WAINT 200 //длительность паузы после семпла 1 разряда акб во сне(50..1000)(ms) #define SAMPLE_BAT_SLEEP_2_FREQ 1000 //частота семпла 2 разряда акб во сне(10..10000)(Hz) #define SAMPLE_BAT_SLEEP_2_TIME 200 //длительность звука семпла 2 разряда акб во сне(50..500)(ms) #define SAMPLE_BAT_SLEEP_2_WAINT 200 //длительность паузы после семпла 1 разряда акб во сне(50..1000)(ms) //Конфигурация звука разряда акб// #define BAT_LOW_SOUND 1 //вкл/выкл звука разряда акб(1 - звук включен | 0 - звук выключен) #define SAMPLE_BAT_0_FREQ 3000 //частота семпла 0 разряда акб(10..10000)(Hz) #define SAMPLE_BAT_0_TIME 200 //длительность звука семпла 0 разряда акб(50..500)(ms) #define SAMPLE_BAT_0_WAINT 200 //длительность паузы после семпла 0 разряда акб(50..1000)(ms) #define SAMPLE_BAT_1_FREQ 2000 //частота семпла 1 разряда акб(10..10000)(Hz) #define SAMPLE_BAT_1_TIME 200 //длительность звука семпла 1 разряда акб(50..500)(ms) #define SAMPLE_BAT_1_WAINT 200 //длительность паузы после семпла 1 разряда акб(50..1000)(ms) #define SAMPLE_BAT_2_FREQ 1000 //частота семпла 2 разряда акб(10..10000)(Hz) #define SAMPLE_BAT_2_TIME 200 //длительность звука семпла 2 разряда акб(50..500)(ms) #define SAMPLE_BAT_2_WAINT 200 //длительность паузы после семпла 1 разряда акб(50..1000)(ms) //Конфигурация звука открытия быстрого меню// #define FAST_SOUND 1 //вкл/выкл звука открытия быстрого меню(1 - звук включен | 0 - звук выключен) #define SAMPLE_FAST_0_FREQ 1000 //частота семпла 0 быстрого меню(10..10000)(Hz) #define SAMPLE_FAST_0_TIME 100 //длительность звука семпла 0 быстрого меню(50..500)(ms) #define SAMPLE_FAST_0_WAINT 100 //длительность паузы после семпла 0 быстрого меню(50..1000)(ms) #define SAMPLE_FAST_1_FREQ 2000 //частота семпла 1 быстрого меню(10..10000)(Hz) #define SAMPLE_FAST_1_TIME 100 //длительность звука семпла 1 быстрого меню(50..500)(ms) #define SAMPLE_FAST_1_WAINT 100 //длительность паузы после семпла 1 быстрого меню(50..1000)(ms) #define SAMPLE_FAST_2_FREQ 3000 //частота семпла 2 быстрого меню(10..10000)(Hz) #define SAMPLE_FAST_2_TIME 100 //длительность звука семпла 2 быстрого меню(50..500)(ms) #define SAMPLE_FAST_2_WAINT 100 //длительность паузы после семпла 1 быстрого меню(50..1000)(ms) //Конфигурация звука предупреждения// #define SAMPLE_WARN_0_FREQ 3000 //частота семпла 0 предупреждения(10..10000)(Hz) #define SAMPLE_WARN_0_TIME 200 //длительность звука семпла 0 предупреждения(50..500)(ms) #define SAMPLE_WARN_0_WAINT 200 //длительность паузы после семпла 0 предупреждения(50..1000)(ms) #define SAMPLE_WARN_1_FREQ 2000 //частота семпла 1 предупреждения(10..10000)(Hz) #define SAMPLE_WARN_1_TIME 200 //длительность звука семпла 1 предупреждения(50..500)(ms) #define SAMPLE_WARN_1_WAINT 200 //длительность паузы после семпла 1 предупреждения(50..1000)(ms) #define SAMPLE_WARN_2_FREQ 3000 //частота семпла 2 предупреждения(10..10000)(Hz) #define SAMPLE_WARN_2_TIME 200 //длительность звука семпла 2 предупреждения(50..500)(ms) #define SAMPLE_WARN_2_WAINT 200 //длительность паузы после семпла 2 предупреждения(50..1000)(ms) #define SAMPLE_WARN_3_FREQ 2000 //частота семпла 3 предупреждения(10..10000)(Hz) #define SAMPLE_WARN_3_TIME 200 //длительность звука семпла 3 предупреждения(50..500)(ms) #define SAMPLE_WARN_OVERFLOW_WAINT 1000 //длительность паузы перед началом нового круга(50..1000)(ms) //Конфигурация звука тревоги// #define SAMPLE_0_FREQ 1100 //частота семпла 0 тревоги(10..10000)(Hz) #define SAMPLE_0_TIME 100 //длительность звука семпла 0 тревоги(50..500)(ms) #define SAMPLE_0_WAINT 150 //длительность паузы после семпла 0 тревоги(50..1000)(ms) #define SAMPLE_1_FREQ 1100 //частота семпла 1 тревоги(10..10000)(Hz) #define SAMPLE_1_TIME 100 //длительность звука семпла 1 тревоги(50..500)(ms) #define SAMPLE_1_WAINT 150 //длительность паузы после семпла 1 тревоги(50..1000)(ms) #define SAMPLE_2_FREQ 1100 //частота семпла 2 тревоги(10..10000)(Hz) #define SAMPLE_2_TIME 100 //длительность звука семпла 2 тревоги(50..500)(ms) #define SAMPLE_2_WAINT 150 //длительность паузы после семпла 1 тревоги(50..1000)(ms) #define SAMPLE_3_FREQ 1100 //частота семпла 3 тревоги(10..10000)(Hz) #define SAMPLE_3_TIME 100 //длительность звука семпла 3 тревоги(50..500)(ms) #define SAMPLE_3_WAINT 150 //длительность паузы после семпла 3 тревоги(50..1000)(ms) #define SAMPLE_4_FREQ 3000 //частота семпла 4 тревоги(10..10000)(Hz) #define SAMPLE_4_TIME 200 //длительность звука семпла 4 тревоги(50..500)(ms) #define SAMPLE_4_WAINT 250 //длительность паузы после семпла 4 тревоги(50..1000)(ms) #define SAMPLE_5_FREQ 3000 //частота семпла 5 тревоги(10..10000)(Hz) #define SAMPLE_5_TIME 200 //длительность звука семпла 5 тревоги(50..500)(ms) #define SAMPLE_5_WAINT 250 //длительность паузы после семпла 5 тревоги(50..1000)(ms) #define SAMPLE_6_FREQ 1100 //частота семпла 6 тревоги(10..10000)(Hz) #define SAMPLE_6_TIME 100 //длительность звука семпла 6 тревоги(50..500)(ms) #define SAMPLE_6_WAINT 150 //длительность паузы после семпла 6 тревоги(50..1000)(ms) #define SAMPLE_7_FREQ 1100 //частота семпла 7 тревоги(10..10000)(Hz) #define SAMPLE_7_TIME 100 //длительность звука семпла 7 тревоги(50..500)(ms) #define SAMPLE_7_WAINT 150 //длительность паузы после семпла 7 тревоги(50..1000)(ms) #define SAMPLE_8_FREQ 1100 //частота семпла 8 тревоги(10..10000)(Hz) #define SAMPLE_8_TIME 100 //длительность звука семпла 8 тревоги(50..500)(ms) #define SAMPLE_OVERFLOW_WAINT 550 //длительность паузы перед началом нового круга(50..1000)(ms)Как раз в конфиге выше. Пока весьма приблизительно. Идея с массивами с кучей пресетов позволяет производить очень гибкую настройку, но займёт это немало времени на эксперименты. Выводы данных текущего отношения и заданного весьма помогают.
Пока работа алгоритма мне нравится.
alexadresat - Странно, я не делал чтоб он обнулялся...мб имеешь ввиду что черточки появлются?
tekagi - Самое главное то - шо по кнопкам у нас?)) И да, диапазон фона следующий не нужно указывать с "1" тк это будет мертвая зона тогда.
mambavamba14 - Поверь на слово, лень видео снимать.. И показания, черточки и единицы измерения пропадают.
Пока работают, иногда субъективно подглюкивают. Не трогай пока.
Упсь, понял. Когда менял - в обработку не смотрел.
У меня такое на секунду раз проскочило, но по какому условию - так и не понял. Ориентировочно в конце первичного набора массива после старта.
UPD: Пропадает на секунду после смены "----" на значение. Но не только, может пропасть "----" мкР/ч и снова появиться "----" мкР/ч.
tekagi - Залил с твоим конфигом. Выходит лишняя инфа.
Это нормально, если не надо - отключи в
Это коэффициенты, по сравнению которых происходит автосброс для ускорения счёта. Вверху - реальное соотношение на данный момент, над мкР/ч - расчётный коэффициент, с которым сравниваем. Относится к таблицам в сетапе.
Как по стабильости при ЕРФ и при работе с КИ на разных расстояниях и при перемещении источника?
alexadresat - Установи
#define COEF_DEBUG 0tekagi - А показания сбрасываются или просто исчезают?
Обновил архив, добавил конфиги, исправил баг с "макс", актуальная версия 2.0.1(2.0.0 - это та самая от 16:15 но с мелкими правками).
"----" мкР/ч >> "пусто от МАКС: и до конца строки" >> 264 мкР/ч.
или
"----" мкР/ч >> "пусто от МАКС: и до конца строки" >> "----" мкР/ч.
У меня проявляется нечасто и всего на секунду.
UPD: По коэффициентам. Похоже, надо заменить
на
но это не окончательно))
tekagi - Сейчас показания фона более менее адекватные.
Набор секунд 25 и понижение с 13.8 мР/ч до окружающего фона 12 мкР/ч, секунд 20.
Да забыл, поставил
10, 50,//0-й порог250, 100,//1-й порогА скорость реакции на источник и стабилизация показаний при поднесении/удалении?
Немного оптимизировал объем, из за использования английских символов на экране старта тратилось на ветер 600 байт...
mambavamba14 - Не смотрится по русски. А если картинкой сделать, не меньше будет память жрать???
alexadresat - Ну что поделать, это немыслимое расточительство столько тратить на 2 строки..)) Как вариант картинка...но блин каждый раз перерисовывать версию такое себе... Если только как вариант сделать картинку с пустым местом под версию, а версию уже печатать из прошивки.
Если только как вариант сделать картинку с пустым местом под версию, а версию уже печатать из прошивки. Вот это самое то....
alexadresat - Да, но я щас попробовал, картинка будет занимать 250 байт... такой себе вариант...
А так???
Здравствуйте, форумчане. Собрал я данный девайс. Преобразователь сделал свой. Со стабилизацией. Делал чтоб использовать для любых схем. Потребление около 5ма. Но можно сделать около 1ма. Но вот беда, мой СТС-5 не заработал. Ранее стоял в другом самодельном дозиметре. С давних времен завалялся СИ8б. Просмотрел я бегло форум и не нашел, кто б изменил код под другую чувствительность. Может кто то всеж сделал это. Подскажите пожалуйста. Буду очень благодарен.
#ArDos_with_RADON_2.0.1 - Добавлен глубокий сон при ЕРФ для снижения энергопотребления, минимальный порог отключения можно задать в "config" параметр "RAD_PWR_DOWN", исправлен алгоритм счета фона, оптимизация объема.
alexadresat - Да мне нравится, добавил))
tekagi - Уупс.. вышла накладочка с алгоритмом перебора времени счета для коэффициентов... Рассчитывалось изначально что в каждом новом этапе будет на 1 сек больше, а не как на 5 - 10 - 20 и тд... В общем исправил это безобразие, сейчас должно с любыми данными в массиве правильно)) ПыСы. Возможно из за этого и была нестабильность текущего коэффициента, тк. необходимый диапазон ячеек еще не заполнен, но алгоритм "заранее" делил на него(что понятное дело не правильно).
Jonni333 - Все зависит от времени счета, играясь с ним можно будет подогнать под свой счетчик. В данных алгоритмах фон ни что иное как сумма импульсов за время счета))
UPD. Исправлен не сбрасывающийся переключатель массива коэффициентов счета.
mambavamba14, увы, но проблема с заменой датчиков "в лоб" простым изменением времени счёта не решается. Для бОльших датчиков время маленькое, и часто дробное, к примеру 6,15 сек., а при секундных интервалах снятия импульсов уже поправочный коэффициент. А для малышей вроде СБМ-21 и СБМ-10 сотни секунд, при которых наш алгоритм ускорения сойдёт с ума, да и основные показания фона будут сильно гулять.. Если укладывается в рамки 20-60 секунд, то можно менять без проблем.
Вечером пошшупаю изменения.
Мужики, что то утворил. Решил обновить прошивку, прошился и не работает, нет счёта. На касания пальцами реакция есть, отсчёт после включения по нулям. Перед прошивкой всё работало, куда копнуть?
1707 - Какая версия прошивки и какая была до этого? Я так понимаю треск бузера есть, а не отображает уровень фона? Параметры преобразователя свои вводили?
Если прошивка радон, то пробуйте сброс настроек(удержание кнопки "ок" при включении). Если версия совсем старая была мб что не так пошло...
mambavamba14 проишлся сейчас на 2,0,1 всё тоже, сброс делал. Прошла рабочая была вроде 1,7. Плата как у Вас. Треск и счёт есть при касании пальце, а так тишина и по нулям.
1707 - Транс потрескивает? И выставил ли свои настройки в делителе?
1707 - Если при касании есть треск и показания меняются, а когда просто лежит нету счета вообще, скорее всего проблема со счетчиком(трубкой). Попробуйте предыдущую залить прошивку(2.0.0, 1.7.1 или 1.6.5) если на них будет тоже самое, то точно счетчик(ну или контакт мб где плохенький).
mambavamba14 - Я думаю все дело в длине импульса...
alexadresat - Мб и импульс да... Попробуй у себя последнюю прошивку, нормально ли все работает...
alexadresat ничего не менял в коде, всё стоит как и у меня должно, плата Ваша.
Подкинул ещё 2 датчика, одинаково. Транс пищит. В меню зайти не могу почему то.
1707 - В какое меню? Если меню отладки или статистики, так это потому что они отключены по умолчанию, если меню настроек, то с версии 2.0.0 вход в меню удержанием клавиши "ок".
Пробовали предыдущую прошивку? Например 1.7.1?
1707 - Попробуй измени на это
byte puls = 7; //тонкая настройка длинны импульса высоковольтного транса
Поставил 1,7 - всё заработало, считает. Перед этим ставил утилиту настройки, в ручную более 80% не поднялось. Автоматическая настроилась / сохранил и прошил 1,7 версию. В чём баг не понятно. Данные в утилите не менял - резаки 200 и 100, напругу свою поставил, вручную стрикал импульс перебором, не помогло. Видимо в крайних прошивках более всё требовательно к трансу, а на 1.7 версии по проще с этим и прибор работает.
1707 - Какие настройки стоят SETUP.h в версии 1.7, такие же и ставь во все остальные
Ёлки палки, Полтергейст, после 1,7 зашил 2,0,1 но изменил byte puls = 7 и заработало.
1707 - Я на бум сказал 7 , тебе надо своё поставить
alexadresat Но в утилите подбором не получилось закачать на 100%, чем грозит не своё число?
====
Импульсы:
Прошил 1 - не работает
Прошил 2 - не работает
Прошил 3 - заработало (в сравнении с 7 показания текущие выше минимум на 50% со старта)
1707 - Почитай про первый запуск...
1707 - Импульс в утилите можно подобрать "автонастройкой импульса", данные из утилиты(которые она сохраняет) пока автоматически в прошивках не подгружаются. Поэтому после настройки их нужно вводить в ручную во вкладку "SETUP".
"Но в утилите подбором не получилось закачать на 100%" - что вы имеете ввиду?
mambavamba14 - Прошил последнюю, разницу с предыдущей не увидел. Пока не к чему придраться... Потестим, посмотрим...
При быстрой настройке после введённых данных накачка обрывалась при 80%. Но там я менял только напряжение, сопротивления нет.
alexadresat - Изменения в основном коснулись алгоритма счета(должно более стабильно начать работать) и режимов сна(в полной спячке более глубоко зачыпаем при низком фоне) должно по идее дать минимальное потребление(но это не точно).
1707 - Пробуйте сначала "автонастройку импульса" а потом снова "быструю настройку" и сопротивления нужно указать которые у вас установлены(если они отличаются от заданных изначально).
1707 - У тебя загрузчик прошит optiboot v8? Если прошит все можно подстроить из настроек-отладка...
#define DEBUG_RETURN 1 //вернуть отладку преобразователя(требуется optiboot v8) (1 - отладка доступна из интерфеса | 0 - отладка не доступна из интерфейса)
Сейчас поищу как optiboot v8 зашить
#ArDos_utility_for_debug_0.0.3 - Добавлена быстрая калибровка импульса перед первой накачкой в быстрой настройке.
В автонастройке импульса не хватает вывода напряжения, хотя бы для информации.
С калибровкой высокого проблема. Либо делать её на напряжении около 100-150 вольт, либо дорабатывать алгоритм накачки. Если старая прошивка у меня без особого напряга тянет подключённый на высокое мультиметр, то утилита затыкается (на версии РАДОН пока не пробовал). Поскольку для настройки нужно ввести текущий уровень напряжения -то мультиметры даже на 10 МОм не дадут выйти на режим. При подключённом на высокое мультиметре алгоритм не может докачать до требуемого уровня и падает с ошибкой. При автонастройке импульса без мультиметра выдаёт 11, с мультиметром 2. Наиболее экономичная должна быть 4-5, но без замера тока её не отловить, по минимуму скорости как раз 10-11, для грубой настройки подойдёт.