Სარჩევი:
- ნაბიჯი 1: ინსტრუმენტები და ნაწილები
- ნაბიჯი 2: შეიკრიბეთ თქვენი გეიგერის მრიცხველი
- ნაბიჯი 3: გეიგერის მრიცხველის ელექტრონული ტესტირება
- ნაბიჯი 4: გაყვანილობა
- ნაბიჯი 5: კოდი
- ნაბიჯი 6: Serial.println Vs Serial.print
- ნაბიჯი 7: J305 რადიაციის ფონის გაზომვა
- ნაბიჯი 8: J305 კვამლის სენსორის გამოსხივების გაზომვა
- ნაბიჯი 9: SBM-20
- ნაბიჯი 10: გეიგერის მრიცხველის გაყვანილობა LCD– ით
- ნაბიჯი 11: გეიგერის მრიცხველი LCD– ით
- ნაბიჯი 12: ფაილები
ვიდეო: Arduino DIY Geiger მთვლელი: 12 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ასე რომ თქვენ შეუკვეთეთ წვრილმანი გეიგერის მრიცხველი და გსურთ დააკავშიროთ იგი თქვენს არდუინოსთან. თქვენ მიდიხართ ონლაინ რეჟიმში და ცდილობთ გაიმეოროთ, თუ როგორ დაუკავშირეს სხვებმა თავიანთი გეიგერის მრიცხველი არდუინოს, მხოლოდ იმის აღმოსაჩენად, რომ რაღაც არასწორია. მიუხედავად იმისა, რომ გეიგერის მრიცხველი მუშაობს, არაფერი მუშაობს ისე, როგორც ეს აღწერილია წვრილმანებში, რომელსაც თქვენ მიჰყვებით, როდესაც გეიგერის მრიცხველს თქვენს არდუინოს უკავშირებთ.
ამ ინსტრუქციულ სტატიაში მე განვიხილავ, თუ როგორ უნდა აღმოიფხვრას ზოგიერთი ეს ხარვეზი.
დაიმახსოვრე; შეიკრიბეთ და დააკოპირეთ 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 (cpm);" და "Serial.print (cpm);".
Serial.println (cpm); დაიბეჭდება თითოეული რაოდენობა საკუთარ ხაზზე.
სერიული. ბეჭდვა (cpm); გამოიყურება ერთი დიდი რიცხვი, რომელიც ბეჭდავს თითოეულ რიცხვს იმავე სტრიქონზე, რაც შეუძლებელს გახდის გითხრათ რა არის ეს რიცხვი.
ნაბიჯი 7: J305 რადიაციის ფონის გაზომვა
პირველი არის ფონური რადიაციის გაზომვა, ბუნებრივი რადიაცია, რომელიც უკვე არსებობს ბუნებრივად. ჩამოთვლილი რიცხვი არის CPM (რაოდენობა წუთში), რომელიც არის ყოველწლიურად გაზომილი რადიოაქტიური ნაწილაკების ჯამი.
J305 ფონური საშუალო რაოდენობა იყო 15.6 CPM.
ნაბიჯი 8: J305 კვამლის სენსორის გამოსხივების გაზომვა
არ არის იშვიათი შემთხვევა, როდესაც გეიგერის მრიცხველი მოგცემთ ერთსა და იმავე რაოდენობას, ასე რომ შეამოწმეთ იგი რადიაციის წყაროსთან. მე ვიყენებ რადიაციის გაზომვას ამერიკიდან იონის პალატა კვამლის დეტექტორისგან. კვამლის სენსორი იყენებს Americium– ს, როგორც ალფა ნაწილაკების წყაროს, რომლებიც ჰაერში კვამლის ნაწილაკებს იონიზებენ. მე ამოვიღე სენსორზე ლითონის ქუდი, რათა ალფა და ბეტა ნაწილაკებმა გამა ნაწილაკებთან ერთად მიაღწიონ გეიგერის მილს.
თუ ყველაფერი კარგად არის, რიცხვები უნდა შეიცვალოს.
Americium-241 კვამლის დეტექტორებიდან იონური პალატის საშუალო რაოდენობა იყო 519 CPM.
ნაბიჯი 9: 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 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– ით
// შეიტანეთ ბიბლიოთეკის კოდი:
#ჩართეთ
#ჩართეთ
#განსაზღვრეთ 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 ფაილი ამავე სახელწოდების საქაღალდეში.
გირჩევთ:
მთავარი ასისტენტი გეიგერის მთვლელი ინტეგრაცია: 8 ნაბიჯი
მთავარი ასისტენტი გეიგერის მრიცხველის ინტეგრაცია: ამ გაკვეთილში მე ვაჩვენებ, თუ როგორ უნდა დაამატოთ პერსონალური სენსორები HASS- ში (სახლის ასისტენტი) უფრო კონკრეტულად გეიგერის მრიცხველი, მაგრამ პროცესი მსგავსია სხვა სენსორებისთვისაც. ჩვენ გამოვიყენებთ NodeMCU დაფას, არდუინოზე დაფუძნებულ გეიგერს
ელექტრონული კამათელი 555 ტაიმერი 4017 მთვლელი: 5 ნაბიჯი
ელექტრონული კამათელი 555timer 4017 მთვლელი: ეს არის მარტივი ელექტრონული კამათელი ჩემი მეცხრე წლის საინჟინრო კლასისთვის. სრულყოფილი შედუღების პროექტი
როგორ გააკეთოთ მონეტის მთვლელი: 3 ნაბიჯი
როგორ მოვამზადოთ მონეტების მრიცხველი: ეს ინსტრუქცია აღწერს თუ როგორ უნდა შექმნათ ყულაბა ბანკის მონეტების მრიცხველი GreenPAK with– ით. ყულაბას ეს დახლი გამოიყენებს სამ ძირითად კომპონენტს: GreenPAK SLG46531V: GreenPAK ემსახურება როგორც თარჯიმანი სენსორებსა და დისპლეებს შორის
Makey Makey Burpee მთვლელი: 3 ნაბიჯი
Makey Makey Burpee Counter: აქ არის სახალისო გზა, რომ თვალყური ადევნოთ თქვენს ბურპებს ვარჯიშის დროს: გამოიყენეთ მაკია მაკიაჟი და კილიტაში გახვეული არაქისის კარაქის ჭიქები. Scratch პროგრამა ითვლის თქვენთვის და გიბიძგებთ წინსვლისას
წვრილმანი Arduino Geiger მთვლელი: 6 ნაბიჯი (სურათებით)
წვრილმანი Arduino Geiger Counter: გამარჯობა ყველას! Როგორ ხარ? ეს არის პროექტი How-ToDo ჩემი სახელია კონსტანტინე და დღეს მინდა გაჩვენოთ როგორ გავაკეთე ეს გეიგერის მრიცხველი. ამ მოწყობილობის შექმნა დავიწყე თითქმის გასული წლის დასაწყისიდან. მას შემდეგ მან გაიარა 3 კომპ