Sadržaj:

Arduino DIY Geiger brojač: 12 koraka (sa slikama)
Arduino DIY Geiger brojač: 12 koraka (sa slikama)

Video: Arduino DIY Geiger brojač: 12 koraka (sa slikama)

Video: Arduino DIY Geiger brojač: 12 koraka (sa slikama)
Video: Что такое счетчик GM / счетчик Гейгера-Мюллера? - объяснил просто и понятно 2024, Juli
Anonim
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač

Naručili ste DIY Geiger brojač i želite ga povezati sa svojim Arduinom. Odete na mrežu i pokušate duplicirati kako su drugi povezali svoj Geigerov brojač s Arduinom samo da bi otkrili da nešto nije u redu. Iako izgleda da vaš Geiger brojač ne radi, ništa ne funkcionira kako je opisano u DIY -u koji pratite kada povežete svoj Geiger brojač na svoj Arduino.

U ovom uputstvu ću opisati kako riješiti neke od ovih grešaka.

Zapamtite; sastavite i kodirajte Arduino korak po korak, ako idete ravno na gotov projekt, a postoji propuštena žica ili linija koda, moglo bi vam trebati zauvijek da pronađete problem.

Korak 1: Alati i dijelovi

Alati i dijelovi
Alati i dijelovi

Prototip kutije Koristio sam kutiju za bombone Ferrero Rocher.

Mala ploča

16x2 LCD

Arduino ploča eter UNO ili Nano

220 Ω otpornik

Podesivi otpornik od 10 kΩ.

Uradi sam Geigerov set za brojače

Džemper žice

Konektor ili kabelski svežanj baterije

Osciloskop

Klešta za fini nos

Mali standardni odvijač

Korak 2: Sastavite svoj Geiger brojač

Sastavite svoj Geiger brojač
Sastavite svoj Geiger brojač

Bilo kakvo oštećenje vaše Geiger cijevi; i vaš Geigerov brojač neće raditi, pa upotrijebite zaštitni akrilni poklopac kako biste spriječili oštećenje vaše Geiger cijevi.

Ovo uputstvo govori o tome kako sam popravio isti Geigerov brojač sa slomljenom Gajgerovom cijevi i postavio zaštitni akrilni poklopac kako bih spriječio lom u budućnosti.

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

Korak 3: Električno testiranje Geiger -ovog brojača

Električno ispitivanje Geiger -ovog brojača
Električno ispitivanje Geiger -ovog brojača
Električno ispitivanje Geiger -ovog brojača
Električno ispitivanje Geiger -ovog brojača
Električno ispitivanje Geiger -ovog brojača
Električno ispitivanje Geiger -ovog brojača

Prvo upotrijebite pravi napon za napajanje; USB kabel napaja 5 volti istosmjerne struje direktno s vašeg računara, međutim držač baterija od 3 AA služi za alkalne baterije od 1,5 volti, što čini ukupni napon od 4,5 volti. Ako koristite punjive NI-Cd ili NI-MH baterije od 1,2 V, trebat će vam držač baterija od 4 AA za ukupni napon od 4,8 volti. Ako koristite manje od 4,5 volti, Geigerov brojač možda neće djelovati kako bi trebao.

Na izlazu Geiger -ovih brojača ima vrlo malo kola; tako da sve dok zvučnik ispušta zvuk koji otkucava, a LED dioda treperi, trebali biste dobiti signal na VIN pinu.

Da biste bili sigurni u izlazni signal; spojite osciloskop na izlaz spajanjem pozitivne strane sonde osciloskopa na VIN, a negativne strane sonde osciloskopa na tlo.

Umjesto da samo čekam da pozadinsko zračenje pokrene Geigerov brojač, upotrijebio sam americij-241 iz ionske komore detektora dima kako bih povećao reakcije brojača Geiger. Izlaz Gajgerovog brojača počeo je na +3 volti i padao na 0 volti svaki put kada je Gejgerova cijev reagirala na alfa čestice i trenutak kasnije se vratila na +3 volta. Ovo je signal koji ćete snimati s Arduinom.

Korak 4: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Postoje dva načina na koja možete povezati Geigerov brojač sa Arduinom i vašim računarom.

Priključite GND na Arduinu na GND na Geigerovom brojaču.

Spojite 5V na Arduinu na 5V na Geigerovom brojaču.

Spojite VIN na Geigerovom brojaču s D2 na Arduinu.

Sa nezavisnim napajanjem spojenim na Geigerov brojač.

Spojite GND na Arduinu na GND na Geigerovom brojaču.

Spojite VIN na Geigerovom brojaču s D2 na Arduinu.

Povežite Arduino sa računarom.

Korak 5: Kodirajte

Kod
Kod
Kod
Kod
Kod
Kod

Otvorite Arduino IDE i učitajte kôd.

// Ova skica broji broj impulsa u minuti.

// Povežite GND na Arduinu sa GND na Geigerovom brojaču.

// Priključite 5V na Arduinu na 5V na Geigerovom brojaču.

// Povežite VIN na Geigerovom brojaču s D2 na Arduinu.

nepotpisani dugi brojevi; // varijabla za GM Tube događaje

nepotpisani dugi previousMillis; // varijabla za mjerenje vremena

void impulse () {// provjerite je li prilagođeno FALLING di pin 2

count ++;

}

#define LOG_PERIOD 60000 // stopa prebrojavanja

void setup () {// postavljanje

count = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impuls, PADANJE); // definiramo vanjske prekide

Serial.println ("Start counter");

}

void loop () {// glavni ciklus

bez potpisa duga strujaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = trenutniMillis;

Serial.println (broji);

count = 0;

}

}

U Alatkama odaberite Arduino ili drugu ploču koju koristite.

U Alatkama odaberite Port i Com

Otpremite kôd.

Nakon što je kôd postavljen u Tools, odaberite Serial Monitor i gledajte kako vaš Geiger brojač radi.

Potražite greške. Jedina stvar kod ovog koda je da je pomalo dosadan, morate čekati 1 minutu za svaki broj.

Korak 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

Ovo je jedan od prvih propusta koje sam pronašao u kodu; pa pazite na to u svom kodu, „Serial.println (cpm);“i “Serial.print (cpm);”.

Serial.println (cpm); će svaki broj odštampati na sopstvenoj liniji.

Serial.print (cpm); izgledat će kao jedan veliki broj koji ispisuje svaki broj na istoj liniji, pa je nemoguće reći koji je to broj.

Korak 7: J305 Mjerenje pozadinskog zračenja

J305 Mjerenje radijacije u pozadini
J305 Mjerenje radijacije u pozadini
J305 Mjerenje radijacije u pozadini
J305 Mjerenje radijacije u pozadini

Prvo je mjerenje pozadinskog zračenja, prirodnog zračenja koje već postoji prirodno. Navedeni broj je CPM (broj u minuti), što je ukupno izmjerene radioaktivne čestice svake minute.

Prosječni broj pozadina J305 iznosio je 15,6 CPM.

Korak 8: J305 Mjerenje zračenja senzora dima

J305 Mjerenje zračenja senzora dima
J305 Mjerenje zračenja senzora dima
J305 Mjerenje zračenja senzora dima
J305 Mjerenje zračenja senzora dima

Nije neuobičajeno da vam Geigerov brojač više puta daje isti broj pa provjerite to s izvorom zračenja. Koristio sam mjerenje zračenja iz Americiuma, ionsku komoru iz detektora dima. Senzor dima koristi Americij kao izvor alfa čestica koje ioniziraju čestice dima u zraku. Uklonio sam metalni poklopac sa senzora kako bi alfa i beta čestice mogle doći do Geiger cijevi zajedno s gama česticama.

Ako je sve u redu, brojanje bi se trebalo promijeniti.

Americij-241 iz jonske komore detektora dima prosječan broj je 519 CPM.

Korak 9: SBM-20

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

Ova Arduino skica je izmijenjena verzija koju je napisao Alex Boguslavsky.

Ova skica broji broj impulsa u 15 sekundi i pretvara ga u brojanje u minuti čineći ga manje dosadnim.

Kod koji sam dodao dodao je „Serial.println (" Start brojač ");“.

Kod koji sam promijenio; "Serial.print (cpm);" u „Serial.println (cpm);“.

“#Define LOG_PERIOD 15000”; postavlja vrijeme odbrojavanja na 15 sekundi, promijenio sam ga na "#define LOG_PERIOD 5000" ili 5 sekundi. Nisam našao značajnu razliku u prosjeku između brojanja 1 minute, ili 15 sekundi i 5 sekundi.

#include

#define LOG_PERIOD 15000 // Period evidentiranja u milisekundama, preporučena vrijednost 15000-60000.

#define MAX_PERIOD 60000 // Maksimalni period evidentiranja bez izmjene ove skice

nepotpisani dugi brojevi; // varijabla za GM Tube događaje

nepotpisani dugi CPM; // varijabla za CPM

množitelj bez potpisa int; // varijabla za izračunavanje CPM -a na ovoj skici

nepotpisani dugi previousMillis; // varijabla za mjerenje vremena

void tube_impulse () {// potproces za snimanje događaja iz Geiger Kit -a

count ++;

}

void setup () {// potproces postavljanja

count = 0;

cpm = 0;

multiplikator = MAX_PERIOD / LOG_PERIOD; // izračunavanje množitelja, ovisno o vašem dnevniku

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // definiramo vanjske prekide

Serial.println ("Start counter"); // kôd koji sam dodao

}

void loop () {// glavni ciklus

bez potpisa duga strujaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = trenutniMillis;

cpm = broji * multiplikator;

Serial.println (cpm); // kod koji sam promijenio

count = 0;

}

}

Prosječni broj SBM-20 bio je 23,4 CPM.

Korak 10: Ožičenje Geiger brojača sa LCD -om

Ožičenje Geiger brojača sa LCD -om
Ožičenje Geiger brojača sa LCD -om

LCD priključak:

LCD K pin na GND

LCD Pin na 220 Ω otpornik prema Vcc

LCD D7 pin na digitalni pin 3

LCD D6 pin na digitalni pin 5

LCD D5 pin na digitalni pin 6

LCD D4 pin na digitalni pin 7

LCD Omogući pin na digitalni pin 8

LCD R/W pin na masu

LCD RS pin na digitalni pin 9

LCD VO pin za podešavanje lonca od 10 kΩ

LCD Vcc pin za Vcc

LCD Vdd pin za GND

Podesivi otpornik od 10 kΩ.

Vcc, Vo, Vdd

Geiger Counter

VIN na digitalni pin 2

5 V do +5V

GND na masu

Korak 11: Geiger brojač sa LCD -om

Geiger brojač sa LCD -om
Geiger brojač sa LCD -om
Geiger brojač sa LCD -om
Geiger brojač sa LCD -om
Geiger brojač sa LCD -om
Geiger brojač sa LCD -om

// uključuje šifru biblioteke:

#include

#include

#define LOG_PERIOD 15000 // Period evidentiranja u milisekundama, preporučena vrijednost 15000-60000.

#define MAX_PERIOD 60000 // Maksimalni period evidentiranja bez izmjene ove skice

#define PERIOD 60000.0 // (60 sec) jednominutni period mjerenja

hlapljivi, bez potpisa dugački CNT; // varijabla za brojanje prekida od dozimetra

nepotpisani dugi brojevi; // varijabla za GM Tube događaje

nepotpisani dugi CPM; // varijabla za CPM

množitelj bez potpisa int; // varijabla za izračunavanje CPM -a na ovoj skici

nepotpisani dugi previousMillis; // varijabla za mjerenje vremena

unsigned long dispPeriod; // varijabla za mjerenje vremena

nepotpisani dugi CPM; // varijabla za mjerenje CPM -a

// inicijalizira biblioteku brojevima pinova sučelja

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

void setup () {// postavljanje

lcd.begin (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Gajgerov brojač");

kašnjenje (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Događaj na pin 2

}

void loop () {{100} {101}

lcd.setCursor (0, 0); // ispis teksta i CNT na LCD -u

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Ako je istekla jedna minuta

cleanDisplay (); // Clear LCD

// Učinite nešto u vezi sa nakupljenim CNT događajima….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Prikaz CPM -a

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Preuzmi događaj s uređaja

CNT ++;

}

void cleanDisplay () {// Očisti rutinu LCD -a

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Korak 12: Datoteke

Preuzmite i instalirajte ove datoteke na svoj Arduino.

Stavite svaku.ino datoteku u fasciklu sa istim imenom.

Preporučuje se: