Taula de continguts:

Arduino DIY Geiger Counter: 12 passos (amb imatges)
Arduino DIY Geiger Counter: 12 passos (amb imatges)

Vídeo: Arduino DIY Geiger Counter: 12 passos (amb imatges)

Vídeo: Arduino DIY Geiger Counter: 12 passos (amb imatges)
Vídeo: DIY Arduino Geiger Counter (Video 1) 2024, Desembre
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

Per tant, heu demanat un comptador Geiger de bricolatge i voleu connectar-lo al vostre Arduino. Aneu en línia i intenteu duplicar com altres persones han connectat el seu comptador Geiger a Arduino només per trobar alguna cosa que no funciona. Tot i que el vostre comptador Geiger sembla que no funciona, res no funciona com es descriu al bricolatge que esteu seguint quan connecteu el comptador Geiger al vostre Arduino.

En aquest instructiu tractaré com solucionar alguns d’aquests problemes.

Recordeu; muntar i codificar Arduino un pas a la vegada, si aneu directament a un projecte acabat i hi ha un cable o una línia de codi perduts, us podria trigar a trobar el problema per sempre.

Pas 1: eines i peces

Eines i peces
Eines i peces

Prototip de caixa He utilitzat una caixa de caramels Ferrero Rocher.

Tauleta reduïda

LCD de 16x2

La placa Arduino ether UNO o Nano

Resistència de 220 Ω

Pot resistència ajustable de 10 kΩ.

Kit de comptador de bricolatge Geiger

Filferros de pont

Connector o arnès de la bateria

Oscil·loscopi

Alicates de nas fi

Tornavís petit estàndard

Pas 2: munteu el taulell Geiger

Munteu el taulell Geiger
Munteu el taulell Geiger

Qualsevol dany al vostre tub Geiger; i el taulell Geiger no funcionarà, així que utilitzeu la coberta protectora d’acrílic per evitar danys al tub Geiger.

Aquest manual és com he reparat el mateix comptador Geiger amb un tub Geiger trencat i he instal·lat la coberta acrílica protectora per evitar trencaments en el futur.

www.instructables.com/id/Repairing-a-DIY-G…

Pas 3: Prova electrònica del comptador Geiger

Prova electrònica del comptador Geiger
Prova electrònica del comptador Geiger
Prova electrònica del comptador Geiger
Prova electrònica del comptador Geiger
Prova electrònica del comptador Geiger
Prova electrònica del comptador Geiger

Primer utilitzeu la tensió adequada per a la font d'alimentació; el cable USB subministra 5 volts de CC directament a l'ordinador, però el suport de la bateria de 3 AA és per a piles alcalines d'1,5 volts, que fan un voltatge total de 4,5 volts. Si utilitzeu bateries recarregables de 1,2 volts NI-Cd o NI-MH, necessitareu un suport de bateria de 4 AA per a un voltatge total de 4,8 volts. Si utilitzeu menys de 4,5 volts, el comptador Geiger pot no actuar com hauria de fer-ho.

Hi ha molt pocs circuits a la sortida dels comptadors Geiger; de manera que, sempre que l’altaveu emeti un so i el LED parpellegi, haureu d’obtenir un senyal al pin VIN.

Per estar segur del senyal de sortida; connecteu un oscil·loscopi a la sortida connectant el costat positiu de la sonda de l’oscil·loscopi al VIN i el costat negatiu de la sonda de l’oscil·loscopi a terra.

En lloc d’esperar la radiació de fons per activar el comptador Geiger, he utilitzat americium-241 des d’una càmera d’ions de detectors de fum per augmentar les reaccions dels comptadors Geiger. La sortida del comptador Geiger començava a +3 volts i baixava a 0 volts cada vegada que el tub Geiger reaccionava a les partícules alfa i tornava a +3 volts un moment després. Aquest és el senyal que gravareu amb Arduino.

Pas 4: cablejat

Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat
Cablejat

Hi ha dues maneres de connectar el comptador Geiger a Arduino i a l'ordinador.

Connecteu el GND a Arduino al GND al comptador Geiger.

Connecteu el 5V d’Arduino al 5V del taulell Geiger.

Connecteu el VIN al comptador Geiger al D2 d’Arduino.

Amb alimentació independent connectada al comptador Geiger.

Connecteu el GND a Arduino al GND al comptador Geiger.

Connecteu el VIN al comptador Geiger al D2 d’Arduino.

Connecteu Arduino a l'ordinador.

Pas 5: Codi

Codi
Codi
Codi
Codi
Codi
Codi

Obriu Arduino IDE i carregueu el codi.

// Aquest esbós compta el nombre de pulsacions per minut.

// Connecteu el GND a Arduino al GND al comptador Geiger.

// Connecteu el 5V d’Arduino al 5V del comptador Geiger.

// Connecteu el VIN al comptador Geiger al D2 d’Arduino.

recomptes llargs sense signar; // variable per a esdeveniments de GM Tube

unsigned long previousMillis; // variable per mesurar el temps

void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2

compta ++;

}

#define LOG_PERIOD 60000 // taxa de recompte

void setup () {// setup

recomptes = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impuls, FALLING); // defineix les interrupcions externes

Serial.println ("Comptador inicial");

}

void loop () {// cicle principal

corrent llarg sense signar Millis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

anteriorMillis = actualMillis;

Serial.println (compta);

recomptes = 0;

}

}

A Eines, seleccioneu l'Arduino o una altra placa que feu servir.

A Eines, seleccioneu Port i Com

Pengeu el codi.

Un cop carregat el codi a Eines, seleccioneu Monitor de sèrie i mireu el vostre comptador Geiger.

Busqueu fallades. L’únic d’aquest codi és que és una mica tediós, que heu d’esperar 1 minut per cada recompte.

Pas 6: Serial.println vs Serial.print

Serial.println Vs Serial.print
Serial.println Vs Serial.print
Serial.println Vs Serial.print
Serial.println Vs Serial.print

Aquest és un dels primers errors que vaig trobar al codi; vigileu-ho al vostre codi "Serial.println (cpm);" i "Serial.print (cpm);".

Serial.println (cpm); imprimirà cada compte en la seva pròpia línia.

Serial.print (cpm); es veurà com un número gran que imprimeix cada recompte en la mateixa línia, cosa que fa impossible saber quin és el recompte.

Pas 7: Mesura de la radiació de fons J305

J305 Mesurament de la radiació de fons
J305 Mesurament de la radiació de fons
J305 Mesurament de la radiació de fons
J305 Mesurament de la radiació de fons

El primer és la mesura de la radiació de fons, la radiació natural que ja existeix de forma natural. El nombre indicat és el CPM (recompte per minut), que és un total de partícules radioactives mesurades cada minut.

El recompte mitjà de fons J305 va ser de 15,6 CPM.

Pas 8: Mesura J305 de la radiació del sensor de fum

J305 Mesura de la radiació del sensor de fum
J305 Mesura de la radiació del sensor de fum
J305 Mesura de la radiació del sensor de fum
J305 Mesura de la radiació del sensor de fum

No és estrany que un comptador Geiger us proporcioni el mateix recompte repetidament, així que comproveu-ho amb una font de radiació. He utilitzat la mesura de la radiació de l’Americium, una càmera d’ions d’un detector de fum. El sensor de fum utilitza Americium com a font de partícules alfa que ionitzen partícules de fum a l’aire. Vaig retirar la tapa metàl·lica del sensor perquè les partícules alfa i beta poguessin arribar al tub Geiger juntament amb les partícules gamma.

Si tot està bé, els comptes haurien de canviar.

El recompte mitjà de càmera iònica de detectors de fum en Americium-241 va ser de 519 CPM.

Pas 9: SBM-20

SBM-20
SBM-20
SBM-20
SBM-20

Aquest esbós d'Arduino és una versió modificada escrita per Alex Boguslavsky.

Aquest esbós compta el nombre de pulsacions en 15 segons i el converteix en recomptes per minut, cosa que fa que sigui menys tediós.

Codi que he afegit “Serial.println (" Comptador d'inici ");”.

Codi que he canviat; "Serial.print (cpm);" a "Serial.println (cpm);".

"#Define LOG_PERIOD 15000"; estableix el temps de recompte a 15 segons, el vaig canviar a "#define LOG_PERIOD 5000" o 5 segons. No he trobat cap diferència apreciable en la mitjana entre comptar durant 1 minut, o 15 segons i 5 segons.

#incloure

#define LOG_PERIOD 15000 // Període de registre en mil·lisegons, valor recomanat 15000-60000.

#define MAX_PERIOD 60000 // Període màxim de registre sense modificar aquest esbós

recomptes llargs sense signar; // variable per a esdeveniments de GM Tube

cpm llarg sense signar; // variable per a CPM

multiplicador int sense signe; // variable per al CPM de càlcul en aquest esbós

unsigned long previousMillis; // variable per mesurar el temps

void tube_impulse () {// subprocediment per capturar esdeveniments de Geiger Kit

compta ++;

}

void setup () {// setup subprocediment

recomptes = 0;

cpm = 0;

multiplicador = MAX_PERIOD / LOG_PERIOD; // calcular el multiplicador, depèn del període de registre

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // defineix les interrupcions externes

Serial.println ("Comptador inicial"); // codi que he afegit

}

void loop () {// cicle principal

corrent llarg sense signar Millis = millis ();

if (actualMillis - anteriorMillis> LOG_PERIOD) {

anteriorMillis = actualMillis;

cpm = compta * multiplicador;

Serial.println (cpm); // codi que he canviat

recomptes = 0;

}

}

El recompte mitjà de fons de SBM-20 va ser de 23,4 CPM.

Pas 10: Cablatge del comptador Geiger amb una pantalla LCD

Cablatge del comptador Geiger amb una pantalla LCD
Cablatge del comptador Geiger amb una pantalla LCD

Connexió LCD:

Pin LCD K a GND

LCD A pin a 220 Ω resistència a Vcc

Pin LCD D7 a pin digital 3

Pin LCD D6 a pin digital 5

Pin LCD D5 a pin digital 6

Pin LCD D4 a pin digital 7

Activa el pin LCD al pin 8 digital

Pin LCD R / W a terra

Pin RS LCD al pin digital 9

Pin VO LCD per ajustar el pot de 10 kΩ

Pin Vcc LCD a Vcc

Pin Vdd LCD a GND

Pot resistència ajustable de 10 kΩ.

Vcc, Vo, Vdd

Comptador Geiger

VIN al pin 2 digital

5 V a + 5V

GND a terra

Pas 11: comptador Geiger amb pantalla LCD

Comptador Geiger amb pantalla LCD
Comptador Geiger amb pantalla LCD
Comptador Geiger amb pantalla LCD
Comptador Geiger amb pantalla LCD
Comptador Geiger amb pantalla LCD
Comptador Geiger amb pantalla LCD

// inclou el codi de la biblioteca:

#incloure

#incloure

#define LOG_PERIOD 15000 // Període de registre en mil·lisegons, valor recomanat 15000-60000.

#define MAX_PERIOD 60000 // Període màxim de registre sense modificar aquest esbós

#define PERIOD 60000.0 // (60 seg) un minut de mesura

volàtil CNT llarg sense signar; // variable per comptar interrupcions des del dosímetre

recomptes llargs sense signar; // variable per a esdeveniments de GM Tube

cpm llarg sense signar; // variable per a CPM

multiplicador int sense signe; // variable per al CPM de càlcul en aquest esbós

unsigned long previousMillis; // variable per mesurar el temps

dispPeriod llarg sense signar; // variable per mesurar el temps

CPM llarg sense signar; // variable per mesurar el CPM

// inicialitzeu la biblioteca amb els números dels pins de la interfície

LiquidCrystal lcd (9, 8, 7, 6, 5, 3);

void setup () {// setup

lcd.begin (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Geiger Counter");

endarreriment (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Esdeveniment al pin 2

}

bucle buit () {

lcd.setCursor (0, 0); // imprimeix text i CNT a la pantalla LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Si s’acaba un minut

cleanDisplay (); // Esborra la pantalla LCD

// Feu alguna cosa sobre esdeveniments CNT acumulats….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Mostra el CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Obtenir esdeveniment des del dispositiu

CNT ++;

}

void cleanDisplay () {// Esborra la rutina LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Pas 12: fitxers

Descarregueu i instal·leu aquests fitxers al vostre Arduino.

Col·loqueu cada fitxer.ino en una carpeta amb el mateix nom.

Recomanat: