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

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

alexadresat - Опять эта фигня...перезалил, перепроверил, сейчас нормально должно быть. У тебя кст с кнопками как дела обстоят??

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

Идет набор даже частицы не ловит...

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

Артефакт при выводе дебага перед значением, filler почему-то стоит 32 вместо 43.

Добавь в общий код, чтобы не переписывать в каждый новый:

Инициализация глобальной:

#if COEF_DEBUG //отладка коэффициента
float debug_coef = 0.00; //для  вывода общего коэффициента в дебаг
#endif

В подсчёт между этих строк:

          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.

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

alexadresat - Да, уже увидел в чем беда...

tekagi - Хорошо сделаю. На 16:15 как себя кнопки ведут??

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

Как хотят. Могут через раз срабатывать, могут каждое нажатие.

Возможно, придётся отказаться от идеи коэффициента 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.

Ок, тяну новую.

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

tekagi - Последнюю перезалил дефы добавил баг с набором счета исправил!

Так может быть коэффициент поправки на фон загрубить сильнее?

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

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

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

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)

mambavamba14 пишет:
Так может быть коэффициент поправки на фон загрубить сильнее?

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

Пока работа алгоритма мне нравится.

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

alexadresat - Странно, я не делал чтоб он обнулялся...мб имеешь ввиду что черточки появлются?

tekagi - Самое главное то - шо по кнопкам у нас?)) И да, диапазон фона следующий не нужно указывать с "1" тк это будет мертвая зона тогда.

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

mambavamba14 - Поверь на слово, лень видео снимать..  И показания, черточки и единицы измерения пропадают.

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

mambavamba14 пишет:
Самое главное то - шо по кнопкам у нас?))

Пока работают, иногда субъективно подглюкивают. Не трогай пока.

mambavamba14 пишет:
И да, диапазон фона следующий не нужно указывать с "1" тк это будет мертвая зона тогда.

Упсь, понял. Когда менял - в обработку не смотрел.

alexadresat пишет:
И показания, черточки и единицы измерения пропадают.

У меня такое на секунду раз проскочило, но по какому условию - так и не понял. Ориентировочно в конце первичного набора массива после старта.
UPD: Пропадает на секунду после смены "----" на значение. Но не только, может пропасть "----" мкР/ч и снова появиться "----" мкР/ч.

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

tekagi - Залил с твоим конфигом. Выходит лишняя инфа.

 

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

Это нормально, если не надо - отключи в

#define COEF_DEBUG            0 //выводить отладку коэффициента рядом с надписью "ФОН"(0 - не выводить | 1 - выводить)

Это коэффициенты, по сравнению которых происходит автосброс для ускорения счёта. Вверху - реальное соотношение на данный момент, над мкР/ч - расчётный коэффициент, с которым сравниваем. Относится к таблицам в сетапе.

Как по стабильости при ЕРФ и при работе с КИ на разных расстояниях и при перемещении источника?

 

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

alexadresat - Установи #define COEF_DEBUG            0

tekagi - А показания сбрасываются или просто исчезают?

Обновил архив, добавил конфиги, исправил баг с "макс", актуальная версия 2.0.1(2.0.0 - это та самая от 16:15 но с мелкими правками).

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

"----" мкР/ч   >> "пусто от МАКС: и до конца строки" >> 264 мкР/ч.

или

"----" мкР/ч   >> "пусто от МАКС: и до конца строки" >> "----" мкР/ч.

У меня проявляется нечасто и всего на секунду.

UPD: По коэффициентам. Похоже, надо заменить

  0, 30, //0-й порог
  30, 100, //1-й порог

на

  0, 50, //0-й порог
 50, 100, //1-й порог

но это не окончательно))

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

tekagi - Сейчас показания фона более менее адекватные.

Набор секунд 25 и понижение с 13.8 мР/ч до окружающего фона 12 мкР/ч, секунд 20.

Да забыл, поставил 

1 0, 50, //0-й порог
2 50, 100, //1-й порог

 

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

А скорость реакции на источник и стабилизация показаний при поднесении/удалении?

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

Немного оптимизировал объем, из за использования английских символов на экране старта тратилось на ветер 600 байт...

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

mambavamba14 - Не смотрится по русски. А если картинкой сделать, не меньше будет память жрать???

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

alexadresat - Ну что поделать, это немыслимое расточительство столько тратить на 2 строки..)) Как вариант картинка...но блин каждый раз перерисовывать версию такое себе... Если только как вариант сделать картинку с пустым местом под версию, а версию уже печатать из прошивки.

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

 Если только как вариант сделать картинку с пустым местом под версию, а версию уже печатать из прошивки. Вот это самое то....

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

alexadresat - Да, но я щас попробовал, картинка будет занимать 250 байт... такой себе вариант...

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

А так???

Jonni333
Offline
Зарегистрирован: 04.07.2020

Здравствуйте, форумчане. Собрал я данный девайс. Преобразователь сделал свой. Со стабилизацией. Делал чтоб использовать для любых схем. Потребление около 5ма. Но можно сделать около 1ма. Но вот беда, мой СТС-5 не заработал. Ранее стоял в другом самодельном дозиметре. С давних времен завалялся СИ8б. Просмотрел я бегло форум и не нашел, кто б изменил код под другую чувствительность. Может кто то всеж сделал это. Подскажите пожалуйста. Буду очень благодарен.

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

#ArDos_with_RADON_2.0.1 - Добавлен глубокий сон при ЕРФ для снижения энергопотребления, минимальный порог отключения можно задать в "config" параметр "RAD_PWR_DOWN", исправлен алгоритм счета фона, оптимизация объема.

alexadresat - Да мне нравится, добавил))

tekagi - Уупс.. вышла накладочка с алгоритмом перебора времени счета для коэффициентов... Рассчитывалось изначально что в каждом новом этапе будет на 1 сек больше, а не как на 5 - 10 - 20 и тд... В общем исправил это безобразие, сейчас должно с любыми данными в массиве правильно)) ПыСы. Возможно из за этого и была нестабильность текущего коэффициента, тк. необходимый диапазон ячеек еще не заполнен, но алгоритм "заранее" делил на него(что понятное дело не правильно).

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

UPD. Исправлен не сбрасывающийся переключатель массива коэффициентов счета.

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

mambavamba14, увы, но проблема с заменой датчиков "в лоб" простым изменением времени счёта не решается. Для бОльших датчиков время маленькое, и часто дробное, к примеру 6,15 сек., а при секундных интервалах снятия импульсов уже поправочный коэффициент. А для малышей вроде СБМ-21 и СБМ-10 сотни секунд, при которых наш алгоритм ускорения сойдёт с ума, да и основные показания фона будут сильно гулять.. Если укладывается в рамки 20-60 секунд, то можно менять без проблем.
Вечером пошшупаю изменения.

1707
Offline
Зарегистрирован: 08.02.2017

Мужики, что то утворил. Решил обновить прошивку, прошился и не работает, нет счёта. На касания пальцами реакция есть, отсчёт после включения по нулям. Перед прошивкой всё работало, куда копнуть?

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

1707 - Какая версия прошивки и какая была до этого? Я так понимаю треск бузера есть, а не отображает уровень фона? Параметры преобразователя свои вводили?

Если прошивка радон, то пробуйте сброс настроек(удержание кнопки "ок" при включении). Если версия совсем старая была мб что не так пошло...

1707
Offline
Зарегистрирован: 08.02.2017

mambavamba14  проишлся сейчас на 2,0,1 всё тоже, сброс делал. Прошла рабочая была вроде 1,7. Плата как у Вас. Треск и счёт есть при касании пальце, а так тишина и по нулям.

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

1707 - Транс потрескивает? И выставил ли свои настройки в делителе?

//Настройки//
uint8_t ADC_value = 185;  //значение АЦП при котором 400В с учетом вашего делителя напряжения (0..255). Для значений делителя с сайта srukami 163. alexadresat 185. 
uint16_t k_delitel = 500; //коефициент делителя напряжения, зависит от вашего делителя. Для значений делителя с сайта srukami k_delitel 576. alexadresat 500.
byte puls = 2; //тонкая настройка длинны импульса высоковольтного транса
 
float opornoe = 1.10; //опорное напряжение
mambavamba14
Offline
Зарегистрирован: 25.12.2019

1707 - Если при касании есть треск и показания меняются, а когда просто лежит нету счета вообще, скорее всего проблема со счетчиком(трубкой). Попробуйте предыдущую залить прошивку(2.0.0, 1.7.1 или 1.6.5) если на них будет тоже самое, то точно счетчик(ну или контакт мб где плохенький).

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

mambavamba14 - Я думаю все дело в длине импульса...

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

alexadresat - Мб и импульс да... Попробуй у себя последнюю прошивку, нормально ли все работает...

1707
Offline
Зарегистрирован: 08.02.2017

alexadresat ничего не менял в коде, всё стоит как и у меня должно, плата Ваша.
Подкинул ещё 2 датчика, одинаково. Транс пищит. В меню зайти не могу почему то.

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

1707 - В какое меню? Если меню отладки или статистики, так это потому что они отключены по умолчанию, если меню настроек, то с версии 2.0.0 вход в меню удержанием клавиши "ок".

Пробовали предыдущую прошивку? Например 1.7.1?

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

1707 - Попробуй измени на это

 byte puls = 7; //тонкая настройка длинны импульса высоковольтного транса

1707
Offline
Зарегистрирован: 08.02.2017

Поставил 1,7 - всё заработало, считает. Перед этим ставил утилиту настройки, в ручную более 80% не поднялось. Автоматическая настроилась / сохранил и прошил 1,7 версию. В чём баг не понятно. Данные в утилите не менял - резаки 200 и 100, напругу свою поставил, вручную стрикал импульс перебором, не помогло. Видимо в крайних прошивках более всё требовательно к трансу, а на 1.7 версии по проще с этим и прибор работает.

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

1707 - Какие настройки стоят SETUP.h в версии 1.7, такие же и ставь во все остальные

uint8_t ADC_value = 185
uint16_t k_delitel = 500
byte puls = 2;
1707
Offline
Зарегистрирован: 08.02.2017

Ёлки палки, Полтергейст, после 1,7 зашил 2,0,1 но изменил byte puls = 7 и заработало.

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

1707 - Я на бум сказал 7 , тебе надо своё поставить

1707
Offline
Зарегистрирован: 08.02.2017

alexadresat Но в утилите подбором не получилось закачать на 100%, чем грозит не своё число?

====

Импульсы:
Прошил 1 - не работает

Прошил 2 - не работает

Прошил 3 - заработало (в сравнении с 7 показания текущие выше минимум на 50% со старта)

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

1707 - Почитай про первый запуск...

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

1707 - Импульс в утилите можно подобрать "автонастройкой импульса", данные из утилиты(которые она сохраняет) пока автоматически в прошивках не подгружаются. Поэтому после настройки их нужно вводить в ручную во вкладку "SETUP".

"Но в утилите подбором не получилось закачать на 100%" - что вы имеете ввиду?

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

mambavamba14 - Прошил последнюю, разницу с предыдущей не увидел.  Пока не к чему придраться... Потестим, посмотрим... 

1707
Offline
Зарегистрирован: 08.02.2017

При быстрой настройке после введённых данных накачка обрывалась при 80%. Но там я менял только напряжение, сопротивления нет.

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

alexadresat - Изменения в основном коснулись алгоритма счета(должно более стабильно начать работать) и режимов сна(в полной спячке более глубоко зачыпаем при низком фоне) должно по идее дать минимальное потребление(но это не точно).

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

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

1707 - У тебя загрузчик прошит optiboot v8? Если прошит все можно подстроить из настроек-отладка...

#define DEBUG_RETURN     1 //вернуть отладку преобразователя(требуется optiboot v8) (1 - отладка доступна из интерфеса | 0 - отладка не доступна из интерфейса)

1707
Offline
Зарегистрирован: 08.02.2017

Сейчас поищу как optiboot v8 зашить

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

#ArDos_utility_for_debug_0.0.3 - Добавлена быстрая калибровка импульса перед первой накачкой в быстрой настройке.

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

В автонастройке импульса не хватает вывода напряжения, хотя бы для информации.

С калибровкой высокого проблема. Либо делать её на напряжении около 100-150 вольт, либо дорабатывать алгоритм накачки. Если старая прошивка у меня без особого напряга тянет подключённый на высокое мультиметр, то утилита затыкается (на версии РАДОН пока не пробовал). Поскольку для настройки нужно ввести текущий уровень напряжения -то мультиметры даже на 10 МОм не дадут выйти на режим. При подключённом на высокое мультиметре алгоритм не может докачать до требуемого уровня и падает с ошибкой. При автонастройке импульса без мультиметра выдаёт 11, с мультиметром 2. Наиболее экономичная должна быть 4-5, но без замера тока её не отловить, по минимуму скорости как раз 10-11, для грубой настройки подойдёт.