Introduction: Arduino Geiger Counter

Build a Geiger counter out of an Arduino

Step 1: What You Will Need

What you'll need:
-Arduino (Can be any type but must have 5V capabilities to work with Geiger counter and LCD)
-Sparkfun Geiger Counter (Other geiger counter boards might work the same but I do not know)
-LCD display
-LED
-Piezo Buzzer
-9V Battery & Battery Clip
-Slider switch
-Project Box ~ (129mm*64mm*45mm)

Step 2: Prep

Solder wires to the RX, GND, and VDD of the LCD display

Also solder wires to the 5V, TX, and GND of the geiger counter.

Step 3: Wiring

Here is the circuit diagram for the Geiger counter

Step 4: Program

// Copy paste the following code into the Arduino program:
// Note: You need to have the RX and TX unplugged from the Arduino to program it
// To program an Arduino Pro Mini with an Arduino UNO follow this link

// Geiger Counter
// Eric Bookless
//
// Introduction
//
// Uses a Sparkfun Geiger Counter to measure radiation and converts it to counts
// per minute. The calculated counts per minute is displayed on an LCD screen.
// Each count is registered with an audible and visual signal by the use of a
// piezo speaker and an LED.
//
// Setup:
//
// - Connect the LED and piezo speaker to pins 9 and 8 respectively
// - Attach pins RX, GND, and VDD from the LCD display to pins 2, GND, and VCC on
//   the Arduino.
// - Attach Geiger counter to power source with pins VCC and GND and connect the
//   TX pin to the RX pin on the Arduino
//


#include <SoftwareSerial.h>

int i;
int count;
int old = -1;
int check;
float CPM;
float now;
float time;
int start;
int piezo = 8;
int led = 9;
char OnesString[10];
char DecimalString[10];
char TimerString[10];

SoftwareSerial mySerial(3, 2);

void setup(){
  pinMode(piezo, OUTPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(500);

  mySerial.write(254); // move cursor to beginning of first line
  mySerial.write(128);
  mySerial.write("                "); // clear display
  mySerial.write("                ");
}


void loop(){
  i = 0;
  count = 0;
  start = millis();
  while (i < 30){
    digitalWrite(led, LOW);
    digitalWrite(piezo, LOW);
    if (Serial.available() > 0) {  // If information available
      check = Serial.read();       // Read serial input
      if (check > 0){
        count++;                    // If it is a hit, increment counter
        digitalWrite(piezo, HIGH);  // Makes audible sount when there is a hit
        digitalWrite(led, HIGH);    // Blinks LED when there is a hit
      }
    }
   i = millis();
   i = i - start;
   i = i/1000;

   sprintf(TimerString, "%2d", 30-i);

   mySerial.write(254); // cursor to 7th position on second line
   mySerial.write(192);

   mySerial.write(TimerString);


  }


  CPM = count*2;
  old = count;                 // Resets 'if' statement
  int cpm = CPM;
  int temp = CPM*1000;
  int decimal = temp % (cpm*1000);

  sprintf(OnesString, "%3d", cpm);

  mySerial.write(254);         // Displays CPM
  mySerial.write(128);
  mySerial.write("CPM: ");
  mySerial.write(OnesString);
}

Step 5: Designing the Project Box

1.  With the project box I was using there was extra plastic around the edges preventing the Geiger counter from going all of the way to    
      the edge of the box. I fixed this by simply chiseling away at it.

2.  Next I cut the holes for the switch and drill a hole for the tube.

3.  Then drill screw holes for the standoffs on the geiger counter.

4.  Cut a hole for the master power switch.

5.  To cut the slot for the lcd screen I drilled several holes about the same size as the screen and carefully removed the remaining      
      material with a sharp chisel. I positioned the screen so that the top left screw hole of the project box would go through the top left
      mounting hole of the screen.

6.  You may need to trim some parts of the project box to insure a good fit.

7.  Once you have the LCD screen where you want it you can drill holes for the LED and Piezo speaker.

Step 6: Assembly

1.  Glue the LED and Piezo speaker into the top of the project box. (Hot glue works particularly well)

2.  Mount the main power switch first (Since it will be below the geiger tube board). I added hot glue to protect the solder joints.

3.  Attach the LCD screen to the top of the project box Fit Geiger tube in the box ( I found the mini fit well if I put the exposed pins below
     the geiger tube)

4.  Close 'er up and your done!!

5.  Test to make sure it works!!!