Схема простейшая - преобразователь 400в + СБМ-20, и ключ на транзисторе с делителем выдает импульсы на вход ардуинки с прерыванием.

Плата у меня вместе с датчиком размещена в герметичном корпусе и размещена на улице.
До ардуины идет 4-х жильный экранированный кабель диной 1,5 метров (помех пока не было)
1 жила - минус питания
2 - + питания (у меня 12в+ стабилизатор, а у вас будет 5)
3 - выходной сигнал (2 ножка UNO или MINI Arduino)
4 - +5 от ардуины на делитель R18 + R19
doz.jpg
Если надо сделать портативную версию (носимую, то собираете все в одном корпусе)
Я же использую его в метеостанции на esp8266 для вывода информации на сайт Народного мониторинга.
Посмотреть можно тут http://narodmon.ru/329
Скетч для ардуины
CODE:
#include <SPI.h>
#include "LiquidCrystal.h"
#define LOG_PERIOD 36000 //время замера в милисекундах 15000-60000.
#define MAX_PERIOD 60000
unsigned long counts;
unsigned long cpm;
unsigned int multiplier;
unsigned long previousMillis;
LiquidCrystal lcd(4, 8, 5, 6, 3, 7);
void setup(){ //setup subprocedure
lcd.begin(8, 2);
pinMode(13, OUTPUT);
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; period
Serial.begin(9600);
attachInterrupt(0, tube_impulse, FALLING);
lcd.setCursor(0,0);
lcd.print("Counter");
lcd.setCursor(0,1);
lcd.print("Wait");
delay(2000); lcd.clear();
lcd.print("FON");
}
void loop(){ //main cycle
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
previousMillis = currentMillis;
cpm = counts * multiplier;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FON");
lcd.setCursor(0,1);
lcd.print(cpm);
lcd.print(" uR/h");
// Serial.println(cpm); // вывод в сом порт для отладки
counts = 0;
}
}
//////////////////////////////////////////////////
void tube_impulse(){
digitalWrite(13, HIGH);
delay(1);
digitalWrite(13, LOW);
counts++;
lcd.setCursor(6,0); // в первой строке будет появляться количество пролетевших частичек за период измерения - 36 сек
lcd.print(counts);
}
#include <SPI.h>
#include "LiquidCrystal.h"
#define LOG_PERIOD 36000 //время замера в милисекундах 15000-60000.
#define MAX_PERIOD 60000
unsigned long counts;
unsigned long cpm;
unsigned int multiplier;
unsigned long previousMillis;
LiquidCrystal lcd(4, 8, 5, 6, 3, 7);
void setup(){ //setup subprocedure
lcd.begin(8, 2);
pinMode(13, OUTPUT);
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; period
Serial.begin(9600);
attachInterrupt(0, tube_impulse, FALLING);
lcd.setCursor(0,0);
lcd.print("Counter");
lcd.setCursor(0,1);
lcd.print("Wait");
delay(2000); lcd.clear();
lcd.print("FON");
}
void loop(){ //main cycle
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
previousMillis = currentMillis;
cpm = counts * multiplier;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FON");
lcd.setCursor(0,1);
lcd.print(cpm);
lcd.print(" uR/h");
// Serial.println(cpm); // вывод в сом порт для отладки
counts = 0;
}
}
//////////////////////////////////////////////////
void tube_impulse(){
digitalWrite(13, HIGH);
delay(1);
digitalWrite(13, LOW);
counts++;
lcd.setCursor(6,0); // в первой строке будет появляться количество пролетевших частичек за период измерения - 36 сек
lcd.print(counts);
}