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, Studeni
Anonim
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač
Arduino DIY Geiger brojač

Naručili ste DIY Geigerov 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š Geigerov brojač ne radi, ništa ne funkcionira kako je opisano u DIY -u koji pratite kada povežete svoj Geiger -ov brojač na svoj Arduino.

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

Zapamtiti; sastavite i kodirajte Arduino korak po korak, ako prijeđete ravno na gotov projekt, a postoji propuštena žica ili red koda, moglo bi vam potrajati 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Ω.

DIY Geiger -ov komplet za brojače

Žice za kratkospojnike

Priključak 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 Geiger cijevi.

Ovaj Instructable govori o tome kako sam popravio isti Geigerov brojač sa slomljenom Geigerovom 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 ispitivanje Geiger -ovog brojača

Električno ispitivanje Geigerovog brojača
Električno ispitivanje Geigerovog brojača
Električno ispitivanje Geigerovog brojača
Električno ispitivanje Geigerovog brojača
Električno ispitivanje Geigerovog brojača
Električno ispitivanje Geigerovog brojača

Prvo upotrijebite pravi napon za napajanje; USB kabel napaja 5 volti istosmjerne struje izravno s vašeg računala, 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 Geigerovih brojača ima vrlo malo kola; pa 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 Geigerovog brojača počeo je na +3 volti i padao na 0 volti svaki put kad je Geigerova 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č s Arduinom i vašim računalom.

Spojite GND na Arduinu s GND -om na Geigerovom brojaču.

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

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

S neovisnim napajanjem spojenim na Geigerov brojač.

Spojite GND na Arduinu s GND -om na Geigerovom brojaču.

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

Povežite Arduino s računalom.

Korak 5: Kodirajte

Kodirati
Kodirati
Kodirati
Kodirati
Kodirati
Kodirati

Otvorite Arduino IDE i učitajte kôd.

// Ova skica broji broj impulsa u minuti.

// Spojite GND na Arduinu s 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.

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

nepotpisani dugi previousMillis; // varijabla za mjerenje vremena

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

broji ++;

}

#define LOG_PERIOD 60000 // stopa prebrojavanja

void setup () {// postavljanje

broji = 0;

Serial.begin (9600);

pinMode (2, INPUT);

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

Serial.println ("Start counter");

}

void loop () {// glavni ciklus

bezznačna duga strujaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = trenutniMillis;

Serial.println (broji);

broji = 0;

}

}

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

U Alati odaberite Port i Com

Učitajte kôd.

Nakon što se kôd učita 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 "Serijski ispis (cpm);".

Serijski.println (cpm); ispisat će svaki broj na svom retku.

Serijski.ispis (cpm); izgledat će kao jedan veliki broj koji ispisuje svaki broj na istom retku, pa je nemoguće reći koji je to broj.

Korak 7: J305 Mjerenje pozadinskog zračenja

J305 Mjerenje pozadinskog zračenja
J305 Mjerenje pozadinskog zračenja
J305 Mjerenje pozadinskog zračenja
J305 Mjerenje pozadinskog zračenja

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 osjetnika dima

J305 Mjerenje zračenja osjetnika dima
J305 Mjerenje zračenja osjetnika dima
J305 Mjerenje zračenja osjetnika dima
J305 Mjerenje zračenja osjetnika 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 Geigerove cijevi zajedno s gama česticama.

Ako je sve u redu, brojke bi se trebale promijeniti.

Americij-241 iz ionske komore detektora dima prosječan je broj 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 brojeve po minuti što ga čini manje dosadnim.

Kôd sam dodao "Serial.println (" Start counter ");".

Kôd sam promijenio; "Serial.print (cpm);" u "Serial.println (cpm);".

“#Define LOG_PERIOD 15000”; postavlja vrijeme odbrojavanja na 15 sekundi, promijenio sam ga u "#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.

#uključi

#define LOG_PERIOD 15000 // Razdoblje bilježenja u milisekundama, preporučena vrijednost 15000-60000.

#define MAX_PERIOD 60000 // Maksimalno razdoblje bilježenja bez mijenjanja ove skice

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

bez potpisa dugi CPM; // varijabla za CPM

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

nepotpisani dugi previousMillis; // varijabla za mjerenje vremena

void tube_impulse () {// potpostupak za bilježenje događaja iz Geiger Kit -a

broji ++;

}

void setup () {// potproces postavljanja

broji = 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

bezznačna duga strujaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = trenutniMillis;

cpm = broji * množitelj;

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

broji = 0;

}

}

Prosječni broj SBM-20 u pozadini iznosio je 23,4 CPM.

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

Ožičenje Geiger brojača s LCD -om
Ožičenje Geiger brojača s 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 na Vcc

LCD Vdd pin za GND

Podesivi otpornik od 10 kΩ.

Vcc, Vo, Vdd

Gajgerov brojač

VIN na digitalni pin 2

5 V do +5V

GND na uzemljenje

Korak 11: Geiger brojač s LCD -om

Geiger brojač s LCD -om
Geiger brojač s LCD -om
Geiger brojač s LCD -om
Geiger brojač s LCD -om
Geiger brojač s LCD -om
Geiger brojač s LCD -om

// uključuje kod knjižnice:

#uključi

#uključi

#define LOG_PERIOD 15000 // Razdoblje bilježenja u milisekundama, preporučena vrijednost 15000-60000.

#define MAX_PERIOD 60000 // Maksimalno razdoblje bilježenja bez mijenjanja ove skice

#define PERIOD 60000.0 // (60 sec) jednominutno razdoblje mjerenja

hlapljivo, bez potpisa dugo CNT; // varijabla za brojanje prekida od dozimetra

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

bez potpisa dugi CPM; // varijabla za CPM

množitelj bez potpisa int; // varijabla za izračun 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 knjižnicu brojevima pinova sučelja

LCD tekući kristal (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 ("Geigerov brojač");

odgoda (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.tisak (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Ako je prošla jedna minuta

cleanDisplay (); // Očisti LCD

// Učinite nešto u vezi s 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 mapu s istim imenom.

Preporučeni: