Სარჩევი:

Arduino DIY Geiger მთვლელი: 12 ნაბიჯი (სურათებით)
Arduino DIY Geiger მთვლელი: 12 ნაბიჯი (სურათებით)

ვიდეო: Arduino DIY Geiger მთვლელი: 12 ნაბიჯი (სურათებით)

ვიდეო: Arduino DIY Geiger მთვლელი: 12 ნაბიჯი (სურათებით)
ვიდეო: DIY arduino Geiger counter 2024, ნოემბერი
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

ასე რომ თქვენ შეუკვეთეთ წვრილმანი გეიგერის მრიცხველი და გსურთ დააკავშიროთ იგი თქვენს არდუინოსთან. თქვენ მიდიხართ ონლაინ რეჟიმში და ცდილობთ გაიმეოროთ, თუ როგორ დაუკავშირეს სხვებმა თავიანთი გეიგერის მრიცხველი არდუინოს, მხოლოდ იმის აღმოსაჩენად, რომ რაღაც არასწორია. მიუხედავად იმისა, რომ გეიგერის მრიცხველი მუშაობს, არაფერი მუშაობს ისე, როგორც ეს აღწერილია წვრილმანებში, რომელსაც თქვენ მიჰყვებით, როდესაც გეიგერის მრიცხველს თქვენს არდუინოს უკავშირებთ.

ამ ინსტრუქციულ სტატიაში მე განვიხილავ, თუ როგორ უნდა აღმოიფხვრას ზოგიერთი ეს ხარვეზი.

დაიმახსოვრე; შეიკრიბეთ და დააკოპირეთ Arduino ერთდროულად, თუ თქვენ მიდიხართ პირდაპირ დასრულებულ პროექტზე და არის გამოტოვებული მავთული ან კოდის ხაზი, რომელსაც სამუდამოდ დასჭირდება პრობლემის პოვნა.

ნაბიჯი 1: ინსტრუმენტები და ნაწილები

ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები

პროტოტიპის ყუთი მე გამოვიყენე Ferrero Rocher ტკბილეულის ყუთი.

მცირე ზომის დაფა

16x2 LCD

Arduino დაფაზე ეთერი UNO ან ნანო

220 Ω რეზისტორი

ქოთანი 10 kΩ რეგულირებადი რეზისტორი.

DIY Geiger Counter Kit

Jumper Wires

ბატარეის კონექტორი ან აღკაზმულობა

ოსცილოსკოპი

სახიფათო ცხვირის ფანქარი

მცირე სტანდარტული Screwdriver

ნაბიჯი 2: შეიკრიბეთ თქვენი გეიგერის მრიცხველი

შეიკრიბეთ თქვენი გეიგერის მრიცხველი
შეიკრიბეთ თქვენი გეიგერის მრიცხველი

თქვენი გეიგერის მილის ნებისმიერი დაზიანება; და თქვენი გეიგერის მრიცხველი არ იმუშავებს, ასე რომ გამოიყენეთ დამცავი აკრილის საფარი თქვენი გეიგერის მილის დაზიანების თავიდან ასაცილებლად.

ეს არის ინსტრუქცია იმის შესახებ, თუ როგორ შევაკეთე იგივე გეიგერის მრიცხველი გატეხილი გეიგერის მილით და დავაყენე დამცავი აკრილის საფარი, რათა მომავალში არ დავარღვიო.

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 ვოლტზე ნაკლებს, გეიგერის მრიცხველი შეიძლება არ მოიქცეს ისე, როგორც უნდა.

გეიგერის მრიცხველების გამოშვებაზე ძალიან მცირე წრეა; სანამ დინამიკი გამოსცემს ხმას და LED ანათებს, თქვენ უნდა მიიღოთ სიგნალი VIN პინზე.

დარწმუნებული უნდა იყოს გამომავალი სიგნალის შესახებ; შეაერთეთ ოსცილოსკოპი გამომავალთან oscilloscope probe- ის დადებითი მხარის VIN- თან და oscilloscope probe- ის უარყოფითი მხარე მიწასთან მიერთებით.

იმის ნაცვლად, რომ უბრალოდ დაველოდოთ რადიაციას გეიგერის მრიცხველის გამოსაყენებლად, მე გამოვიყენე ამერიკიუმ -241 კვამლის დეტექტორების იონური პალატიდან, რათა გაზარდოს გეიგერის მრიცხველების რეაქციები. გეიგერის მრიცხველის გამომუშავება დაიწყო +3 ვოლტიდან და 0 ვოლტამდე დაეცა ყოველ ჯერზე, როდესაც გეიგერის მილი რეაგირებდა ალფა ნაწილაკებზე და დაბრუნდა +3 ვოლტზე ცოტა ხნის შემდეგ. ეს არის სიგნალი, რომელსაც ჩაწერთ არდუინოსთან ერთად.

ნაბიჯი 4: გაყვანილობა

გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა

ორი გზით შეგიძლიათ დააკავშიროთ გეიგერის მრიცხველი თქვენ არდუინოსთან და თქვენს კომპიუტერთან.

დაუკავშირეთ GND არდუინოზე GND– ს გეიგერის მრიცხველზე.

დაუკავშირეთ 5V არდუინოზე 5V გეიგერის მრიცხველზე.

დააკავშირეთ VIN გეიგერის მრიცხველზე D2 არდუინოსთან.

დამოუკიდებელი დენით, რომელიც დაკავშირებულია გეიგერის მრიცხველთან.

დაუკავშირეთ GND არდუინოზე GND– ს გეიგერის მრიცხველზე.

დააკავშირეთ VIN გეიგერის მრიცხველზე D2 არდუინოსთან.

შეაერთეთ Arduino თქვენს კომპიუტერს.

ნაბიჯი 5: კოდი

კოდი
კოდი
კოდი
კოდი
კოდი
კოდი

გახსენით Arduino IDE და ჩატვირთეთ კოდი.

// ეს ესკიზი ითვლის იმპულსების რაოდენობას წუთში.

// შეუერთეთ GND არდუინოზე GND- ს გეიგერის მრიცხველზე.

// დაუკავშირეთ 5V არდუინოზე 5V- ს გეიგერის მრიცხველზე.

// დააკავშირეთ VIN გეიგერის მრიცხველზე D2 არდუინოსთან.

ხელმოუწერელი გრძელი რაოდენობა; // ცვლადი GM Tube მოვლენებისთვის

ხელმოუწერელი გრძელი წინამილისი; // ცვლადი დროის გასაზომად

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

ითვლის ++;

}

#განსაზღვრეთ LOG_PERIOD 60000 // დათვლის მაჩვენებელი

void setup () {// კონფიგურაცია

ითვლის = 0;

სერიული.დაწყება (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), იმპულსი, FALLING); // გარე შეფერხებების განსაზღვრა

Serial.println ("დაწყების მრიცხველი");

}

void loop () {// ძირითადი ციკლი

ხელმოუწერელი გრძელი მიმდინარემილის = მილილი ();

თუ (მიმდინარე მილილი - წინა მილილი> LOG_PERIOD) {

previousMillis = მიმდინარე მილი;

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); დაიბეჭდება თითოეული რაოდენობა საკუთარ ხაზზე.

სერიული. ბეჭდვა (cpm); გამოიყურება ერთი დიდი რიცხვი, რომელიც ბეჭდავს თითოეულ რიცხვს იმავე სტრიქონზე, რაც შეუძლებელს გახდის გითხრათ რა არის ეს რიცხვი.

ნაბიჯი 7: J305 რადიაციის ფონის გაზომვა

J305 რადიაციის ფონის გაზომვა
J305 რადიაციის ფონის გაზომვა
J305 რადიაციული ფონის გაზომვა
J305 რადიაციული ფონის გაზომვა

პირველი არის ფონური რადიაციის გაზომვა, ბუნებრივი რადიაცია, რომელიც უკვე არსებობს ბუნებრივად. ჩამოთვლილი რიცხვი არის CPM (რაოდენობა წუთში), რომელიც არის ყოველწლიურად გაზომილი რადიოაქტიური ნაწილაკების ჯამი.

J305 ფონური საშუალო რაოდენობა იყო 15.6 CPM.

ნაბიჯი 8: J305 კვამლის სენსორის გამოსხივების გაზომვა

J305 კვამლის სენსორის გამოსხივების გაზომვა
J305 კვამლის სენსორის გამოსხივების გაზომვა
J305 კვამლის სენსორის გამოსხივების გაზომვა
J305 კვამლის სენსორის გამოსხივების გაზომვა

არ არის იშვიათი შემთხვევა, როდესაც გეიგერის მრიცხველი მოგცემთ ერთსა და იმავე რაოდენობას, ასე რომ შეამოწმეთ იგი რადიაციის წყაროსთან. მე ვიყენებ რადიაციის გაზომვას ამერიკიდან იონის პალატა კვამლის დეტექტორისგან. კვამლის სენსორი იყენებს Americium– ს, როგორც ალფა ნაწილაკების წყაროს, რომლებიც ჰაერში კვამლის ნაწილაკებს იონიზებენ. მე ამოვიღე სენსორზე ლითონის ქუდი, რათა ალფა და ბეტა ნაწილაკებმა გამა ნაწილაკებთან ერთად მიაღწიონ გეიგერის მილს.

თუ ყველაფერი კარგად არის, რიცხვები უნდა შეიცვალოს.

Americium-241 კვამლის დეტექტორებიდან იონური პალატის საშუალო რაოდენობა იყო 519 CPM.

ნაბიჯი 9: SBM-20

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

ეს არდუინოს ესკიზი არის მოდიფიცირებული ვერსია, დაწერილი ალექს ბოგუსლავსკის მიერ.

ეს ესკიზი ითვლის იმპულსების რაოდენობას 15 წამში და გარდაქმნის მას წუთში, რაც მას ნაკლებად დამღლელს ხდის.

კოდი მე დავამატე "Serial.println (" დაწყების მრიცხველი ");".

კოდი შევცვალე; "სერიული. ბეჭდვა (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 () {// ქვეპროგრამა გეიგერ კიტიდან მოვლენების გადასაღებად

ითვლის ++;

}

void setup () {// setup subprocedure

ითვლის = 0;

cpm = 0;

გამრავლება = MAX_PERIOD / LOG_PERIOD; // მულტიპლიკატორის გაანგარიშება, დამოკიდებულია თქვენი ჟურნალის პერიოდზე

სერიული.დაწყება (9600);

attachIntruptrupt (0, tube_impulse, FALLING); // გარე შეფერხებების განსაზღვრა

Serial.println ("დაწყების მრიცხველი"); // კოდი მე დავამატე

}

void loop () {// ძირითადი ციკლი

ხელმოუწერელი გრძელი მიმდინარემილის = მილილი ();

თუ (მიმდინარე მილილი - წინა მილილი> LOG_PERIOD) {

previousMillis = მიმდინარე მილი;

cpm = ითვლის * მულტიპლიკატორი;

Serial.println (cpm); // კოდი შევცვალე

ითვლის = 0;

}

}

SBM-20 ფონის საშუალო რაოდენობა იყო 23.4 CPM.

ნაბიჯი 10: გეიგერის მრიცხველის გაყვანილობა LCD– ით

გეიგერის მრიცხველის გაყვანილობა LCD– ით
გეიგერის მრიცხველის გაყვანილობა LCD– ით

LCD კავშირი:

LCD K pin to GND

LCD პინი 220 V წინააღმდეგობის მქონე Vcc– მდე

LCD D7 პინი ციფრულ პინზე 3

LCD D6 პინი ციფრულ პინზე 5

LCD D5 პინი ციფრულ პინზე 6

LCD D4 პინი ციფრულ პინზე 7

LCD ჩართეთ პინი ციფრულ პინზე 8

LCD R/W პინი მიწასთან

LCD RS პინი ციფრულ პინზე 9

LCD VO pin 10 kΩ ქოთნის რეგულირებისთვის

LCD Vcc პინი Vcc– მდე

LCD Vdd პინი GND– ზე

ქოთანი 10 kΩ რეგულირებადი რეზისტორი.

Vcc, Vo, Vdd

გეიგერის მრიცხველი

VIN ციფრულ პინზე 2

5 V +5V

GND მიწაზე

ნაბიჯი 11: გეიგერის მრიცხველი LCD– ით

გეიგერის მრიცხველი LCD– ით
გეიგერის მრიცხველი LCD– ით
გეიგერის მრიცხველი LCD– ით
გეიგერის მრიცხველი LCD– ით
გეიგერის მრიცხველი LCD– ით
გეიგერის მრიცხველი LCD– ით

// შეიტანეთ ბიბლიოთეკის კოდი:

#ჩართეთ

#ჩართეთ

#განსაზღვრეთ LOG_PERIOD 15000 // აღრიცხვის პერიოდი მილიწამებში, რეკომენდებული ღირებულება 15000-60000.

#განსაზღვრეთ MAX_PERIOD 60000 // მაქსიმალური შესვლის პერიოდი ამ ესკიზის შეცვლის გარეშე

#განსაზღვრეთ პერიოდი 60000.0 // (60 წმ) ერთი წუთის გაზომვის პერიოდი

არასტაბილური ხელმოუწერელი გრძელი CNT; // ცვლადი დოზიმეტრიდან შეფერხებების დასათვლელად

ხელმოუწერელი გრძელი რაოდენობა; // ცვლადი GM Tube მოვლენებისთვის

ხელმოუწერელი გრძელი cpm; // ცვლადი CPM– სთვის

ხელმოუწერელი int მულტიპლიკატორი; // ცვლადი CPM- ის გამოსათვლელად ამ ესკიზში

ხელმოუწერელი გრძელი წინამილისი; // ცვლადი დროის გაზომვისთვის

ხელმოუწერელი გრძელი პერიოდი; // ცვლადი დროის გასაზომად

ხელმოუწერელი გრძელი CPM; // ცვლადი CPM გაზომვისთვის

// ბიბლიოთეკის ინიციალიზაცია ინტერფეისის ქინძისთავების ნომრებით

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

void 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.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// თუ ერთი წუთი დასრულდა

cleanDisplay (); // LCD– ის გასუფთავება

// გააკეთეთ რამე დაგროვილი CNT მოვლენების შესახებ….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // ჩვენება CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// მიიღეთ ღონისძიება მოწყობილობიდან

CNT ++;

}

void cleanDisplay () {// LCD რუტინის გასუფთავება

lcd. წმინდა ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

ნაბიჯი 12: ფაილები

ჩამოტვირთეთ და დააინსტალირეთ ეს ფაილები თქვენს Arduino– ში.

მოათავსეთ თითოეული.ino ფაილი ამავე სახელწოდების საქაღალდეში.

გირჩევთ: