Каталог

Модуль дозиметра RadSens V1 I2C 3,3VDC

Цена:

4980 р.
ожидается
Уже в корзине
Код товара: 12318
Оригинальное название:
RadSens 1v6

Описание товара

Модуль дозиметра RadSens V1

RadSens – универсальный дозиметр-радиометр модульного форм-фактора. 
В качестве чувствительного элемента в модуле используется газоразрядный счетчик Гейгера-Мюллера СБМ20-1, применяемый в большинстве бытовых и профессиональных дозиметров. Устройство поддерживает измерение и расчет интенсивности излучения с использованием двух алгоритмов: с динамическим диапазоном времени счета для обнаружения локальных источников загрязнения, и с широким статическим временным диапазоном для точного измерения значения текущего радиационного фона. Также имеется возможность использовать модуль без дополнительных устройств в качестве «индикатора» излучения, ориентируясь на частоту мигания установленного на плате светодиода. Регистрация импульсов, алгоритмы расчета и передача данных по I2C с частотой работы шины до 400кГц реализованы на установленном на плате микроконтроллере STМ32. Модуль поддерживает программную смену адреса и включение / отключение работы высоковольтного преобразователя для повышения энергоэффективности. Также имеется возможность по I2C корректировать чувствительность счетчика к ионизирующему излучению, что позволяет использовать на данном модуле другие счетчики с аналогичным анодным напряжением питания. 

Технические характеристки:

  • Напряжение питания 3,0…3,5 В
  • Максимальный ток потребления при высоком излучении: не более 50 мА
  • Интерфейс подключения: I2C
  • Частота шины I2C: 400 кГц
  • I2C адрес по умолчанию: 0x66
  • Диапазон измеряемого излучения: 14,4...144 000,0 мкР/ч
  • Чувствительность к гаммаизлучению Ra226: 100...110 имп/мкР
  • Разброс относительной чувствительности: ±15 %
  • Диапазон рабочих температур: от -20°C до +60°C
  • Диапазон влажности: 0...98 %RH
  • Размеры модуля: 89мм х 21мм х 13,5мм
  • Вес модуля: не более 12 г

Расположение выводов (разъём XH-2.54 4P):

  • VCC - Цепь питания датчика
  • GND - Земля
  • I2C-SCL - Линия тактирования интерфейса I2C
  • I2C-SDA - Линия данных интерфейса I2C
  • INT - Импульсный выход (не имеет вывода в разъем XH-2.54 4P)

Обмен данными (настройка и передача измеренных значений) осуществляется по интерфейсу I2C на скорости до 400 кГц. При этом датчик работает в режиме Slave c адресом по умолчанию 0x66 (настраивается программно). 

Описание регистров:

  • ID устройства [адрес: 0x00, размер: 8 бит, доступ: R] Контрольный регистр, содержащий идентификатор изделия. По умолчанию имеет значение 0x7D. Используется для контроля подключения устройства.
  • Версия прошивки [адрес: 0x01, размер: 8 бит, доступ: R] Регистр хранения текущей версии прошивки. Используется для контроля и своевременного обновления ПО.
  • Интенсивность излучения (динамический период счета) [адрес: 0x03, размер: 24 бит, доступ: R] Содержит динамическое значение интенсивности ионизирующего гаммаизлучения. При детектировании резкого изменения интенсивности излучения (как в большую, так и в меньшую сторону) динамически регулирует период счета скользящего окна, чтобы диапазон охватывал временной промежуток, содержащий только актуальные данные. Позволяет использовать устройство в режиме поиска локальных загрязнений. Частота обновления – 1 сек.
  • Интенсивность излучения (статический период счета) [адрес: 0x06, размер: 24 бит, доступ: R] Содержит статистическое значение интенсивности ионизирующего гаммаизлучения. Период счета скользящего окна составляет 500 сек. Позволяет производить точные измерения постоянного радиационного фона. Частота обновления – 1 сек.
  • Счетчик импульсов [адрес: 0x09, размер: 16 бит, доступ: R] Содержит накопленное количество зарегистрированных модулем импульсов с момента последнего считывания данных по I2C. Значение сбрасывается каждый раз при считывании. Позволяет
  • Адрес устройства [адрес: 0x10, размер: 8 бит, доступ: W] Данный регистр используется для изменения адреса устройства при необходимости подключения на одну линию одновременно нескольких устройств. По умолчанию содержит значение 0x66. По окончании записи новое значение сохраняется в энергонезависимую память микроконтроллера.
  • Генератор HV [адрес: 0x11, размер: 8 бит, доступ: R/W] Регистр управления высоковольтным преобразователем напряжения. По умолчанию находится во включенном состоянии. Для включения HV генератора в регистр необходимо записать 1, для отключения 0. При попытке записи других значений команда игнорируется.
  • Чувствительность счетчика [адрес: 0x12, размер: 16 бит, доступ: R/W] Содержит значение коэффициента Рср (п 3.2), используемое при расчете интенсивности излучения. При необходимости (например, при установке другого типа счетчика) в регистр вносится необходимое значение чувствительности в имп/мкР. По умолчанию установлено значение 105 имп/мкР. По окончании записи новое значение сохраняется в энергонезависимую память

Импульсный выход предназначен для регистрации импульсов внешним устройством (контроллером) в режиме реального времени. Рабочий уровень линии – 3.3 В. При регистрации импульса модуль опускает линию в 0 на 150 микросекунд, затем восстанавливает высокий рабочий уровень линии.

Геометрические размеры:

   

Библиотека для Arduino, ESP82266, ESP32 (GitHub)

Пример кода для Arduino с применением библиотеки.

// Инициализируем библиотеки
#include <Wire.h>
#include <CG_RadSens.h>
#include <GyverOLED.h>

#define ADC_pin A0 // задаём значение пина АЦП
#define buz_pin 14 // Задаём значения пина для пищалки

GyverOLED<SSH1106_128x64> oled; // Инициализируем 1.3" OLED-экран
CG_RadSens radSens(RS_DEFAULT_I2C_ADDRESS); // Инициализируем RadSens

uint16_t ADC; // Переменная для значений АЦП
uint32_t timer_cnt; // Таймер для измерений дозиметра
uint32_t timer_bat; // Таймер для измерения заряда батареи
uint32_t timer_imp; // Таймер опроса импульсов для пьезоизлучателя
uint32_t pulsesPrev; // Число импульсов за предыдущую итерацию

//Функция аудиоприветствия
void hello() {
  for (int i = 1; i < 5; i++) {
    tone(buz_pin, i * 1000);
    delay(100);
  }
  tone(buz_pin, 0);
  delay(100);
  oled.setScale(2);
  oled.setCursor(10, 3);
  oled.print("Radsensor");
  oled.update();  
  delay(3000);
  oled.clear(); 
}

//Функция, которая создаёт "трески" пьезоизлучателя при появлении импульсов
void beep() {     // Функция, описывающая время и частоту пищания пьезоизлучателя
  tone(buz_pin, 3500);
  delay(13);
  tone(buz_pin, 0);
  delay(40);
}

//Функция предупреждения при превышении порога излучения
void warning() {
  for (int i = 0; i < 3; i++) {
    tone(buz_pin, 1500);
    delay(250);
    tone(buz_pin, 0);
    delay(250);
  }
}

void setup() {
  Wire.begin();
  oled.init(); // Инициализируем OLED в коде
  oled.clear(); 
  oled.update();  
  pinMode(ADC_pin, OUTPUT); // Инициализируем АЦП как получатель данных
  hello();  // Приветствуем пищанием  
  oled.update();  // Обновляем экран
  pulsesPrev = radSens.getNumberOfPulses(); // Записываем значение для предотвращения серии тресков на старте
}

void loop() {
  // Раз в 250 мс происходит опрос счётчика импульсов для создания тресков, если число импульсов за 250 мс превысит 5, раздастся предупреждение
  if (millis() - timer_imp > 250) {  
    timer_imp = millis();
    int pulses = radSens.getNumberOfPulses();
    if (pulses - pulsesPrev > 5 ) {
      pulsesPrev = pulses;
      warning();
    }
    if (pulses > pulsesPrev) {
      for (int i = 0; i < (pulses - pulsesPrev); i++) {
        beep();
      }
      pulsesPrev = pulses;
    }
  }
  // Снимаем показания с дозиметра и выводим их на экран
  if (millis() - timer_cnt > 1000) { 
    timer_cnt = millis();
    char buf1[50];
    char buf2[50];
    char buf3[50];
    sprintf(buf1, "%.1f мкр/ч", radSens.getRadIntensyDynamic()); // Собираем строку с показаниями динамической интенсивности
    sprintf(buf2, "Стат: %.1f мкр/ч ", radSens.getRadIntensyStatic()); // Собираем строку с показаниями средней интенсивности за период работы
    oled.setCursor(0, 2);
    oled.setScale(2);
    oled.print(buf1);
    oled.setCursor(0, 6);
    oled.setScale(1);
    oled.print(buf2);
  }
  // Считываем показание с АЦП, рисуем батарею и создаём индикацию заряда, показания АЦП вы можете подстроить под своё удобство
  if (millis() - timer_bat > 5000) { 
    timer_bat = millis();
    ADC = analogRead(ADC_pin); 
    oled.rect(110, 0, 124, 8, OLED_STROKE); 
    oled.rect(125, 3, 126, 5, OLED_FILL);
    if (ADC >= 350) {
      oled.rect(112, 2, 114, 6, OLED_FILL);
      oled.rect(116, 2, 118, 6, OLED_FILL);
      oled.rect(120, 2, 122, 6, OLED_FILL);
    }
    if (ADC < 350 && ADC >= 335) {
      oled.rect(112, 2, 114, 6, OLED_FILL);
      oled.rect(116, 2, 118, 6, OLED_FILL);
    }
    if (ADC < 335 && ADC >= 320) {
      oled.rect(112, 2, 114, 6, OLED_FILL);
    }
    if (ADC < 320){
      oled.rect(110, 0, 124, 8, OLED_STROKE);
      oled.rect(125, 3, 126, 5, OLED_FILL);
    }
  }
  oled.update(); // Обновляем экран в конце цикла
}

Datasheet (PDF, ENG)

Похожие позиции

350 р.
Арт. 13198
Уже в корзине
ожидается
330 р.
Арт. 15410
Уже в корзине
ожидается
750 р.
Арт. 12306
Уже в корзине
более 500 шт.
4880 р.
Арт. 12319
Уже в корзине
ожидается
530 р.
Арт. 11221
Уже в корзине
ожидается
footer shadow
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

compacttool logoadaptive site

accepted payment systems

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2024г https://compacttool.ru