Turinys:

„Arduino DIY Geiger“skaitiklis: 12 žingsnių (su nuotraukomis)
„Arduino DIY Geiger“skaitiklis: 12 žingsnių (su nuotraukomis)

Video: „Arduino DIY Geiger“skaitiklis: 12 žingsnių (su nuotraukomis)

Video: „Arduino DIY Geiger“skaitiklis: 12 žingsnių (su nuotraukomis)
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Liepa
Anonim
„Arduino DIY Geiger“skaitiklis
„Arduino DIY Geiger“skaitiklis
„Arduino DIY Geiger“skaitiklis
„Arduino DIY Geiger“skaitiklis

Taigi jūs užsisakėte „pasidaryk pats“„Geiger“skaitiklį ir norite jį prijungti prie „Arduino“. Jūs einate į internetą ir bandote pakartoti, kaip kiti prijungė savo „Geiger“skaitiklį prie „Arduino“, tik norėdami sužinoti, kad kažkas negerai. Nors atrodo, kad jūsų „Geiger“skaitiklis nieko neveikia, kaip aprašyta „pasidaryk pats“, kai prijungiate „Geiger“skaitiklį prie „Arduino“.

Šioje instrukcijoje aptarsiu, kaip pašalinti kai kuriuos iš šių trikčių.

Prisiminti; surinkite ir koduokite „Arduino“po vieną žingsnį, jei einate tiesiai į baigtą projektą ir yra praleistas laidas ar kodo eilutė, tai gali užtrukti amžinai, kol surasite problemą.

1 žingsnis: įrankiai ir dalys

Įrankiai ir dalys
Įrankiai ir dalys

Dėžutės prototipas Naudojau „Ferrero Rocher“saldainių dėžutę.

Maža duonos lenta

16x2 LCD ekranas

Arduino plokštės eteris UNO arba Nano

220 Ω rezistorius

Pot 10 kΩ reguliuojamas rezistorius.

„Pasidaryk pats“„Geiger“skaitiklių rinkinys

Trumpieji laidai

Akumuliatoriaus jungtis arba laidai

Osciloskopas

Smulkios nosies replės

Mažas standartinis atsuktuvas

2 žingsnis: Surinkite savo „Geiger“skaitiklį

Surinkite savo „Geiger“skaitiklį
Surinkite savo „Geiger“skaitiklį

Bet kokia jūsų „Geiger Tube“žala; ir jūsų „Geiger“skaitiklis neveiks, todėl naudokite apsauginį akrilo dangtelį, kad nepažeistumėte „Geiger“vamzdžio.

Ši instrukcija yra apie tai, kaip aš pataisiau tą patį „Geiger“skaitiklį su sulaužytu „Geiger“vamzdeliu ir uždėjau apsauginį akrilo dangtelį, kad ateityje nesulaužyčiau.

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

3 veiksmas: elektrinis Geigerio skaitiklio testavimas

Elektrinis Geigerio skaitiklio bandymas
Elektrinis Geigerio skaitiklio bandymas
Elektrinis Geigerio skaitiklio bandymas
Elektrinis Geigerio skaitiklio bandymas
Elektrinis Geigerio skaitiklio bandymas
Elektrinis Geigerio skaitiklio bandymas

Pirmiausia naudokite tinkamą maitinimo šaltinio įtampą; USB laidas tiekia 5 voltų nuolatinę srovę tiesiai iš kompiuterio, tačiau 3 AA baterijų laikiklis skirtas 1,5 volto šarminėms baterijoms, kurių bendra įtampa yra 4,5 voltai. Jei naudojate 1,2 volto įkraunamas NI-Cd arba NI-MH baterijas, jums reikės 4 AA baterijų laikiklio, kurio bendra įtampa yra 4,8 voltai. Jei naudojate mažiau nei 4,5 voltų, „Geiger“skaitiklis gali neveikti taip, kaip turėtų.

„Geiger“skaitiklių išvestyje yra labai mažai grandinių; Taigi kol garsiakalbis skleidžia tiksintį garsą ir mirksi šviesos diodas, turėtumėte gauti signalą ant VIN kaiščio.

Norėdami būti tikri dėl išėjimo signalo; prie išėjimo prijunkite osciloskopą, prijungdami teigiamą osciloskopo zondo pusę prie VIN ir neigiamą osciloskopo zondo pusę prie žemės.

Užuot tik laukęs foninės spinduliuotės, kad suveiktų Geigerio skaitiklis, aš panaudojau americium-241 iš dūmų detektorių jonų kameros, kad padidinčiau Geigerio skaitiklių reakcijas. „Geiger“skaitiklio išėjimas prasidėjo nuo +3 voltų ir nukrito iki 0 voltų kiekvieną kartą, kai „Geiger“vamzdis reagavo į alfa daleles ir po akimirkos grįžo prie +3 voltų. Tai yra signalas, kurį įrašysite naudodami „Arduino“.

4 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

Yra du būdai, kaip prijungti „Geiger“skaitiklį prie „Arduino“ir kompiuterio.

Prijunkite „Arduino“GND prie GND „Geiger“skaitiklyje.

Prijunkite 5 V „Arduino“prie 5 V Geigerio skaitiklio.

Prijunkite VIN ant „Geiger“skaitiklio prie „A2“„Arduino“.

Nepriklausoma energija prijungta prie „Geiger“skaitiklio.

Prijunkite „Arduino“GND prie GND „Geiger“skaitiklyje.

Prijunkite VIN ant „Geiger“skaitiklio prie „A2“„Arduino“.

Prijunkite „Arduino“prie kompiuterio.

5 žingsnis: kodas

Kodas
Kodas
Kodas
Kodas
Kodas
Kodas

Atidarykite „Arduino IDE“ir įkelkite kodą.

// Šis eskizas skaičiuoja impulsų skaičių per minutę.

// Prijunkite GND „Arduino“prie GND Geigerio skaitiklyje.

// Prijunkite 5 V „Arduino“prie 5 V Geigerio skaitiklio.

// Prijunkite VIN ant Geigerio skaitiklio prie D2 Arduino.

nepasirašyti ilgi skaičiavimai; // kintamasis GM Tube įvykiams

unsigned ilgai ankstesnisMillis; // kintamasis laiko matavimui

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

skaičiuoja ++;

}

#define LOG_PERIOD 60000 // skaičiavimo rodiklis

void setup () {// sąranka

skaičiuoja = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impulsas, FALLING); // apibrėžti išorinius pertraukimus

Serial.println („Pradėti skaitiklis“);

}

void loop () {// pagrindinis ciklas

nepasirašyta ilga srovėMillis = milis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = dabartinisMillis;

Serial.println (skaičiuoja);

skaičiuoja = 0;

}

}

Įrankiuose pasirinkite „Arduino“ar kitą naudojamą plokštę.

Įrankiuose pasirinkite „Port“ir „Com“

Įkelkite kodą.

Kai kodas bus įkeltas į Įrankiai, pasirinkite „Serial Monitor“ir stebėkite, kaip veikia „Geiger“skaitiklis.

Ieškokite nesklandumų. Vienintelis dalykas, susijęs su šiuo kodu, yra šiek tiek nuobodus, todėl kiekvieną kartą turite laukti 1 minutę.

6 žingsnis: 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

Tai vienas iš pirmųjų klaidų, kurias radau kode; todėl stebėkite tai savo kode „Serial.println (cpm)“; ir „Serial.print (cpm);“.

Serial.println (cpm); kiekvieną skaičių išspausdins savo eilutėje.

Serijinis atspaudas (cpm); atrodys kaip vienas didelis skaičius, spausdinantis kiekvieną skaičių toje pačioje eilutėje, todėl neįmanoma pasakyti, koks yra skaičius.

7 žingsnis: J305 foninio radiacijos matavimas

J305 Fono radiacijos matavimas
J305 Fono radiacijos matavimas
J305 Fono radiacijos matavimas
J305 Fono radiacijos matavimas

Pirmasis yra foninės spinduliuotės, natūralios spinduliuotės, kuri jau egzistuoja natūraliai, matavimas. Išvardytas skaičius yra MUT (skaičius per minutę), tai yra iš viso išmatuotos radioaktyviosios dalelės kas minutę.

J305 fono vidurkis buvo 15,6 MUT.

8 žingsnis: J305 Dūmų jutiklio spinduliuotės matavimas

J305 Dūmų jutiklio spinduliuotės matavimas
J305 Dūmų jutiklio spinduliuotės matavimas
J305 Dūmų jutiklio spinduliuotės matavimas
J305 Dūmų jutiklio spinduliuotės matavimas

Neretai „Geiger“skaitiklis pakartotinai pateikia tą patį skaičių, todėl patikrinkite jį radiacijos šaltiniu. Aš naudojau spinduliuotės matavimą iš Americium jonų kameros iš dūmų detektoriaus. Dūmų jutiklis naudoja „Americium“kaip alfa dalelių, kurios jonizuoja ore esančias dūmų daleles, šaltinį. Aš pašalinau metalinį jutiklio dangtelį, kad alfa ir beta dalelės kartu su gama dalelėmis galėtų patekti į Geigerio vamzdelį.

Jei viskas gerai, skaičiai turėtų pasikeisti.

„Americium-241“iš dūmų detektorių jonų kameros vidutinis skaičius buvo 519 MUT.

9 žingsnis: SBM-20

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

Šis „Arduino“eskizas yra modifikuota Alexo Boguslavskio versija.

Šis eskizas skaičiuoja impulsų skaičių per 15 sekundžių ir konvertuoja jį į skaičių per minutę, kad būtų mažiau varginantis.

I kodas pridėjo „Serial.println („ Start counter “);“.

I kodas pakeistas; „Serijinis atspaudas (cpm);“į „Serial.println (cpm);“.

„#Define LOG_PERIOD 15000“; nustato skaičiavimo laiką iki 15 sekundžių, aš jį pakeičiau į „#define LOG_PERIOD 5000“arba 5 sekundes. Aš neradau pastebimo skirtumo tarp skaičiavimo 1 minutę arba 15 sekundžių ir 5 sekundžių.

#įtraukti

#define LOG_PERIOD 15000 // Registravimo laikotarpis milisekundėmis, rekomenduojama vertė 15000-60000.

#define MAX_PERIOD 60000 // Maksimalus registravimo laikotarpis nekeičiant šio eskizo

nepasirašyti ilgi skaičiavimai; // kintamasis GM Tube įvykiams

nepasirašytas ilgas cpm; // kintamasis MUT

unsigned int multiplier; // kintamasis, skirtas apskaičiuoti MUT šiame eskize

unsigned ilgai ankstesnisMillis; // kintamasis laiko matavimui

void tube_impulse () {// antrinė įvykių fiksavimo iš „Geiger Kit“procedūra

skaičiuoja ++;

}

void setup () {// sąrankos papildoma procedūra

skaičiuoja = 0;

cpm = 0;

daugiklis = MAX_PERIOD / LOG_PERIOD; // skaičiavimo daugiklis, priklauso nuo jūsų žurnalo laikotarpio

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // apibrėžti išorinius pertraukimus

Serial.println („Pradėti skaitiklis“); // kodas, kurį pridėjau

}

void loop () {// pagrindinis ciklas

nepasirašyta ilga srovėMillis = milis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = dabartinisMillis;

cpm = skaičiuoja * daugiklį;

Serial.println (cpm); // kodą pakeičiau

skaičiuoja = 0;

}

}

SBM-20 fono vidurkis buvo 23,4 MUT.

10 veiksmas: „Geiger“skaitiklio prijungimas prie LCD

„Geiger“skaitiklio prijungimas su LCD ekranu
„Geiger“skaitiklio prijungimas su LCD ekranu

LCD jungtis:

LCD K kaištis prie GND

Skystųjų kristalų LCD kontaktas su 220 Ω rezistoriumi prie Vcc

LCD D7 kaištis į skaitmeninį kaištį 3

LCD D6 kaištis į skaitmeninį kaištį 5

LCD D5 kaištis į skaitmeninį kaištį 6

LCD D4 kaištis į skaitmeninį kaištį 7

LCD Įjunkite kaištį į skaitmeninį kaištį 8

LCD R/W kaištis prie žemės

LCD RS kaištis į skaitmeninį kaištį 9

LCD VO kaištis, skirtas 10 kΩ puodui reguliuoti

LCD Vcc kaištis į Vcc

LCD Vdd kaištis prie GND

Pot 10 kΩ reguliuojamas rezistorius.

Vcc, Vo, Vdd

Geigerio skaitiklis

VIN į skaitmeninį kaištį 2

Nuo 5 V iki +5 V.

GND į žemę

11 žingsnis: „Geiger“skaitiklis su LCD

„Geiger“skaitiklis su LCD
„Geiger“skaitiklis su LCD
„Geiger“skaitiklis su LCD
„Geiger“skaitiklis su LCD
„Geiger“skaitiklis su LCD
„Geiger“skaitiklis su LCD

// įtraukite bibliotekos kodą:

#įtraukti

#įtraukti

#define LOG_PERIOD 15000 // Registravimo laikotarpis milisekundėmis, rekomenduojama vertė 15000-60000.

#define MAX_PERIOD 60000 // Maksimalus registravimo laikotarpis nekeičiant šio eskizo

#define PERIOD 60000.0 // (60 sek.) vienos minutės matavimo laikotarpis

nepastovus nepasirašytas ilgas CNT; // kintamasis, skirtas skaičiuoti pertraukas iš dozimetro

nepasirašyti ilgi skaičiavimai; // kintamasis GM Tube įvykiams

nepasirašytas ilgas cpm; // kintamasis MUT

unsigned int multiplier; // kintamasis, skirtas apskaičiuoti MUT šiame eskize

unsigned ilgai ankstesnisMillis; // kintamasis laiko matavimui

nepasirašytas ilgas laikotarpis; // kintamasis laiko matavimui

nepasirašytas ilgas MUT; // kintamasis MUT matavimui

// inicijuoti biblioteką naudojant sąsajos kaiščių numerius

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

void setup () {// sąranka

LCD. pradžia (16, 2);

CNT = 0;

MUT = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print („RH Electronics“);

lcd.setCursor (0, 1);

lcd.print ("Geigerio skaitiklis");

vėlavimas (2000 m.);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Įvykis ant 2 kaiščio

}

void loop () {

lcd.setCursor (0, 0); // spausdinti tekstą ir CNT LCD ekrane

lcd.print ("MUT:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (milis ()> = dispPeriod + PERIOD) {// Jei viena minutė baigėsi

cleanDisplay (); // Išvalyti LCD

// Darykite ką nors dėl sukauptų CNT įvykių….

lcd.setCursor (5, 0);

MUT = CNT;

lcd.print (MUT); // Rodyti MUT

CNT = 0;

dispPeriod = milis ();

}

}

void GetEvent () {// Gauti įvykį iš įrenginio

CNT ++;

}

void cleanDisplay () {// Išvalyti LCD rutiną

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

12 žingsnis: failai

Atsisiųskite ir įdiekite šiuos failus į „Arduino“.

Įdėkite kiekvieną.ino failą į tą patį pavadinimą.

Rekomenduojamas: