Sisukord:

Arduino DIY Geigeri loendur: 12 sammu (piltidega)
Arduino DIY Geigeri loendur: 12 sammu (piltidega)

Video: Arduino DIY Geigeri loendur: 12 sammu (piltidega)

Video: Arduino DIY Geigeri loendur: 12 sammu (piltidega)
Video: Дозиметр ДБГ-05Б модернизация (Ардуино) №2 2024, November
Anonim
Arduino DIY Geigeri loendur
Arduino DIY Geigeri loendur
Arduino DIY Geigeri loendur
Arduino DIY Geigeri loendur

Nii et olete tellinud DIY Geigeri loenduri ja soovite selle ühendada oma Arduinoga. Te lähete võrku ja proovite korrata, kuidas teised on ühendanud oma Geigeri loenduri Arduinoga, et avastada, et midagi on valesti. Kuigi tundub, et teie Geigeri loendur ei tööta miski, nagu on kirjeldatud teie tehtud DIY -s, kui ühendate oma Geigeri loenduri oma Arduinoga.

Selles juhendis käsitlen mõningate nende tõrgete tõrkeotsingut.

Pidage meeles; koguge ja kodeerige Arduino üks samm korraga, kui lähete otse valmis projekti juurde ja juhtmest või koodiridast on puudu, võib probleemi leidmiseks kuluda igavesti.

Samm: tööriistad ja osad

Tööriistad ja osad
Tööriistad ja osad

Prototüübikarp Kasutasin Ferrero Rocheri kommikarpi.

Väike leivalaud

16x2 LCD

Arduino plaadieeter UNO või Nano

220 Ω takisti

Pott 10 kΩ reguleeritav takisti.

DIY Geigeri loendurikomplekt

Jumper juhtmed

Aku pistik või rakmed

Ostsilloskoop

Peente ninaga tangid

Standardne väike kruvikeeraja

Samm: pange kokku Geigeri loendur

Pange oma Geigeri loendur kokku
Pange oma Geigeri loendur kokku

Teie Geigeri toru kahjustused; ja teie Geigeri loendur ei tööta, nii et kasutage Geigeri toru kahjustamise vältimiseks akrüülist kaitsekatet.

See juhend on selle kohta, kuidas ma parandasin sama Geigeri loendurit katkise Gigeri toruga ja paigaldasin kaitsva akrüülkatte, et vältida purunemist tulevikus.

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

3. samm: Geigeri loenduri elektriline testimine

Geigeri loenduri elektriline testimine
Geigeri loenduri elektriline testimine
Geigeri loenduri elektriline testimine
Geigeri loenduri elektriline testimine
Geigeri loenduri elektriline testimine
Geigeri loenduri elektriline testimine

Esmalt kasutage toiteallika jaoks sobivat pinget; USB -juhe toidab 5 volti alalisvoolu otse teie arvutist, kuid 3 AA patareipesa on mõeldud 1,5 -voldistele leelispatareidele, mille kogupinge on 4,5 volti. Kui kasutate 1,2-voldiseid laetavaid NI-Cd või NI-MH patareisid, vajate 4 AA-tüüpi akupesa, mille kogupinge on 4,8 volti. Kui kasutate vähem kui 4,5 volti, ei pruugi Geigeri loendur õigesti toimida.

Geigeri loendurite väljundis on väga vähe lülitusi; nii kaua, kui kõlar teeb tiksuvat heli ja LED vilgub, peaksite saama signaali VIN -tihvtile.

Et olla kindel väljundsignaalis; ühendage ostsilloskoop väljundiga, ühendades ostsilloskoobi sondi positiivse külje VIN -iga ja ostsilloskoobi sondi negatiivse poole maapinnaga.

Selle asemel, et oodata Geigeri loenduri käivitamiseks taustkiirgust, kasutasin Geigeri loendurite reaktsioonide suurendamiseks suitsuandurite ioonkambrist americium-241. Geigeri loenduri väljund algas +3 volti ja langes 0 voltini iga kord, kui Geigeri toru reageeris alfaosakestele ja naasis hetke pärast +3 volti. See on signaal, mida salvestate Arduino abil.

4. samm: juhtmestik

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

Geigeri loenduri saate Arduino ja arvutiga ühendada kahel viisil.

Ühendage Arduino GND Geigeri loenduri GND -ga.

Ühendage Arduino 5 V Geigeri loenduri 5 V -ga.

Ühendage Geigeri loenduri VIN -kood Arduino D2 -ga.

Sõltumatu toide on ühendatud Geigeri loenduriga.

Ühendage Arduino GND Geigeri loenduri GND -ga.

Ühendage Geigeri loenduri VIN -kood Arduino D2 -ga.

Ühendage Arduino arvutiga.

Samm: kood

Kood
Kood
Kood
Kood
Kood
Kood

Avage Arduino IDE ja laadige kood.

// See visand loeb impulsside arvu minutis.

// Ühendage Arduino GND Geigeri loenduri GND -ga.

// Ühendage Arduino 5V Geigeri loenduri 5V -ga.

// Ühendage Geigeri loenduri VIN -kood Arduino D2 -ga.

allkirjastamata pikad loendused; // GM Tube'i sündmuste muutuja

allkirjastamata kaua eelmineMillis; // muutuja aja mõõtmiseks

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

loeb ++;

}

#define LOG_PERIOD 60000 // loendamise määr

void setup () {// setup

loeb = 0;

Seriaalne algus (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impulss, FALLING); // määratle välised katkestused

Serial.println ("Start counter");

}

void loop () {// põhitsükkel

allkirjata pikk voolMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (loeb);

loeb = 0;

}

}

Valige tööriistades Arduino või muu kasutatav tahvel.

Valige menüüst Tööriistad port ja kom

Laadige kood üles.

Kui kood on tööriistadesse üles laaditud, valige Serial Monitor ja vaadake oma Geigeri loenduri tööd.

Otsige tõrkeid. Ainus asi selle koodi puhul on see, et see on natuke tüütu, peate iga loenduse jaoks ootama 1 minuti.

Samm 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

See on üks esimesi tõrkeid, mille ma koodis leidsin; nii et jälgige seda oma koodis „Serial.println (cpm);” ja „Seeriatrükk (cpm);”.

Serial.println (cpm); prindib iga loendi oma reale.

Seeriaprint (cpm); näeb välja nagu üks suur number, mis trükiks kõik samale reale, mistõttu on võimatu öelda, mis see arv on.

7. samm: kiirguse taustmõõtmine J305 taustal

J305 Taustkiirguse mõõtmine
J305 Taustkiirguse mõõtmine
J305 Taustkiirguse mõõtmine
J305 Taustkiirguse mõõtmine

Esiteks on taustkiirguse mõõtmine, loomulik kiirgus, mis on juba looduslikult olemas. Loetletud arv on CPM (arv minutis), mis on kokku mõõdetud radioaktiivsete osakeste arv minutis.

J305 tausta keskmine arv oli 15,6 CPM.

8. etapp: J305 suitsuanduri kiirguse mõõtmine

J305 Suitsuanduri kiirguse mõõtmine
J305 Suitsuanduri kiirguse mõõtmine
J305 Suitsuanduri kiirguse mõõtmine
J305 Suitsuanduri kiirguse mõõtmine

Pole haruldane, et Geigeri loendur annab teile sama arvu korduvalt, nii et kontrollige seda kiirgusallikaga. Kasutasin suitsuanduri Americium ioonkambri kiirguse mõõtmist. Suitsuandur kasutab Americiumit alfaosakeste allikana, mis ioniseerivad õhus suitsuosakesi. Eemaldasin anduri metallkorgi, et alfa- ja beetaosakesed saaksid koos gammaosakestega Geigeri torusse.

Kui kõik on korras, peaksid arvud muutuma.

Suitsuandurite ioonkambri Americium-241 keskmine arv oli 519 CPM.

9. samm: SBM-20

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

See Arduino visand on muudetud versioon, mille on kirjutanud Alex Boguslavsky.

See visand loendab impulsside arvu 15 sekundiga ja teisendab selle loenduseks minutis, muutes selle vähem tüütuks.

I kood lisas “Serial.println (" Start counter ");”.

Kood I muudetud; „Seeriaprint (cpm);” kuni „Serial.println (cpm);”.

"#Define LOG_PERIOD 15000"; määrab loendamisajaks 15 sekundit, muutsin selle väärtuseks “#define LOG_PERIOD 5000” ehk 5 sekundit. Ma ei leidnud keskmises arvestatavat erinevust 1 minuti või 15 sekundi ja 5 sekundi loendamise vahel.

#kaasake

#define LOG_PERIOD 15000 // Logimisperiood millisekundites, soovitatav väärtus 15000-60000.

#define MAX_PERIOD 60000 // Maksimaalne logimisperiood ilma visandit muutmata

allkirjastamata pikad loendused; // GM Tube'i sündmuste muutuja

allkirjastamata pikk cpm; // muutuja CPM -i jaoks

unsigned int kordaja; // muutuja CPM arvutamiseks selles visandis

allkirjastamata kaua eelmineMillis; // muutuja aja mõõtmiseks

void tube_impulse () {// alamprotseduur sündmuste jäädvustamiseks Geiger Kitist

loeb ++;

}

void setup () {// seadistamise alamprotseduur

loeb = 0;

cpm = 0;

kordaja = MAX_PERIOD / LOG_PERIOD; // kordaja arvutamine sõltub teie logiperioodist

Seriaalne algus (9600);

attachInterrupt (0, tube_impulse, FALLING); // määratle välised katkestused

Serial.println ("Algusloendur"); // lisasin koodi

}

void loop () {// põhitsükkel

allkirjata pikk voolMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = loeb * kordaja;

Serial.println (cpm); // koodi muutsin

loeb = 0;

}

}

SBM-20 tausta keskmine arv oli 23,4 CPM.

10. samm: Geigeri loenduri ühendamine LCD -ekraaniga

Geigeri loenduri juhtmestik LCD -ekraaniga
Geigeri loenduri juhtmestik LCD -ekraaniga

LCD ühendus:

LCD K tihvt GND -le

LCD Pin pin kuni 220 Ω takisti Vcc

LCD D7 tihvt - digitaalne tihvt 3

LCD D6 tihvt - digitaalne tihvt 5

LCD D5 tihvt - digitaalne tihvt 6

LCD D4 tihvt - digitaalne tihvt 7

LCD Lubage tihvt digitaalsele tihvtile 8

LCD R/W tihvt maapinnale

LCD RS -tihvt digitaalsele tihvtile 9

LCD VO tihvt, et reguleerida 10 kΩ potti

LCD Vcc pin to Vcc

LCD Vdd pin GND -le

Pott 10 kΩ reguleeritav takisti.

Vcc, Vo, Vdd

Geigeri loendur

VIN -kood digitaalsele tihvtile 2

5 V kuni +5 V.

GND maapinnale

Samm 11: Geigeri loendur LCD -ekraaniga

Geigeri loendur LCD -ekraaniga
Geigeri loendur LCD -ekraaniga
Geigeri loendur LCD -ekraaniga
Geigeri loendur LCD -ekraaniga
Geigeri loendur LCD -ekraaniga
Geigeri loendur LCD -ekraaniga

// lisage raamatukogu kood:

#kaasake

#kaasake

#define LOG_PERIOD 15000 // Logimisperiood millisekundites, soovitatav väärtus 15000-60000.

#define MAX_PERIOD 60000 // Maksimaalne logimisperiood ilma visandit muutmata

#define PERIOD 60000.0 // (60 sek) ühe minuti pikkune mõõtmisperiood

lenduv allkirjastamata pikk CNT; // muutuja katkestuste loendamiseks dosimeetrist

allkirjastamata pikad loendused; // GM Tube'i sündmuste muutuja

allkirjastamata pikk cpm; // muutuja CPM -i jaoks

unsigned int kordaja; // muutuja CPM arvutamiseks selles visandis

allkirjastamata kaua eelmineMillis; // muutuja aja mõõtmiseks

allkirjastamata pikk ajavahemik; // muutuja aja mõõtmiseks

allkirjastamata pikk CPM; // muutuja CPM mõõtmiseks

// teegi initsialiseerimine liidese nööpnõelte numbritega

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

void setup () {// setup

lcd.algus (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Geigeri loendur");

viivitus (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Sündmus 2. tihvtil

}

void loop () {

lcd.setCursor (0, 0); // teksti ja CNT printimine LCD -ekraanile

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Kui üks minut on läbi

cleanDisplay (); // Kustuta LCD

// Tehke midagi kogunenud CNT sündmuste kohta….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Kuva CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Hangi sündmus seadmest

CNT ++;

}

void cleanDisplay () {// Kustuta LCD -rutiin

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

12. samm: failid

Laadige alla ja installige need failid oma Arduino seadmesse.

Asetage iga.ino -fail sama nimega kausta.

Soovitan: