Здравствуйте,
Купил китайскую плату и по примеру из интернета (Счетчик Гейгера для Arduino) хочу сделать себе счетчик Гейгера.
Запустил следующий код на ардуино нано:
все работает нормально, данные выводятся на монитор порта.
Но мне нужно запустить его на NodeMCU, чтобы отправлять данные по wifi. Подключил китайскую плату пину D8 на NodeMCU, немного переделал код:
Но выводятся одни нули.
Пробовал подключать к другим пинам, но ничего не получается. Не пойму почему не приходят данные. Помогите плиз.
Купил китайскую плату и по примеру из интернета (Счетчик Гейгера для Arduino) хочу сделать себе счетчик Гейгера.
Запустил следующий код на ардуино нано:
Код:
#include <SPI.h>
#define LOG_PERIOD 15000 //Logging period in milliseconds, recommended value 15000-60000.
#define MAX_PERIOD 60000 //Maximum logging period without modifying this sketch
unsigned long counts; //variable for GM Tube events
float cpm; //variable for CPM
unsigned long multiplier; //variable for calculation CPM in this sketch
unsigned long previousMillis; //variable for time measurement
float MSVh;
float MR;
float conversionFactor = 0.0057; //SBM-20
//float conversionFactor = 0.008120; // J305ß
void tube_impulse(){ //subprocedure for capturing events from Geiger Kit
counts++;
}
void setup()
{
Serial.begin(9600);
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; //calculating multiplier, depend on your log period
Serial.begin(9600);
attachInterrupt(0, tube_impulse, FALLING); //define external interrupts
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
previousMillis = currentMillis;
cpm = counts * multiplier;
MSVh = cpm/151;
MSVh = cpm*conversionFactor;
Serial.print(cpm);
Serial.println(" CPM");
Serial.print(MSVh);
Serial.println (" mSVh");
counts = 0;
}
}
Но мне нужно запустить его на NodeMCU, чтобы отправлять данные по wifi. Подключил китайскую плату пину D8 на NodeMCU, немного переделал код:
Код:
#include <SPI.h>
#define LOG_PERIOD 15000 //Logging period in milliseconds, recommended value 15000-60000.
#define MAX_PERIOD 60000 //Maximum logging period without modifying this sketch
#define gaugePin D8
unsigned long counts; //variable for GM Tube events
float cpm; //variable for CPM
unsigned long multiplier; //variable for calculation CPM in this sketch
unsigned long previousMillis; //variable for time measurement
float MSVh;
float MR;
float conversionFactor = 0.0057; //SBM-20
//float conversionFactor = 0.008120; // J305ß
void ICACHE_RAM_ATTR tube_impulse(){ //subprocedure for capturing events from Geiger Kit
counts++;
}
void ICACHE_RAM_ATTR setup()
{
Serial.begin(9600);
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; //calculating multiplier, depend on your log period
Serial.begin(9600);
pinMode(gaugePin, OUTPUT); //Set gaugePin as output
attachInterrupt(0, tube_impulse, FALLING); //define external interrupts
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
previousMillis = currentMillis;
cpm = counts * multiplier;
MSVh = cpm*conversionFactor;
Serial.print(cpm);
Serial.println(" CPM");
Serial.print(MSVh);
Serial.println (" mSVh");
counts = 0;
}
}
Пробовал подключать к другим пинам, но ничего не получается. Не пойму почему не приходят данные. Помогите плиз.