Mündəricat:

Arduino DIY Geiger sayğacı: 12 addım (şəkillərlə birlikdə)
Arduino DIY Geiger sayğacı: 12 addım (şəkillərlə birlikdə)

Video: Arduino DIY Geiger sayğacı: 12 addım (şəkillərlə birlikdə)

Video: Arduino DIY Geiger sayğacı: 12 addım (şəkillərlə birlikdə)
Video: Счетчик подписчиков YouTube в реальном времени Raspberry Pi 2024, Sentyabr
Anonim
Arduino DIY Geiger sayğacı
Arduino DIY Geiger sayğacı
Arduino DIY Geiger sayğacı
Arduino DIY Geiger sayğacı

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

Alətlər və hissələr
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 sayğacınızı yığın
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

Geiger sayğacının elektriklə sınanması
Geiger sayğacının elektriklə sınanması
Geiger sayğacının elektriklə sınanması
Geiger sayğacının elektriklə sınanması
Geiger sayğacının elektriklə sınanması
Geiger sayğacının elektriklə sınanması

Ə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ə

Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama

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

Kod
Kod
Kod
Kod
Kod
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

Serial.println Vs Serial.print
Serial.println Vs Serial.print
Serial.println Vs Serial.print
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ü

J305 Arxa Radiasiya Ölçülməsi
J305 Arxa Radiasiya Ölçülməsi
J305 Arxa Radiasiya Ölçülməsi
J305 Arxa Radiasiya Ölçülməsi

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

J305 Tüstü Sensor Radiasiyasının Ölçülməsi
J305 Tüstü Sensor Radiasiyasının Ölçülməsi
J305 Tüstü Sensor Radiasiyasının Ölçülməsi
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

SBM-20
SBM-20
SBM-20
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 ilə Geiger sayğacının naqilləri
LCD ilə Geiger sayğacının naqilləri

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ı

LCD ilə Geiger sayğacı
LCD ilə Geiger sayğacı
LCD ilə Geiger sayğacı
LCD ilə Geiger sayğacı
LCD ilə Geiger sayğacı
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.

Tövsiyə: