Isi kandungan:

Arduino DIY Geiger Counter: 12 Langkah (dengan Gambar)
Arduino DIY Geiger Counter: 12 Langkah (dengan Gambar)

Video: Arduino DIY Geiger Counter: 12 Langkah (dengan Gambar)

Video: Arduino DIY Geiger Counter: 12 Langkah (dengan Gambar)
Video: How To Make Geiger Counter With Arduino 2024, November
Anonim
Kaunter Arduino DIY Geiger
Kaunter Arduino DIY Geiger
Kaunter Arduino DIY Geiger
Kaunter Arduino DIY Geiger

Oleh itu, anda telah memesan kaunter DIY Geiger dan anda ingin menyambungkannya ke Arduino anda. Anda terus bercakap dan cuba menduplikasi bagaimana orang lain menghubungkan kaunter Geiger mereka ke Arduino hanya untuk mencari sesuatu yang salah. Walaupun kaunter Geiger anda nampaknya tidak berfungsi seperti yang dijelaskan dalam DIY yang anda ikuti semasa anda menyambungkan kaunter Geiger ke Arduino anda.

Dalam Instructable ini saya akan membahas bagaimana menyelesaikan beberapa masalah ini.

Ingat; kumpulkan dan kodkan Arduino selangkah demi selangkah, jika anda terus menuju ke projek yang telah siap dan terdapat wayar atau garis kod yang terlewat, ia dapat membawa anda selamanya untuk mencari masalah.

Langkah 1: Alat dan Bahagian

Alat dan Bahagian
Alat dan Bahagian

Kotak prototaip Saya menggunakan kotak gula-gula Ferrero Rocher.

Papan roti kecil

LCD 16x2

Arduino board eter UNO atau Nano

Perintang 220 Ω

Perintang 10 kΩ boleh laras.

Kit Kaunter Geiger DIY

Wayar Pelompat

Penyambung atau abah-abah bateri

Osiloskop

Tang Hidung Halus

Pemutar Skru Standard Kecil

Langkah 2: Pasang Kaunter Geiger Anda

Pasang Kaunter Geiger Anda
Pasang Kaunter Geiger Anda

Sebarang kerosakan pada Tiub Geiger anda; dan kaunter Geiger anda tidak berfungsi, jadi gunakan penutup akrilik pelindung untuk mengelakkan kerosakan pada tiub Geiger anda.

Instructable ini adalah bagaimana saya membaiki kaunter Geiger yang sama dengan tiub Geiger yang pecah dan memasang penutup pelindung akrilik untuk mengelakkan kerosakan pada masa akan datang.

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

Langkah 3: Menguji Elektrik Kaunter Geiger

Menguji Elektrik Pembilang Geiger
Menguji Elektrik Pembilang Geiger
Menguji Elektrik Kaunter Geiger
Menguji Elektrik Kaunter Geiger
Menguji Elektrik Kaunter Geiger
Menguji Elektrik Kaunter Geiger

Mula-mula gunakan voltan yang betul untuk bekalan kuasa; kabel USB membekalkan DC 5 volt terus dari komputer anda, namun pemegang bateri 3 AA adalah untuk bateri beralkali 1.5 volt menjadikan voltan keseluruhan sebanyak 4.5 volt. Sekiranya anda menggunakan bateri NI-Cd atau NI-MH 1.2 volt yang boleh dicas semula, anda memerlukan pemegang bateri 4 AA untuk voltan total 4.8 volt. Sekiranya anda menggunakan kurang daripada 4.5 volt, kaunter Geiger mungkin tidak berfungsi sebagaimana mestinya.

Terdapat litar yang sangat sedikit pada output kaunter Geiger; selagi pembesar suara mengeluarkan bunyi berdetak, dan LED berkelip, anda harus mendapat isyarat pada pin VIN.

Untuk memastikan isyarat output; sambungkan osiloskop ke output dengan menghubungkan sisi positif probe osiloskop ke VIN dan sisi negatif probe osiloskop ke tanah.

Daripada hanya menunggu sinaran latar untuk mencetuskan kaunter Geiger, saya menggunakan americium-241 dari ruang ion pengesan asap untuk meningkatkan reaksi kaunter Geiger. Keluaran kaunter Geiger bermula pada +3 volt dan turun menjadi 0 volt setiap kali tabung Geiger bertindak balas terhadap zarah alfa dan kembali ke +3 volt seketika kemudian. Inilah isyarat yang akan anda rakam dengan Arduino.

Langkah 4: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Terdapat dua cara untuk menghubungkan kaunter Geiger dengan Arduino dan komputer anda.

Sambungkan GND di Arduino ke GND di kaunter Geiger.

Sambungkan 5V di Arduino ke 5V di kaunter Geiger.

Sambungkan VIN di kaunter Geiger ke D2 di Arduino.

Dengan kuasa bebas yang disambungkan ke kaunter Geiger.

Sambungkan GND di Arduino ke GND di kaunter Geiger.

Sambungkan VIN di kaunter Geiger ke D2 di Arduino.

Sambungkan Arduino ke komputer anda.

Langkah 5: Kod

Kod
Kod
Kod
Kod
Kod
Kod

Buka Arduino IDE dan muatkan kodnya.

// Sketsa ini mengira bilangan denyutan seminit.

// Sambungkan GND di Arduino ke GND di kaunter Geiger.

// Sambungkan 5V di Arduino ke 5V di kaunter Geiger.

// Sambungkan VIN di kaunter Geiger ke D2 di Arduino.

jumlah panjang yang tidak ditandatangani; // pemboleh ubah untuk acara GM Tube

lama yang belum ditandatanganiMillis; // pemboleh ubah untuk mengukur masa

kekosongan impuls () {// setiap kali ada sinyal JATUH di pin 2

mengira ++;

}

#tentukan LOG_PERIOD 60000 // kadar kiraan

batal persediaan () {// persediaan

mengira = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), dorongan, JATUH); // tentukan gangguan luaran

Serial.println ("Mula kaunter");

}

gelung kosong () {// kitar utama

arus panjang yang tidak ditandatanganiMillis = millis ();

jika (currentMillis - sebelumnyaMillis> LOG_PERIOD) {

sebelumnyaMillis = currentMillis;

Serial.println (dikira);

mengira = 0;

}

}

Dalam Alat pilih Arduino atau papan lain yang anda gunakan.

Dalam Alat pilih Port dan Com

Muat naik kod.

Setelah kod dimuat dalam Alat pilih Serial Monitor dan tonton kerja kaunter Geiger anda.

Cari gangguan. Satu-satunya perkara mengenai kod ini adalah agak membosankan anda mesti menunggu 1 minit untuk setiap kiraan.

Langkah 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

Ini adalah salah satu gangguan pertama yang saya dapati dalam kod; jadi perhatikan dalam kod anda, "Serial.println (cpm);" dan "Cetakan bersiri (cpm);".

Serial.println (cpm); akan mencetak setiap kiraan pada barisnya sendiri.

Cetakan bersiri (cpm); akan kelihatan seperti satu bilangan besar yang mencetak setiap kiraan pada baris yang sama sehingga mustahil untuk mengetahui berapa jumlahnya.

Langkah 7: Pengukuran Sinaran Latar Belakang J305

Pengukuran Sinaran Latar Belakang J305
Pengukuran Sinaran Latar Belakang J305
Pengukuran Sinaran Latar Belakang J305
Pengukuran Sinaran Latar Belakang J305

Pertama adalah pengukuran sinaran latar belakang, sinaran semula jadi yang sudah ada secara semula jadi. Nombor yang disenaraikan adalah BPS (kiraan per minit), yang merupakan jumlah zarah radioaktif yang diukur setiap minit.

Kiraan purata latar belakang J305 ialah 15.6 CPM.

Langkah 8: J305 Pengukuran Sinaran Sensor Asap

J305 Pengukuran Sinaran Sensor Asap
J305 Pengukuran Sinaran Sensor Asap
J305 Pengukuran Sinaran Sensor Asap
J305 Pengukuran Sinaran Sensor Asap

Adalah tidak biasa bagi kaunter Geiger untuk memberi anda jumlah yang sama berulang kali, jadi periksa dengan sumber radiasi. Saya menggunakan pengukuran sinaran dari Americium ruang ion dari alat pengesan asap. Sensor asap menggunakan Americium sebagai sumber zarah alfa yang mengionkan zarah asap di udara. Saya mengeluarkan penutup logam pada sensor supaya zarah alfa dan beta dapat sampai ke tiub Geiger bersama dengan zarah gamma.

Sekiranya semuanya betul, kiraan mesti berubah.

Americium-241 dari kiraan purata ruang ion pengesan asap ialah 519 CPM.

Langkah 9: SBM-20

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

Lakaran Arduino ini adalah versi yang diubah suai yang ditulis oleh Alex Boguslavsky.

Sketsa ini mengira bilangan denyutan dalam 15 saat dan menukarnya menjadi hitungan seminit menjadikannya tidak membosankan.

Kod saya menambah "Serial.println (" Mula kaunter ");".

Kod yang saya ubah; "Cetakan bersiri (cpm);" ke "Serial.println (cpm);".

"#Tentukan LOG_PERIOD 15000"; menetapkan masa kiraan menjadi 15 saat, saya mengubahnya menjadi "#define LOG_PERIOD 5000" atau 5 saat. Saya tidak mendapati perbezaan yang ketara antara pengiraan selama 1 minit, atau 15 saat dan 5 saat.

#sertakan

#define LOG_PERIOD 15000 // Tempoh pembalakan dalam milisaat, nilai yang disyorkan 15000-60000.

#define MAX_PERIOD 60000 // Tempoh penebangan maksimum tanpa mengubah lakaran ini

jumlah panjang yang tidak ditandatangani; // pemboleh ubah untuk acara GM Tube

cpm panjang yang tidak ditandatangani; // pemboleh ubah untuk CPM

pengganda int yang tidak ditandatangani; // pemboleh ubah untuk pengiraan CPM dalam lakaran ini

lama yang belum ditandatanganiMillis; // pemboleh ubah untuk pengukuran masa

void tube_impulse () {// subprosedur untuk menangkap peristiwa dari Geiger Kit

mengira ++;

}

batal penyediaan () {// subprosedur penyediaan

mengira = 0;

cpm = 0;

pengganda = MAX_PERIOD / LOG_PERIOD; // mengira pengganda, bergantung pada tempoh log anda

Serial.begin (9600);

attachInterrupt (0, tube_impulse, JATUH); // tentukan gangguan luaran

Serial.println ("Mula kaunter"); // kod yang saya tambah

}

gelung kosong () {// kitar utama

arus panjang yang tidak ditandatanganiMillis = millis ();

jika (currentMillis - sebelumnyaMillis> LOG_PERIOD) {

sebelumnyaMillis = currentMillis;

cpm = mengira * pengganda;

Serial.println (cpm); // kod yang saya ubah

mengira = 0;

}

}

Kiraan purata latar belakang SBM-20 ialah 23.4 CPM.

Langkah 10: Memasang Kaunter Geiger Dengan LCD

Memasang Kaunter Geiger Dengan LCD
Memasang Kaunter Geiger Dengan LCD

Sambungan LCD:

Pin LCD K ke GND

LCD A pin ke 220 Ω perintang ke Vcc

Pin LCD D7 ke pin digital 3

Pin LCD D6 ke pin digital 5

Pin LCD D5 ke pin digital 6

Pin LCD D4 ke pin digital 7

LCD Dayakan pin ke pin digital 8

Pin R / W LCD ke tanah

Pin LCD RS ke pin digital 9

Pin VO LCD untuk menyesuaikan periuk 10 kΩ

Pin Vcc LCD ke Vcc

Pin Vdd LCD ke GND

Perintang 10 kΩ boleh laras.

Vcc, Vo, Vdd

Kaunter Geiger

VIN ke pin digital 2

5 V hingga + 5V

GND ke tanah

Langkah 11: Kaunter Geiger Dengan LCD

Kaunter Geiger Dengan LCD
Kaunter Geiger Dengan LCD
Kaunter Geiger Dengan LCD
Kaunter Geiger Dengan LCD
Kaunter Geiger Dengan LCD
Kaunter Geiger Dengan LCD

// sertakan kod perpustakaan:

#sertakan

#sertakan

#define LOG_PERIOD 15000 // Tempoh pembalakan dalam milisaat, nilai yang disyorkan 15000-60000.

#define MAX_PERIOD 60000 // Tempoh penebangan maksimum tanpa mengubah lakaran ini

#tentukan TEMPOH 60000.0 // (60 saat) jangka masa satu minit

CNT panjang tidak stabil yang tidak menentu; // pemboleh ubah untuk mengira gangguan dari dosimeter

jumlah panjang yang tidak ditandatangani; // pemboleh ubah untuk acara GM Tube

cpm panjang yang tidak ditandatangani; // pemboleh ubah untuk CPM

pengganda int yang tidak ditandatangani; // pemboleh ubah untuk pengiraan CPM dalam lakaran ini

lama yang belum ditandatanganiMillis; // pemboleh ubah untuk pengukuran masa

jangka masa panjang yang tidak ditandatangani; // pemboleh ubah untuk mengukur masa

CPM panjang yang tidak ditandatangani; // pemboleh ubah untuk mengukur CPM

// mulakan perpustakaan dengan bilangan pin antara muka

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

batal persediaan () {// persediaan

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");

kelewatan (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, JATUH); // Acara pada pin 2

}

gelung kosong () {

lcd.setCursor (0, 0); // mencetak teks dan CNT pada LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + TEMPOH) {// Sekiranya satu minit berakhir

cleanDisplay (); // Jelas LCD

// Lakukan sesuatu mengenai acara CNT yang terkumpul….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Paparan CPM

CNT = 0;

dispPeriod = milis ();

}

}

batal GetEvent () {// Dapatkan Acara dari Peranti

CNT ++;

}

batal cleanDisplay () {// Kosongkan rutin LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Langkah 12: Fail

Muat turun dan pasang fail ini ke Arduino anda.

Letakkan setiap fail.ino dalam folder dengan nama yang sama.

Disyorkan: