Mündəricat:
- Addım 1: Alətlər və hissələr
- Addım 2: Geiger sayğacınızı yığın
- Addım 3: Geiger sayğacını elektriklə sınayın
- Addım 4: Kabel çəkmə
- Addım 5: Kod
- Addım 6: Serial.println Vs Serial.print
- Addım 7: J305 Arxa Radiasiya Ölçümü
- Adım 8: J305 Tüstü Sensor Radiasiyasının Ölçülməsi
- Addım 9: SBM-20
- Addım 10: Geiger sayğacını LCD ilə bağlayın
- Addım 11: LCD ilə Geiger sayğacı
- Addım 12: Fayllar
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Beləliklə, bir DIY Geiger sayğacı sifariş etdiniz və onu Arduino -ya bağlamaq istəyirsiniz. Onlayn gedirsiniz və başqalarının Geiger sayğacını Arduino ilə necə bağladığını yalnız bir şeyin səhv olduğunu tapmaq üçün təkrarlamağa çalışırsınız. Geiger sayğacınız heç bir iş görməsə də, Geiger sayğacınızı Arduino -ya bağladığınız zaman izlədiyiniz DIY -də göstərildiyi kimi heç nə işləmir.
Bu Təlimat kitabında bu qüsurların bəzilərinin necə aradan qaldırılacağını izah edəcəyəm.
Yadda saxla; Arduino -nu bir addım -addım yığın və kodlayın, əgər düz bir layihəyə gedirsinizsə və buraxılmış bir tel və ya kod xətti varsa, problemi tapmaq sizi sonsuza qədər apara bilər.
Addım 1: Alətlər və hissələr
Prototip qutusu Ferrero Rocher konfet qutusundan istifadə etdim.
Kiçik çörək taxtası
16x2 LCD
Arduino lövhəsi UNO və ya Nano
220 Ω rezistor
Pot 10 kΩ tənzimlənən rezistor.
DIY Geiger sayğac dəsti
Jumper telləri
Batareya konnektoru və ya qoşqu
Osiloskop
İncə Burun Kəlbətinləri
Kiçik Standart Tornavida
Addım 2: Geiger sayğacınızı yığın
Geiger Tüpünüzə hər hansı bir ziyan; və Geiger sayğacınız işləməyəcək, buna görə Geiger borunuza zərər verməmək üçün qoruyucu akril örtükdən istifadə edin.
Bu Təlimat, eyni Geiger sayğacını qırıq bir Geiger borusu ilə necə təmir etdiyimi və gələcəkdə qırılmaması üçün qoruyucu akril örtüyü necə qurduğumdur.
www.instructables.com/id/Repairing-a-DIY-G…
Addım 3: Geiger sayğacını elektriklə sınayın
Əvvəlcə enerji təchizatı üçün doğru gərginliyi istifadə edin; USB kabeli kompüterinizdən 5 volt DC təmin edir, lakin 3 AA batareya tutacağı ümumi voltajı 4,5 volt olan 1,5 voltluq qələvi batareyalar üçündür. 1,2 voltluq təkrar doldurulan NI-Cd və ya NI-MH batareyalarından istifadə edirsinizsə, ümumi gərginliyi 4,8 volt olan 4 AA batareya tutucusuna ehtiyacınız olacaq. 4.5 voltdan az istifadə edirsinizsə, Geiger sayğacı lazım olduğu kimi işləməyə bilər.
Geiger sayğaclarının çıxışında çox az dövrə var; natiq bir işarə səsi çıxardıqca və LED yanıb -sönənə qədər VIN pinində bir siqnal almalısınız.
Çıxış siqnalından əmin olmaq; osiloskop probunun müsbət tərəfini VIN -ə və osiloskop probunun mənfi tərəfini yerə bağlayaraq bir osiloskopu çıxışa qoşun.
Geiger sayğacını işə salmaq üçün yalnız arxa radiasiyanı gözləməkdənsə, Geiger sayğaclarının reaksiyasını artırmaq üçün tüstü detektorlarının ion kamerasından americium-241 istifadə etdim. Geiger sayğacının çıxışı +3 voltda başladı və Geiger borusu alfa hissəciklərinə hər dəfə reaksiya verdikdə və bir an sonra +3 volta dönəndə 0 volta düşdü. Bu, Arduino ilə yazacağınız siqnaldır.
Addım 4: Kabel çəkmə
Geiger sayğacını Arduino və kompüterinizə qoşmağın iki yolu var.
Arduino üzərindəki GND -ni Geiger sayğacındakı GND -yə bağlayın.
Arduino üzərindəki 5V -u Geiger sayğacındakı 5V -a qoşun.
Geiger sayğacındakı VIN nömrəsini Arduino üzərindəki D2 -yə qoşun.
Geiger sayğacına qoşulmuş müstəqil güclə.
Arduino üzərindəki GND -ni Geiger sayğacındakı GND -yə bağlayın.
Geiger sayğacındakı VIN nömrəsini Arduino üzərindəki D2 -yə qoşun.
Arduino'yu kompüterinizə qoşun.
Addım 5: Kod
Arduino IDE -ni açın və kodu yükləyin.
// Bu eskiz dəqiqədə nəbz sayını sayır.
// Arduino üzərindəki GND -ni Geiger sayğacındakı GND -yə bağlayın.
// Arduino üzərindəki 5V -u Geiger sayğacındakı 5V -ə qoşun.
// Geiger sayğacındakı VIN -i Arduino -dakı D2 -yə qoşun.
imzasız uzun hesablamalar; // GM Tube hadisələri üçün dəyişən
imzasız uzun əvvəlki Milis; // vaxtı ölçmək üçün dəyişən
boş impuls () {// dipanggil setiap ada sinyal FALLING di pin 2
sayılır ++;
}
#LOG_PERIOD 60000 // sayını təyin edin
void setup () {// quraşdırma
say = 0;
Serial.begin (9600);
pinMode (2, GİRİŞ);
attachInterrupt (digitalPinToInterrupt (2), impuls, FALLING); // xarici fasilələri təyin edin
Serial.println ("Başlanğıc sayğacı");
}
void loop () {// əsas dövrü
işarəsiz uzun cariMillis = millis ();
əgər (currentMillis - əvvəlkiMillis> LOG_PERIOD) {
əvvəlkiMillis = cariMillis;
Serial.println (sayılır);
say = 0;
}
}
Alətlərdə Arduino və ya istifadə etdiyiniz digər lövhəni seçin.
Alətlərdə Port və Com seçin
Kodu yükləyin.
Kod Alətlərə yükləndikdən sonra Serial Monitor seçin və Geiger sayğacınızın işini izləyin.
Qüsurları axtarın. Bu kodla bağlı yeganə şey bir az yorucu olmasıdır ki, hər hesab üçün 1 dəqiqə gözləməlisiniz.
Addım 6: Serial.println Vs Serial.print
Bu kodda tapdığım ilk səhvlərdən biridir; buna görə kodunuzda "Serial.println (cpm);" və "Serial.print (cpm);".
Serial.println (cpm); hər sayını öz xəttində çap edəcək.
Serial. çap (cpm); hər bir sayını eyni sətirdə çap edən böyük bir rəqəmə bənzəyəcək ki, bu sayının nə olduğunu söyləməyi mümkün etmir.
Addım 7: J305 Arxa Radiasiya Ölçümü
Birincisi, artıq təbii olaraq mövcud olan təbii radiasiya olan fon radiasiyasının ölçülməsidir. Listelenen sayı, hər dəqiqədə ölçülən radioaktiv hissəciklərin cəmi olan CPM'dir (dəqiqədə say).
J305 fonunun orta sayı 15.6 CPM idi.
Adım 8: J305 Tüstü Sensor Radiasiyasının Ölçülməsi
Bir Geiger sayğacının eyni sayını dəfələrlə verməsi qeyri -adi deyil, buna görə bir radiasiya mənbəyi ilə yoxlayın. Americiumun tüstü detektorundan bir ion kamerasından alınan radiasiya ölçməsindən istifadə etdim. Tüstü sensoru, havada tüstü hissəciklərini ionlaşdıran alfa hissəciklərinin mənbəyi olaraq Americiumdan istifadə edir. Alfa və beta hissəciklərinin qamma hissəcikləri ilə birlikdə Geiger borusuna keçə bilməsi üçün sensordakı metal qapağı çıxartdım.
Hər şey qaydasındadırsa, say dəyişməlidir.
Bir tüstü detektoru ionici kamerasından Americium-241 ortalama sayı 519 CPM idi.
Addım 9: SBM-20
Bu Arduino eskizi, Alex Boguslavsky tərəfindən yazılmış dəyişdirilmiş bir versiyadır.
Bu eskiz 15 saniyədə nəbz sayını hesablayır və daha az yorucu hala gətirərək dəqiqədə sayına çevirir.
"Serial.println (" Başlanğıc sayğacı ") əlavə etdiyim kod;”.
Dəyişdirdiyim kod; "Serial.print (cpm);" "Serial.println (cpm);".
"#LOG_PERIOD 15000 təyin edin"; sayım müddətini 15 saniyəyə təyin edir, onu "#define LOG_PERIOD 5000" və ya 5 saniyə olaraq dəyişdim. 1 dəqiqə və ya 15 saniyə ilə 5 saniyə arasında saymaqla ortalamada nəzərə çarpan bir fərq tapmadım.
#daxil edin
#define LOG_PERIOD 15000 // Giriş müddəti milisaniyədə, tövsiyə olunan dəyər 15000-60000.
#dexine MAX_PERIOD 60000 // Bu eskizi dəyişdirmədən maksimum qeyd müddəti
imzasız uzun hesablamalar; // GM Tube hadisələri üçün dəyişən
imzasız uzun cpm; // CPM üçün dəyişən
işarəsiz int çarpanı; // bu eskizdə CPM hesablanması üçün dəyişən
imzasız uzun əvvəlki Milis; // zamanın ölçülməsi üçün dəyişən
void tube_impulse () {// Geiger Kit -dən hadisələr çəkmək üçün alt prosedur
sayılır ++;
}
void setup () {// quraşdırma alt proseduru
say = 0;
cpm = 0;
çarpan = MAX_PERIOD / LOG_PERIOD; // hesablama çarpan, giriş dövründən asılıdır
Serial.begin (9600);
attachInterrupt (0, tube_impulse, FALLING); // xarici fasilələri təyin edin
Serial.println ("Başlanğıc sayğacı"); // əlavə etdiyim kod
}
void loop () {// əsas dövrü
işarəsiz uzun cariMillis = millis ();
əgər (currentMillis - əvvəlkiMillis> LOG_PERIOD) {
əvvəlkiMillis = cariMillis;
cpm = sayar * çarpan;
Serial.println (cpm); // dəyişdirdiyim kod
say = 0;
}
}
SBM-20 fonunun orta sayı 23.4 CPM idi.
Addım 10: Geiger sayğacını LCD ilə bağlayın
LCD bağlantısı:
LCD K pin GND
LCD Vcc üçün 220 Ω müqavimət üçün bir pin
LCD D7 pinindən rəqəmsal pinə 3
LCD D6 pinindən rəqəmsal pin 5 -ə
LCD D5 pinindən rəqəmsal pinə 6
LCD D4 pinindən rəqəmsal pinə 7
LCD Pini rəqəmsal pin 8 -ə aktiv edin
LCD R/W pimi yerə
LCD RS pin rəqəmsal pin 9
10 kΩ qazan tənzimləmək üçün LCD VO pin
LCD Vcc pinini Vcc -ə bağlayın
GND üçün LCD Vdd pin
Pot 10 kΩ tənzimlənən rezistor.
Vcc, Vo, Vdd
Geiger sayğacı
VIN -dən rəqəmsal pin 2 -ə
5 V -dən +5 V -a qədər
GND yerə
Addım 11: LCD ilə Geiger sayğacı
// kitabxana kodunu daxil edin:
#daxil edin
#daxil edin
#define LOG_PERIOD 15000 // Giriş müddəti milisaniyədə, tövsiyə olunan dəyər 15000-60000.
#dexine MAX_PERIOD 60000 // Bu eskizi dəyişdirmədən maksimum qeyd müddəti
#DÖVR 60000.0 // (60 saniyə) bir dəqiqəlik ölçmə müddətini təyin edin
uçucu olmayan uzun CNT; // dozimetrdən kəsilmələri saymaq üçün dəyişən
imzasız uzun hesablamalar; // GM Tube hadisələri üçün dəyişən
imzasız uzun cpm; // CPM üçün dəyişən
işarəsiz int çarpanı; // bu eskizdə CPM hesablanması üçün dəyişən
imzasız uzun əvvəlki Milis; // zamanın ölçülməsi üçün dəyişən
imzasız uzun müddət; // vaxtı ölçmək üçün dəyişən
imzasız uzun CPM; // CPM ölçmək üçün dəyişən
// kitabxananı interfeys sancaqlarının nömrələri ilə işə salın
LiquidCrystal lcd (9, 8, 7, 6, 5, 3);
void setup () {// quraşdırma
lcd.begin (16, 2);
CNT = 0;
CPM = 0;
dispPeriod = 0;
lcd.setCursor (0, 0);
lcd.print ("RH Electronics");
lcd.setCursor (0, 1);
lcd.print ("Geiger Counter");
gecikmə (2000);
cleanDisplay ();
attachInterrupt (0, GetEvent, FALLING); // 2 nömrəli hadisə
}
boşluq döngəsi () {
lcd.setCursor (0, 0); // LCD -də mətn və CNT çap edin
lcd.print ("CPM:");
lcd.setCursor (0, 1);
lcd.print ("CNT:");
lcd.setCursor (5, 1);
lcd.print (CNT);
if (millis ()> = dispPeriod + PERIOD) {// Bir dəqiqə bitibsə
cleanDisplay (); // Təmiz LCD
// Yığılmış CNT hadisələri haqqında bir şey edin ….
lcd.setCursor (5, 0);
CPM = CNT;
lcd çap (CPM); // CPM göstərin
CNT = 0;
dispPeriod = millis ();
}
}
void GetEvent () {// Hadisəni Cihazdan alın
CNT ++;
}
void cleanDisplay () {// LCD rejimini silin
lcd.clear ();
lcd.setCursor (0, 0);
lcd.setCursor (0, 0);
}
Addım 12: Fayllar
Bu faylları Arduino -ya yükləyin və quraşdırın.
Hər bir.ino faylını eyni adlı qovluğa yerləşdirin.