I just took this geiger counter as sellers describe "Model: NGMC-V1" http://www.aliexpress.com/snapshot/6784484322.html?orderId=68203318265743
I tried to search code for it
for few hours and didn't found anything, asked the seller and he don't know anything as they describe in the selling section " We do not provide technical support for Arduino code. You can learn more at home page of arduino. " Is there any example that I can use it with that model? I asked other people online as well and they told me to search on arduino web page but couldn't find anything about that exact model of geiger counter.
I even tried the video websites, in the 2nd website there is a geiger counter kit different than mine
but they got guild there is how to assemble it and how to install the arduino IDE and lib's they talk about the code too but I couldn't find anything about code.
Is anyone that know anything about it? I need some help.
#include <SPI.h>
#define LOG_PERIOD 15000 //Logging period in milliseconds, recommended value 15000-60000.
#define MAX_PERIOD 60000 //Maximum logging period
unsigned long counts; //variable for GM Tube events
unsigned long cpm; //variable for CPM
unsigned int multiplier; //variable for calculation CPM in this sketch
unsigned long previousMillis; //variable for time measurement
void tube_impulse(){ //procedure for capturing events from Geiger Kit
counts++;
}
void setup(){ //setup procedure
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; //calculating multiplier, depend on your log period
Serial.begin(9600); // start serial monitor
// uncommennt if you have time-out problem to connect with Radiation Logger
// delay(2000);
// Serial.write('0'); // sending zero to avoid connection time out with radiation logger
// delay(2000);
// Serial.write('0'); // sending zero to avoid connection time out with radiation logger
pinMode(2, INPUT); // set pin INT0 input for capturing GM Tube events
digitalWrite(2, HIGH); // turn on internal pullup resistors, solder C-INT on the PCB
attachInterrupt(0, tube_impulse, FALLING); //define external interrupts
}
void loop(){ //main cycle
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
previousMillis = currentMillis;
cpm = counts * multiplier;
Serial.print(cpm); // send cpm data to Radiation Logger
Serial.write(' '); // send null character to separate next data
counts = 0;
}
}
I'm not really sure but a bit makes no sense, what about uSv? Can someone explain to me? Anyone who used or use geiger counter not just theories but practice.
You must calibrate each Geiger tube/counter by comparing with an accurately calibrated counter, using a radiation source emitting the type of radiation of interest.
Google "geiger counter calibration service" for commercial offerings.
You must calibrate each Geiger tube/counter by comparing with an accurately calibrated counter, using a radiation source emitting the type of radiation of interest.
Google "geiger counter calibration service" for commercial offerings.
As I understand the geiger i took is ready to use, probably is calibrated but my problem is not that but the code, i need a code for arduino to get the data on my PC.
In principle, your Arduino code should just count and display the number of impulses received per minute (aka CPM). Depending on the tube you use, CPM translates into uS/h (micro sieverts per hour).
You can adapt BroHogan's code (already at version 10 or so): https://sites.google.com/site/diygeigercounter/software
Depending on the tube you use, CPM translates into uS/h (micro sieverts per hour).
As the seller described the tube is M4011
You said depending on the tube, what exactly? If the code depends on the tube how exactly i will know
what kind of code i need if there is not so many examples on the internet. We CPM ok but how we
transform them in uSh that's the question.
From what I understand, each tube type has its own characteristics (sensitivity, voltage required, dead time etc etc), and these should be found in the datasheet.
For example, the code I pointed you to, uses this definition for SBM-20 geiger tube:
#define PRI_RATIO 175.43 // defaults to SBM-20 ratio
To approximate/estimate this ratio for your tube, compare its sensitivity (from datasheet) with SBM-20's.
The Arduino software will only does these steps for you:
count the pulses (in CPM) - independent of the tube type
Beside the board you have (the geiger counter itself), you need an arduino and an LCD (display).
Connect them together, by following the directions from the site I linked to (brohogan's).
Then upload the code provided, any version you wish (start with the simplest, the earliest; it's easier to manage; code got complicated as evolved).
Then keep us posted on your progress
From the mouth of the geiger counter authority himself (BroHogan):
M4011 - Glass tube made (new) in China. Claimed to be more sensitive than the SBM-20. Although I once got high readings, it now seems similar to the SMB-20 - not too impressive, especially at it's price. It's possible this tube may be light sensitive which would explain the initial high counts but that is not confirmed by other users. It is reported that a good CPM to uSv/h conversion rate for this tube is 151.5.
So use the ratio of 151.5 (replace the 175.43 in the code).
It is reported that a good CPM to uSv/h conversion rate for this tube is 151.5.
Without stating the type and energy of radiation, that number is utterly and completely useless. See Sievert - Wikipedia
Geiger counters are very useful for warning you that certain types of radiation are present. If the CPM goes up very much above background, that is a cause for great concern. Either leave the area or investigate the cause (after donning protective gear and clothing).
But you are just kidding yourself that conversion of CPM to uSv/hr does anything useful, unless you know what type of radiation is present.
That tube will not even detect most alpha particle radiation, for example, and probably is very, very inefficient at detecting X-rays and beta rays.
But we all understand that this is a hobby project (I'm guessing), where large margins of error are allowed and expected.
This is a prototype project as an example of real and accurate components but I need that exact Geiger counter to be mostly accurate too if possible at the range of his detection of beta and gamma in uS/h probably this exact tube is not capable of detecting above a exact (max) uSh but that it's ok I need at least some reading to saw that I can detect nuclear radiation.
jremington
Beside the board you have (the geiger counter itself), you need an arduino and an LCD Connect them together, by following the directions from the site I linked to (brohogan's).(display).
If you look above the model of geiger counter does not have a lcd and I'm not gonna use a lcd at all I just need to connect the module to an arduino/atmega and get the readings in uSh.
Now I can't test the module because I don't have it in my hands yet I just ordered it and i will have it in few months probably so what I'm doing is collecting materials so when it will arrive i will test it immediately, that's one of the most important parts of my project.
If you look above the model of geiger counter does not have a lcd and I'm not gonna use a lcd at all I just need to connect the module to an arduino/atmega and get the readings in uSh.
So how are you going to display the radiation numbers? Send the info to the PC (on serial)?
I can detect nuclear radiation.
What radiation do you want to detect? How are you going to test the device?
So how are you going to display the radiation numbers? Send the info to the PC (on serial)?
Yes.
What radiation do you want to detect?
I need just uSh readings, as i know beta and gamma.
How are you going to test the device?
I don't know, that's what I'm trying to figure out, the module that i took has pins for arduino i need a code compatible to that module and get uSh on my PC serial monitor, that's all I need.
You need to understand the geiger's tube working principle first. That's the element that actually "measures" radiation. Basically, each high-energy particle attracted to its center electrode (anode) generates a "click" with the help of the electronics around the tube. This "click", essentially an impulse, will trigger an interrupt function to be executed by your Arduino. That function counts the number of clicks. That's basically it. There is no uS/h anywhere. You have to calculate that, based on the number of clicks.
You need to understand the geiger's tube working principle first. That's the element that actually "measures" radiation. Basically, each high-energy particle attracted to its center electrode (anode) generates a "click" with the help of the electronics around the tube. This "click", essentially an impulse, will trigger an interrupt function to be executed by your Arduino. That function counts the number of clicks. That's basically it. There is no uS/h anywhere. You have to calculate that, based on the number of clicks.
I understand all that already. What i need to learn now how the code works for that exact tube but to understand a code you need a code an example or something, some people gave me links to read. So if you or someone else can explain me in easier way that would be nice.
(You can't learn something without examples and it's always easier to understand something when someone explain you and answer your questions).