Բովանդակություն:

Arduino DIY Geiger Counter: 12 քայլ (նկարներով)
Arduino DIY Geiger Counter: 12 քայլ (նկարներով)

Video: Arduino DIY Geiger Counter: 12 քայլ (նկարներով)

Video: Arduino DIY Geiger Counter: 12 քայլ (նկարներով)
Video: #162 Build your own 50$ connected Geiger Counter (ESP32) 2024, Նոյեմբեր
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

Այսպիսով, դուք պատվիրել եք DIY Geiger հաշվիչ և ցանկանում եք այն միացնել ձեր Arduino- ին: Դուք գնում եք առցանց և փորձում կրկնօրինակել, թե ինչպես են ուրիշները իրենց Geiger հաշվիչը կապել Arduino- ի հետ ՝ միայն սխալ բան գտնելու համար: Չնայած, որ ձեր Գայգերի հաշվիչը կարծես աշխատում է, ոչինչ չի աշխատում այնպես, ինչպես նկարագրված է DIY- ում, որին հետևում եք, երբ Geiger- ի հաշվիչը ձեր Arduino- ին միացնում եք:

Այս Ուղեցույցում ես կներկայացնեմ, թե ինչպես կարելի է վերացնել այս անսարքություններից մի քանիսը:

Հիշեք; հավաքեք և կոդավորեք Arduino- ն ամեն քայլ առ քայլ, եթե անմիջապես գնում եք ավարտված նախագծի և կա բաց թողնված մետաղալար կամ ծածկագրի տող, այն հավիտյան կպահանջի խնդիրը գտնելու համար:

Քայլ 1: Գործիքներ և մասեր

Գործիքներ և մասեր
Գործիքներ և մասեր

Նախատիպ տուփ Ես օգտագործեցի Ferrero Rocher կոնֆետի տուփ:

Փոքր հացաթուղթ

16x2 LCD

Arduino- ի տախտակ ՝ UNO կամ Nano

220 Ω դիմադրություն

Pot 10 kΩ կարգավորելի ռեզիստոր:

DIY Geiger Counter Kit

Jumper լարերը

Մարտկոցի միակցիչ կամ զրահ

Օսցիլոսկոպ

Նուրբ քթի տափակաբերան աքցան

Փոքր ստանդարտ պտուտակահան

Քայլ 2. Հավաքեք ձեր Geiger հաշվիչը

Հավաքեք ձեր Geiger հաշվիչը
Հավաքեք ձեր Geiger հաշվիչը

Ձեր Geiger խողովակի ցանկացած վնաս; և ձեր Geiger հաշվիչը չի աշխատի, այնպես որ օգտագործեք պաշտպանիչ ակրիլային ծածկը ՝ ձեր Geiger խողովակի վնասը կանխելու համար:

Այս հրահանգը վերաբերում է նրան, թե ինչպես ես նույն Geiger- ի հաշվիչը վերանորոգեցի կոտրված Geiger խողովակով և տեղադրեցի պաշտպանիչ ակրիլային ծածկը `ապագայում կոտրվածքները կանխելու համար:

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

Քայլ 3. Գեյգերի հաշվիչի էլեկտրական փորձարկում

Էլեկտրական փորձարկում Գեյգերի հաշվիչը
Էլեկտրական փորձարկում Գեյգերի հաշվիչը
Էլեկտրական փորձարկում Գեյգերի հաշվիչը
Էլեկտրական փորձարկում Գեյգերի հաշվիչը
Էլեկտրական փորձարկում Գեյգերի հաշվիչը
Էլեկտրական փորձարկում Գեյգերի հաշվիչը

Սկզբում օգտագործեք էլեկտրամատակարարման ճիշտ լարումը. USB լարը 5 վոլտ DC է մատակարարում անմիջապես ձեր համակարգչից, սակայն 3 AA մարտկոցի կրիչը նախատեսված է 1,5 վոլտ ալկալային մարտկոցների համար, որոնք կազմում են ընդհանուր լարման 4,5 վոլտ: Եթե օգտագործում եք 1,2 վոլտ վերալիցքավորվող NI-Cd կամ NI-MH մարտկոցներ, ապա ձեզ հարկավոր կլինի 4 AA մարտկոցի կրիչ ՝ 4.8 վոլտ ընդհանուր լարման համար: Եթե դուք օգտագործում եք 4,5 վոլտից պակաս, Geiger հաշվիչը կարող է չգործել այնպես, ինչպես պետք է:

Գեյգերի հաշվիչների ելքի վրա շատ քիչ միացում կա. այնքան ժամանակ, քանի դեռ բարձրախոսը թրթռացող ձայն է արձակում, և LED- ը թարթում է, դուք պետք է ազդանշան ստանաք VIN պինակի վրա:

Համոզված լինել ելքային ազդանշանում; մի տատանում միացրեք տատանումին `օքսիլոսկոպի զոնդի դրական կողմը VIN- ին միացնելով, իսկ տատանումների բացիկի կողմը` գետնին:

Գեյգերի հաշվիչը գործարկելու համար ֆոնային ճառագայթման փոխարեն սպասելու փոխարեն ես ծխի դետեկտորների իոնային խցիկից օգտագործեցի ամերիկիում -241 ՝ Գեյգերի հաշվիչների ռեակցիաները բարձրացնելու համար: Գեյգերի հաշվիչի ելքը սկսվում էր +3 վոլտից և իջնում էր մինչև 0 վոլտի ամեն անգամ, երբ Գայգերի խողովակն արձագանքում էր ալֆա մասնիկներին և մի պահ անց վերադառնում +3 վոլտ: Սա այն ազդանշանն է, որը դուք ձայնագրելու եք Arduino- ի հետ:

Քայլ 4: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Գեյգերի հաշվիչը Arduino- ին և ձեր համակարգչին միացնելու երկու եղանակ կա:

Arduino- ի GND- ը միացրեք GIGER- ի հաշվիչի GND- ին:

Arduino- ի 5V- ը միացրեք Geiger հաշվիչի 5V- ին:

Գեյգերի հաշվիչի VIN- ը միացրեք Arduino- ի D2- ին:

Գեյգերի հաշվիչին միացված անկախ հզորությամբ:

Arduino- ի GND- ը միացրեք GIGER- ի հաշվիչի GND- ին:

Գեյգերի հաշվիչի VIN- ը միացրեք Arduino- ի D2- ին:

Միացրեք Arduino- ն ձեր համակարգչին:

Քայլ 5: Կոդ

Կոդ
Կոդ
Կոդ
Կոդ
Կոդ
Կոդ

Բացեք Arduino IDE- ն և բեռնեք ծածկագիրը:

// Այս Էսքիզը հաշվում է րոպեում զարկերակների քանակը:

// Arduino- ի GND- ը միացրեք GIGER- ի հաշվիչի GND- ին:

// Arduino- ի 5V- ը միացրեք Geiger հաշվիչի 5V- ին:

// Գեյգերի հաշվիչի VIN- ը միացրեք Arduino- ի D2- ին:

անստորագիր երկար հաշվարկներ; // փոփոխական GM Tube- ի իրադարձությունների համար

անստորագիր երկար նախորդ Միլիս; // փոփոխական ժամանակի չափման համար

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

հաշվում է ++;

}

#սահմանել LOG_PERIOD 60000 // հաշվման տոկոսադրույքը

void setup () {// setup

հաշվում = 0;

Serial.begin (9600);

pinMode (2, Մուտք);

attachInterrupt (digitalPinToInterrupt (2), իմպուլս, FALLING); // սահմանել արտաքին ընդհատումներ

Serial.println («Սկսել հաշվիչ»);

}

void loop () {// հիմնական ցիկլը

անստորագիր երկար հոսանք Millis = millis ();

եթե (ընթացիկ Միլիս - նախորդ Միլիս> LOG_PERIOD) {

նախորդ Միլիս = ընթացիկ Միլիս;

Serial.println (հաշվում է);

հաշվում = 0;

}

}

Գործիքներում ընտրեք ձեր օգտագործած Arduino- ն կամ այլ տախտակ:

Գործիքներում ընտրեք նավահանգիստը և ընկ

Վերբեռնեք ծածկագիրը:

Երբ ծածկագիրը վերբեռնվի Գործիքներ, ընտրեք Սերիայի մոնիտոր և դիտեք, թե ինչպես է աշխատում Գեյգերի հաշվիչը:

Փնտրեք թերություններ: Այս ծածկագրի միակ բանը այն է, որ դա մի փոքր հոգնեցուցիչ է, յուրաքանչյուր հաշվարկի համար պետք է սպասել 1 րոպե:

Քայլ 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

Սա ծածկագրում հայտնաբերված առաջին խափանումներից մեկն է. հետևեք դրան ձեր ծածկագրում ՝ «Serial.println (cpm);» և «Serial.print (cpm);».

Serial.println (cpm); յուրաքանչյուր տպում տպելու է իր տողում:

Serial.print (cpm); նման կլինի մեկ մեծ համարի, որը տպում է յուրաքանչյուր համարը նույն տողում, ինչը անհնար է դարձնում ասել, թե որն է հաշվարկը:

Քայլ 7: J305 Ֆոնային ճառագայթման չափում

J305 Ֆոնային ճառագայթման չափում
J305 Ֆոնային ճառագայթման չափում
J305 Ֆոնային ճառագայթման չափում
J305 Ֆոնային ճառագայթման չափում

Նախ `հետին ճառագայթման չափումն է` բնական ճառագայթումը, որն արդեն գոյություն ունի բնականաբար: Թվարկված թիվը CPM- ն է (հաշվել րոպեում), որն ամեն րոպե կազմում է չափված ռադիոակտիվ մասնիկներ:

J305 ֆոնի միջին հաշվարկը կազմել է 15.6 CPM:

Քայլ 8. J305 Smխի տվիչ ճառագայթման չափում

J305 Smխի սենսորային ճառագայթման չափում
J305 Smխի սենսորային ճառագայթման չափում
J305 Smխի սենսորային ճառագայթման չափում
J305 Smխի սենսորային ճառագայթման չափում

Հազվագյուտ դեպք չէ, երբ Գայգերի հաշվիչը մի քանի անգամ տալիս է ձեզ նույն հաշվարկը, այնպես որ այն ճշտեք ճառագայթման աղբյուրով: Ես օգտագործեցի Americium- ի ճառագայթման չափումը `ծխի դետեկտորի իոնային խցիկ: Smokeխի տվիչը օգտագործում է Americium- ը որպես ալֆա մասնիկների աղբյուր, որոնք իոնացնում են ծխի մասնիկները օդում: Ես հեռացրեցի տվիչի մետաղյա կափարիչը, որպեսզի ալֆա և բետա մասնիկները գամմա մասնիկների հետ միասին կարողանան հասնել Գեյգերի խողովակին:

Եթե ամեն ինչ կարգին է, հաշիվները պետք է փոխվեն:

Americium-241 ծխի դետեկտորների իոնային խցիկի միջին հաշվարկը կազմել է 519 CPM:

Քայլ 9: SBM-20

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

Այս Arduino էսքիզը փոփոխված տարբերակ է ՝ գրված Ալեքս Բոգուսլավսկու կողմից:

Այս Էսքիզը 15 վայրկյանում հաշվում է իմպուլսների քանակը և այն դարձնում է հաշված րոպեների ՝ դարձնելով այն ավելի քիչ հոգնեցուցիչ:

Կոդ ես ավելացրել եմ «Serial.println (« Սկսել հաշվիչ »);»:

Կոդը փոխեցի; «Serial.print (cpm);» դեպի «Serial.println (cpm);».

«#Սահմանել LOG_PERIOD 15000»; հաշման ժամանակը սահմանում է 15 վայրկյան, ես այն փոխեցի «#սահմանել LOG_PERIOD 5000» կամ 5 վայրկյան: Միջինում ես ոչ մի նշանակալի տարբերություն չեմ գտել 1 րոպե կամ 15 վայրկյան և 5 վայրկյան հաշվելու միջև:

#ներառում

#սահմանել LOG_PERIOD 15000 // Անտառահատման ժամանակահատվածը միլիվայրկյաններով, առաջարկվող արժեքը `15000-60000:

#սահմանել MAX_PERIOD 60000 // Անտառահատումների առավելագույն ժամկետ ՝ առանց այս ուրվագիծը փոփոխելու

անստորագիր երկար հաշվարկներ; // փոփոխական GM Tube- ի իրադարձությունների համար

անստորագիր երկար cpm; // փոփոխական CPM- ի համար

անստորագիր int բազմապատկիչ; // փոփոխական այս ուրվագծում CPM հաշվարկման համար

անստորագիր երկար նախորդ Միլիս; // փոփոխական ժամանակի չափման համար

void tube_impulse () {// ենթածրագր Geiger Kit- ից իրադարձությունները ֆիքսելու համար

հաշվում է ++;

}

void setup () {// setup subprocedure

հաշվում = 0;

cpm = 0;

բազմապատկիչ = MAX_PERIOD / LOG_PERIOD; // բազմապատկիչ հաշվարկելը, կախված է ձեր տեղեկամատյանի ժամանակաշրջանից

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // սահմանել արտաքին ընդհատումներ

Serial.println («Սկսել հաշվիչ»); // ավելացրած կոդը

}

void loop () {// հիմնական ցիկլը

անստորագիր երկար հոսանք Millis = millis ();

եթե (ընթացիկ Միլիս - նախորդ Միլիս> LOG_PERIOD) {

նախորդ Միլիս = ընթացիկ Միլիս;

cpm = հաշվում * բազմապատկիչ;

Serial.println (cpm); // ծածկագիրը փոխեցի

հաշվում = 0;

}

}

SBM-20 ֆոնի միջին հաշվարկը կազմել է 23.4 CPM:

Քայլ 10. Geiger հաշվիչի միացում LCD- ով

Գեյգերի հաշվիչի միացում LCD- ով
Գեյգերի հաշվիչի միացում LCD- ով

LCD միացում.

LCD K կապը GND- ին

LCD Պին մինչև 220 Ω դիմադրության Vcc

LCD D7 փին դեպի թվային կապ 3

LCD D6 կապը թվային կապին 5

LCD D5 փին դեպի թվային կապ 6

LCD D4 կապը թվային կապին 7

LCD Միացնել կապը թվային կապին 8

LCD R/W քորոցը գետնին

LCD RS քորոց թվային կապում 9

LCD VO կապում `10 կՕմ կաթսա կարգավորելու համար

LCD Vcc կապը դեպի Vcc

LCD Vdd կապում GND- ին

Pot 10 kΩ կարգավորելի ռեզիստոր:

Vcc, Vo, Vdd

Գայգեր Counter

VIN թվային կապին 2

5 Վ -ից +5 Վ

GND գետնին

Քայլ 11: Geiger Counter LCD- ով

Geiger հաշվիչ LCD- ով
Geiger հաշվիչ LCD- ով
Geiger հաշվիչ LCD- ով
Geiger հաշվիչ LCD- ով
Geiger հաշվիչ LCD- ով
Geiger հաշվիչ LCD- ով

// ներառել գրադարանի ծածկագիրը.

#ներառում

#ներառում

#սահմանել LOG_PERIOD 15000 // Անտառահատման ժամանակահատվածը միլիվայրկյաններով, առաջարկվող արժեքը `15000-60000:

#սահմանել MAX_PERIOD 60000 // Անտառահատումների առավելագույն ժամկետ ՝ առանց այս ուրվագիծը փոփոխելու

#սահմանեք 00ԱՄԱՆԱԿԸ 60000.0 // (60 վրկ) մեկ րոպեի չափման ժամանակահատված

անկայուն անստորագիր երկար CNT; // փոփոխական ՝ դոզիմետրից ընդհատումները հաշվելու համար

անստորագիր երկար հաշվարկներ; // փոփոխական GM Tube- ի իրադարձությունների համար

անստորագիր երկար cpm; // փոփոխական CPM- ի համար

անստորագիր int բազմապատկիչ; // փոփոխական այս ուրվագծում CPM հաշվարկման համար

անստորագիր երկար նախորդ Միլիս; // փոփոխական ժամանակի չափման համար

անստորագիր երկարատև ժամանակաշրջան; // փոփոխական ժամանակի չափման համար

անստորագիր երկար CPM; // փոփոխական CPM- ի չափման համար

// գրադարան նախաստորագրել ինտերֆեյսի կապերի համարներով

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

void setup () {// setup

lcd. սկսել (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print («RH Electronics»);

lcd.setCursor (0, 1);

lcd.print («Գայգերի հաշվիչ»);

ուշացում (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Իրադարձություն 2 -րդ կապում

}

դատարկ շրջան () {

lcd.setCursor (0, 0); // տեքստ և CNT տպել LCD- ում

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

եթե (millis ()> = dispPeriod + PERIOD) {// Եթե մեկ րոպեն ավարտվել է

cleanDisplay (); // Մաքրել LCD- ը

// Ինչ -որ բան արեք CNT- ի կուտակված իրադարձությունների վերաբերյալ….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Displayուցադրել CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Ստացեք իրադարձություն սարքից

CNT ++;

}

void cleanDisplay () {// Մաքրել LCD ռեժիմը

lcd. հստակ ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Քայլ 12: Ֆայլեր

Ներբեռնեք և տեղադրեք այս ֆայլերը ձեր Arduino- ում:

Տեղադրեք յուրաքանչյուր.ino ֆայլը նույն անունով թղթապանակում:

Խորհուրդ ենք տալիս: