Daftar Isi:

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

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

Video: Penghitung Geiger Arduino DIY: 12 Langkah (dengan Gambar)
Video: How To Build Arduino Geiger Counter DOSIMETER DIY-Uji Fungsi Dengan Alat Standar Pabrikan 2024, Juli
Anonim
Penghitung Geiger Arduino DIY
Penghitung Geiger Arduino DIY
Penghitung Geiger Arduino DIY
Penghitung Geiger Arduino DIY

Jadi Anda telah memesan penghitung Geiger DIY dan Anda ingin menghubungkannya ke Arduino Anda. Anda online dan mencoba menduplikasi bagaimana orang lain menghubungkan penghitung Geiger mereka ke Arduino hanya untuk menemukan ada sesuatu yang salah. Meskipun penghitung Geiger Anda tampaknya berfungsi, tidak ada yang berfungsi seperti yang dijelaskan dalam DIY yang Anda ikuti saat menghubungkan penghitung Geiger ke Arduino Anda.

Dalam Instruksi ini saya akan membahas cara memecahkan masalah beberapa gangguan ini.

Ingat; merakit dan membuat kode Arduino selangkah demi selangkah, jika Anda langsung ke proyek yang sudah selesai dan ada kabel atau baris kode yang terlewat, Anda bisa membutuhkan waktu lama untuk menemukan masalahnya.

Langkah 1: Alat dan Suku Cadang

Alat dan Bagian
Alat dan Bagian

Kotak prototipe Saya menggunakan kotak permen Ferrero Rocher.

papan tempat memotong roti kecil

LCD 16x2

Papan Arduino eter UNO atau Nano

220 resistor

Pot 10 kΩ resistor yang dapat disesuaikan.

Kit Penghitung Geiger DIY

Kabel Jumper

Konektor baterai atau harness

Osiloskop

Tang Hidung Halus

Obeng Standar Kecil

Langkah 2: Pasang Penghitung Geiger Anda

Pasang Penghitung Geiger Anda
Pasang Penghitung Geiger Anda

Kerusakan apa pun pada Tabung Geiger Anda; dan penghitung Geiger Anda tidak akan berfungsi, jadi gunakan penutup akrilik pelindung untuk mencegah kerusakan pada tabung Geiger Anda.

Instruksi ini adalah tentang bagaimana saya memperbaiki penghitung Geiger yang sama dengan tabung Geiger yang rusak dan memasang penutup akrilik pelindung untuk mencegah kerusakan di masa mendatang.

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

Langkah 3: Menguji Penghitung Geiger secara Elektrik

Menguji Penghitung Geiger secara Elektrik
Menguji Penghitung Geiger secara Elektrik
Menguji Penghitung Geiger secara Elektrik
Menguji Penghitung Geiger secara Elektrik
Menguji Penghitung Geiger secara Elektrik
Menguji Penghitung Geiger secara Elektrik

Pertama gunakan tegangan yang tepat untuk catu daya; kabel USB memasok 5 volt DC langsung dari komputer Anda, namun dudukan baterai 3 AA untuk baterai alkaline 1,5 volt membuat tegangan total 4,5 volt. Jika Anda menggunakan baterai NI-Cd atau NI-MH 1,2 volt yang dapat diisi ulang, Anda memerlukan dudukan baterai 4 AA untuk tegangan total 4,8 volt. Jika Anda menggunakan kurang dari 4,5 volt, penghitung Geiger mungkin tidak berfungsi sebagaimana mestinya.

Ada sangat sedikit sirkuit pada keluaran penghitung Geiger; jadi selama speaker mengeluarkan suara denting, dan LED berkedip, Anda harus mendapatkan sinyal di pin VIN.

Untuk memastikan sinyal keluaran; sambungkan osiloskop ke output dengan menghubungkan sisi positif probe osiloskop ke VIN dan sisi negatif probe osiloskop ke ground.

Daripada hanya menunggu radiasi latar untuk memicu pencacah Geiger, saya menggunakan amerisium-241 dari ruang ion detektor asap untuk meningkatkan reaksi pencacah Geiger. Output dari pencacah Geiger dimulai pada +3 volt dan turun menjadi 0 volt setiap kali tabung Geiger bereaksi terhadap partikel alfa dan kembali ke +3 volt beberapa saat kemudian. Ini adalah sinyal yang akan Anda rekam dengan Arduino.

Langkah 4: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Ada dua cara Anda dapat menghubungkan penghitung Geiger ke Arduino dan komputer Anda.

Hubungkan GND pada Arduino ke GND pada penghitung Geiger.

Hubungkan 5V pada Arduino ke 5V pada penghitung Geiger.

Hubungkan VIN pada penghitung Geiger ke D2 pada Arduino.

Dengan daya independen yang terhubung ke penghitung Geiger.

Hubungkan GND pada Arduino ke GND pada penghitung Geiger.

Hubungkan VIN pada penghitung Geiger ke D2 pada Arduino.

Hubungkan Arduino ke komputer Anda.

Langkah 5: Kode

Kode
Kode
Kode
Kode
Kode
Kode

Buka Arduino IDE dan muat kodenya.

// Sketsa ini menghitung jumlah pulsa dalam satu menit.

// Hubungkan GND pada Arduino ke GND pada penghitung Geiger.

// Hubungkan 5V pada Arduino ke 5V pada penghitung Geiger.

// Hubungkan VIN pada penghitung Geiger ke D2 pada Arduino.

hitungan panjang yang tidak ditandatangani; //variabel untuk acara GM Tube

unsigned long beforeMillis; //variabel untuk mengukur waktu

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

jumlah++;

}

#define LOG_PERIOD 60000 // menghitung tingkat

batalkan pengaturan() { //setup

jumlah = 0;

Serial.begin(9600);

pinMode(2, INPUT);

attachInterrupt(digitalPinToInterrupt(2), impuls, JATUH); //mendefinisikan interupsi eksternal

Serial.println("Mulai penghitung");

}

void loop() { //siklus utama

unsigned long currentMillis = milis();

if (Millis saat ini - Mili sebelumnya > LOG_PERIOD) {

sebelumnyaMillis = saat iniMillis;

Serial.println(jumlah);

jumlah = 0;

}

}

Di Alat pilih Arduino atau papan lain yang Anda gunakan.

Di Alat pilih Port dan Com

Unggah kode.

Setelah kode diunggah di Alat pilih Serial Monitor dan lihat penghitung Geiger Anda bekerja.

Cari gangguan. Satu-satunya hal tentang kode ini adalah agak membosankan Anda harus menunggu 1 menit untuk setiap hitungan.

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 temukan dalam kode; jadi perhatikan dalam kode Anda, "Serial.println(cpm);" dan “Serial.print(cpm);”.

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

Serial.print(cpm); akan terlihat seperti satu angka besar yang mencetak setiap hitungan pada baris yang sama sehingga tidak mungkin untuk mengetahui apa hitungannya.

Langkah 7: Pengukuran Radiasi Latar Belakang J305

Pengukuran Radiasi Latar Belakang J305
Pengukuran Radiasi Latar Belakang J305
Pengukuran Radiasi Latar Belakang J305
Pengukuran Radiasi Latar Belakang J305

Pertama adalah pengukuran radiasi latar, yaitu radiasi alam yang sudah ada secara alami. Angka yang tercantum adalah CPM (count per minute), yang merupakan total partikel radioaktif yang diukur setiap menitnya.

Jumlah rata-rata latar belakang J305 adalah 15,6 CPM.

Langkah 8: Pengukuran Radiasi Sensor Asap J305

J305 Pengukuran Radiasi Sensor Asap
J305 Pengukuran Radiasi Sensor Asap
J305 Pengukuran Radiasi Sensor Asap
J305 Pengukuran Radiasi Sensor Asap

Tidak jarang penghitung Geiger memberi Anda hitungan yang sama berulang kali, jadi periksalah dengan sumber radiasi. Saya menggunakan pengukuran radiasi dari Americium ruang ion dari detektor asap. Sensor asap menggunakan Americium sebagai sumber partikel alfa yang mengionisasi partikel asap di udara. Saya melepas tutup logam pada sensor sehingga partikel alfa dan beta dapat mencapai tabung Geiger bersama dengan partikel gamma.

Jika semuanya baik-baik saja, hitungannya harus berubah.

Americium-241 dari ruang ion detektor asap jumlah rata-rata adalah 519 CPM.

Langkah 9: MBS-20

MBS-20
MBS-20
MBS-20
MBS-20

Sketsa Arduino ini adalah versi modifikasi yang ditulis oleh Alex Boguslavsky.

Sketsa ini menghitung jumlah pulsa dalam 15 detik dan mengubahnya menjadi hitungan per menit sehingga tidak terlalu membosankan.

Kode yang saya tambahkan “Serial.println("Mulai penghitung");".

Kode yang saya ubah; “Serial.print(cpm);” ke “Serial.println(cpm);”.

“#tentukan LOG_PERIOD 15000”; setel waktu hitungan menjadi 15 detik, saya mengubahnya menjadi "#define LOG_PERIOD 5000" atau 5 detik. Saya tidak menemukan perbedaan yang berarti dalam rata-rata antara menghitung selama 1 menit, atau 15 detik dan 5 detik.

#termasuk

#define LOG_PERIOD 15000 //Periode pencatatan dalam milidetik, nilai yang disarankan 15000-60000.

#define MAX_PERIOD 60000 //Maksimum logging periode tanpa memodifikasi sketsa ini

hitungan panjang yang tidak ditandatangani; //variabel untuk acara GM Tube

cpm panjang yang tidak ditandatangani; //variabel untuk BPS

pengganda int yang tidak ditandatangani; //variabel untuk perhitungan CPM dalam sketsa ini

unsigned long beforeMillis; //variabel untuk pengukuran waktu

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

jumlah++;

}

void setup(){ //setup subprosedur

jumlah = 0;

cpm = 0;

pengali = MAX_PERIOD / LOG_PERIOD; //menghitung pengganda, tergantung pada periode log Anda

Serial.begin(9600);

attachInterrupt(0, tube_impulse, FALLING); //mendefinisikan interupsi eksternal

Serial.println("Mulai penghitung"); // kode yang saya tambahkan

}

void loop(){ //siklus utama

unsigned long currentMillis = milis();

if(Millis saat ini - Mili sebelumnya > LOG_PERIOD){

sebelumnyaMillis = saat iniMillis;

cpm = menghitung * pengali;

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

jumlah = 0;

}

}

Hitungan rata-rata latar belakang SBM-20 adalah 23,4 CPM.

Langkah 10: Menghubungkan Penghitung Geiger Dengan LCD

Menghubungkan Penghitung Geiger Dengan LCD
Menghubungkan Penghitung Geiger Dengan LCD

Koneksi LCD:

Pin LCD K ke GND

LCD A pin ke resistor 220 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 Aktifkan pin ke pin digital 8

LCD R/W pin ke ground

Pin RS LCD ke pin digital 9

Pin VO LCD untuk menyesuaikan pot 10 kΩ

Pin Vcc LCD ke Vcc

Pin Vdd LCD ke GND

Pot 10 kΩ resistor yang dapat disesuaikan.

Vcc, Vo, Vdd

Penghitung Geiger

VIN ke pin digital 2

5V hingga +5V

GND ke tanah

Langkah 11: Penghitung Geiger Dengan LCD

Penghitung Geiger Dengan LCD
Penghitung Geiger Dengan LCD
Penghitung Geiger Dengan LCD
Penghitung Geiger Dengan LCD
Penghitung Geiger Dengan LCD
Penghitung Geiger Dengan LCD

// sertakan kode perpustakaan:

#termasuk

#termasuk

#define LOG_PERIOD 15000 //Periode pencatatan dalam milidetik, nilai yang disarankan 15000-60000.

#define MAX_PERIOD 60000 //Maksimum logging periode tanpa memodifikasi sketsa ini

#define PERIOD 60000.0 // (60 detik) periode pengukuran satu menit

CNT panjang tanpa tanda yang mudah menguap; // variabel untuk menghitung interupsi dari dosimeter

hitungan panjang yang tidak ditandatangani; //variabel untuk acara GM Tube

cpm panjang yang tidak ditandatangani; //variabel untuk BPS

pengganda int yang tidak ditandatangani; //variabel untuk perhitungan CPM dalam sketsa ini

unsigned long beforeMillis; //variabel untuk pengukuran waktu

unsigned long dispPeriod; // variabel untuk mengukur waktu

BPS panjang yang tidak ditandatangani; // variabel untuk mengukur BPS

// inisialisasi perpustakaan dengan nomor pin antarmuka

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

batalkan pengaturan() { // pengaturan

lcd.begin(16, 2);

CNT = 0;

BPS = 0;

dispPeriod = 0;

lcd.setCursor(0, 0);

lcd.print("Elektronik RH");

lcd.setCursor(0, 1);

lcd.print("Penghitung Geiger");

penundaan(2000);

tampilan bersih();

attachInterrupt(0, GetEvent, FALLING); // Acara di pin 2

}

lingkaran kosong() {

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

lcd.print("BPS:");

lcd.setCursor(0, 1);

lcd.print("CNT:");

lcd.setCursor(5, 1);

lcd.print(CNT);

if (milis() >=dispPeriod + PERIOD) { // Jika satu menit sudah lewat

tampilan bersih(); // Bersihkan LCD

// Lakukan sesuatu tentang akumulasi kejadian CNT….

lcd.setCursor(5, 0);

BPS = CNT;

lcd.print(BPS); // menampilkan BPS

CNT = 0;

dispPeriod = milis();

}

}

void GetEvent(){ // Dapatkan Acara dari Perangkat

CNT++;

}

void cleanDisplay (){ // Hapus rutinitas LCD

lcd.clear();

lcd.setCursor(0, 0);

lcd.setCursor(0, 0);

}

Langkah 12: File

Unduh dan instal file-file ini ke Arduino Anda.

Tempatkan setiap file.ino dalam folder dengan nama yang sama.

Direkomendasikan: