สารบัญ:
- ขั้นตอนที่ 1: เครื่องมือและชิ้นส่วน
- ขั้นตอนที่ 2: ประกอบตัวนับ Geiger ของคุณ
- ขั้นตอนที่ 3: ทดสอบตัวนับ Geiger ด้วยไฟฟ้า
- ขั้นตอนที่ 4: การเดินสายไฟ
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: Serial.println Vs Serial.print
- ขั้นตอนที่ 7: J305 การวัดรังสีพื้นหลัง
- ขั้นตอนที่ 8: J305 การวัดการแผ่รังสีเซ็นเซอร์ควัน
- ขั้นตอนที่ 9: SBM-20
- ขั้นตอนที่ 10: การเดินสายไฟตัวนับ Geiger ด้วย LCD
- ขั้นตอนที่ 11: ตัวนับ Geiger พร้อม LCD
- ขั้นตอนที่ 12: ไฟล์
วีดีโอ: Arduino DIY Geiger Counter: 12 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
คุณได้สั่งซื้อเคาน์เตอร์ DIY Geiger และต้องการเชื่อมต่อกับ Arduino ของคุณ คุณเข้าแถวและพยายามทำซ้ำวิธีที่ผู้อื่นเชื่อมต่อตัวนับ Geiger กับ Arduino เพื่อค้นหาสิ่งผิดปกติ แม้ว่าตัวนับ Geiger ของคุณดูเหมือนจะไม่ทำงานตามที่อธิบายไว้ใน DIY ที่คุณกำลังติดตามเมื่อคุณเชื่อมต่อตัวนับ Geiger กับ Arduino ของคุณ
ในคำแนะนำนี้ ฉันจะอธิบายวิธีแก้ไขปัญหาข้อบกพร่องเหล่านี้บางส่วน
จดจำ; รวบรวมและเขียนโค้ด Arduino ทีละขั้น หากคุณไปยังโครงการที่เสร็จสิ้นแล้วและมีสายหรือโค้ดที่พลาดไป คุณอาจต้องใช้เวลานานในการค้นหาปัญหา
ขั้นตอนที่ 1: เครื่องมือและชิ้นส่วน
กล่องต้นแบบ ฉันใช้กล่องขนม Ferrero Rocher
เขียงหั่นขนมขนาดเล็ก
จอแอลซีดี 16x2
บอร์ด Arduino ether a UNO หรือ Nano
ตัวต้านทาน 220 Ω
ตัวต้านทานแบบปรับได้หม้อ 10 kΩ
DIY Geiger Counter Kit
สายจัมเปอร์
ขั้วต่อแบตเตอรี่หรือสายรัด
ออสซิลโลสโคป
คีมปากแหลม
ไขควงมาตรฐานขนาดเล็ก
ขั้นตอนที่ 2: ประกอบตัวนับ Geiger ของคุณ
ความเสียหายต่อท่อไกเกอร์ของคุณ; และเคาน์เตอร์ Geiger ของคุณจะไม่ทำงาน ดังนั้นให้ใช้ฝาครอบอะคริลิกป้องกันเพื่อป้องกันความเสียหายต่อท่อ Geiger ของคุณ
คำแนะนำนี้เป็นวิธีการที่ฉันซ่อมแซมเคาน์เตอร์ Geiger เดียวกันกับท่อ Geiger ที่หักและติดตั้งฝาครอบอะคริลิกเพื่อป้องกันการแตกหักในอนาคต
www.instructables.com/id/Repairing-a-DIY-G…
ขั้นตอนที่ 3: ทดสอบตัวนับ Geiger ด้วยไฟฟ้า
ใช้แรงดันไฟฟ้าที่เหมาะสมสำหรับแหล่งจ่ายไฟก่อน สาย USB จ่ายไฟ DC 5 โวลต์จากคอมพิวเตอร์ของคุณโดยตรง อย่างไรก็ตาม ที่ใส่แบตเตอรี่ AA 3 ก้อนสำหรับแบตเตอรี่อัลคาไลน์ 1.5 โวลต์ ทำให้มีแรงดันไฟฟ้ารวม 4.5 โวลต์ หากคุณใช้แบตเตอรี่ NI-Cd หรือ NI-MH แบบชาร์จซ้ำได้ 1.2 โวลต์ คุณจะต้องมีที่ใส่แบตเตอรี่ AA 4 ก้อนสำหรับแรงดันไฟฟ้ารวม 4.8 โวลต์ หากคุณใช้ไฟน้อยกว่า 4.5 โวลต์ ตัวนับ Geiger อาจไม่ทำงานอย่างที่ควรจะเป็น
มีวงจรน้อยมากบนเอาต์พุตของตัวนับ Geiger; ตราบใดที่ลำโพงส่งเสียงติ๊กๆ และไฟ LED กะพริบ คุณควรได้รับสัญญาณที่พิน VIN
เพื่อให้แน่ใจว่าสัญญาณเอาท์พุต เชื่อมต่อออสซิลโลสโคปกับเอาต์พุตโดยเชื่อมต่อด้านบวกของโพรบออสซิลโลสโคปกับ VIN และด้านลบของโพรบออสซิลโลสโคปกับพื้น
แทนที่จะรอการแผ่รังสีพื้นหลังเพื่อกระตุ้นตัวนับ Geiger ฉันใช้ americium-241 จากห้องไอออนของเครื่องตรวจจับควันเพื่อเพิ่มปฏิกิริยาของตัวนับ Geiger เอาต์พุตของตัวนับ Geiger เริ่มต้นที่ +3 โวลต์และลดลงเหลือ 0 โวลต์ทุกครั้งที่หลอด Geiger ทำปฏิกิริยากับอนุภาคอัลฟ่าและกลับสู่ +3 โวลต์ในครู่ต่อมา นี่คือสัญญาณที่คุณจะบันทึกด้วย Arduino
ขั้นตอนที่ 4: การเดินสายไฟ
มีสองวิธีในการเชื่อมต่อตัวนับ Geiger กับ Arduino และคอมพิวเตอร์ของคุณ
เชื่อมต่อ GND บน Arduino กับ GND บนตัวนับ Geiger
เชื่อมต่อ 5V บน Arduino กับ 5V บนตัวนับ Geiger
เชื่อมต่อ VIN บนตัวนับ Geiger กับ D2 บน Arduino
ด้วยพลังงานอิสระที่เชื่อมต่อกับเคาน์เตอร์ไกเกอร์
เชื่อมต่อ GND บน Arduino กับ GND บนตัวนับ Geiger
เชื่อมต่อ VIN บนตัวนับ Geiger กับ D2 บน Arduino
เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณ
ขั้นตอนที่ 5: รหัส
เปิด Arduino IDE และโหลดโค้ด
// Sketch นี้นับจำนวนพัลส์ต่อนาที
// เชื่อมต่อ GND บน Arduino กับ GND บนตัวนับ Geiger
// เชื่อมต่อ 5V บน Arduino กับ 5V บนตัวนับ Geiger
// เชื่อมต่อ VIN บนตัวนับ Geiger กับ D2 บน Arduino
การนับยาวที่ไม่ได้ลงนาม //ตัวแปรสำหรับเหตุการณ์ GM Tube
นานก่อนหน้าที่ไม่ได้ลงนามนานMillis; //ตัวแปรสำหรับการวัดเวลา
โมฆะแรงกระตุ้น () { // dipanggil setiap ada sinyal FALLING di pin 2
นับ++;
}
#define LOG_PERIOD 60000 // อัตราการนับ
ถือเป็นโมฆะการตั้งค่า () { //setup
นับ = 0;
Serial.begin(9600);
โหมดพิน (2, อินพุต);
AttachInterrupt(digitalPinToInterrupt(2), แรงกระตุ้น, FALLING); //กำหนดอินเตอร์รัปต์ภายนอก
Serial.println("เริ่มเคาน์เตอร์");
}
วงเป็นโมฆะ () {// รอบหลัก
ไม่ได้ลงนามยาว currentMillis = millis();
ถ้า (currentMillis - PreviousMillis > LOG_PERIOD) {
มิลลิวินาทีก่อนหน้า = ปัจจุบันมิลลิวินาที;
Serial.println (นับ);
นับ = 0;
}
}
ในเครื่องมือ เลือก Arduino หรือบอร์ดอื่นที่คุณใช้
ใน Tools เลือก Port และ Com
อัปโหลดรหัส
เมื่ออัปโหลดโค้ดในเครื่องมือแล้ว ให้เลือก Serial Monitor และดูการทำงานของตัวนับ Geiger
มองหาจุดบกพร่อง. สิ่งเดียวที่เกี่ยวกับรหัสนี้คือมันค่อนข้างน่าเบื่อ คุณต้องรอ 1 นาทีสำหรับการนับทุกครั้ง
ขั้นตอนที่ 6: Serial.println Vs Serial.print
นี่เป็นหนึ่งในข้อบกพร่องแรก ๆ ที่ฉันพบในโค้ด ดังนั้นโปรดดูในรหัสของคุณ “Serial.println(cpm);” และ “Serial.print(cpm);”
Serial.println (cpm); จะพิมพ์แต่ละจำนวนในบรรทัดของตัวเอง
Serial.print(cpm); จะดูเหมือนการพิมพ์ตัวเลขขนาดใหญ่แต่ละครั้งนับในบรรทัดเดียวกันทำให้ไม่สามารถบอกได้ว่าจำนวนนั้นคืออะไร
ขั้นตอนที่ 7: J305 การวัดรังสีพื้นหลัง
อย่างแรกคือการวัดรังสีพื้นหลัง ซึ่งเป็นรังสีธรรมชาติที่มีอยู่แล้วตามธรรมชาติ ตัวเลขที่แสดงคือ CPM (นับต่อนาที) ซึ่งเป็นจำนวนรวมของอนุภาคกัมมันตภาพรังสีที่วัดได้ทุกนาที
จำนวนเฉลี่ยพื้นหลัง J305 คือ 15.6 CPM
ขั้นตอนที่ 8: J305 การวัดการแผ่รังสีเซ็นเซอร์ควัน
ไม่ใช่เรื่องแปลกที่ตัวนับ Geiger จะให้การนับเดียวกันซ้ำ ๆ กับคุณ ดังนั้นให้ตรวจสอบกับแหล่งกำเนิดรังสี ฉันใช้การวัดรังสีจากห้องไอออน Americium จากเครื่องตรวจจับควัน เซ็นเซอร์ตรวจจับควันใช้ Americium เป็นแหล่งของอนุภาคแอลฟาที่ทำให้อนุภาคควันในอากาศแตกตัวเป็นไอออน ฉันถอดฝาโลหะบนเซ็นเซอร์ออก เพื่อให้อนุภาคอัลฟาและบีตาสามารถเข้าไปในหลอดไกเกอร์พร้อมกับอนุภาคแกมมา
หากทุกอย่างถูกต้องการนับควรเปลี่ยน
Americium-241 จากเครื่องตรวจจับควันไฟ Ion Chamber จำนวนเฉลี่ย 519 CPM
ขั้นตอนที่ 9: SBM-20
ภาพสเก็ตช์ Arduino นี้ได้รับการดัดแปลงเวอร์ชันที่เขียนโดย Alex Boguslavsky
Sketch นี้นับจำนวนพัลส์ใน 15 วินาทีและแปลงเป็นจำนวนต่อนาทีทำให้ไม่น่าเบื่อ
รหัสที่ฉันเพิ่ม “Serial.println("เริ่มตัวนับ");”
รหัสที่ฉันเปลี่ยน; “Serial.print (cpm);” ไปที่ “Serial.println(cpm);”
“#define LOG_PERIOD 15000”; ตั้งเวลานับเป็น 15 วินาที ฉันเปลี่ยนเป็น #define LOG_PERIOD 5000 หรือ 5 วินาที ฉันไม่พบความแตกต่างที่เห็นได้ชัดเจนในค่าเฉลี่ยระหว่างการนับเป็นเวลา 1 นาที หรือ 15 วินาทีและ 5 วินาที
#รวม
#define LOG_PERIOD 15000 //ระยะเวลาการบันทึกเป็นมิลลิวินาที ค่าที่แนะนำ 15000-60000
#define MAX_PERIOD 60000 //ระยะเวลาการบันทึกสูงสุดโดยไม่ต้องแก้ไขร่างนี้
การนับยาวที่ไม่ได้ลงนาม //ตัวแปรสำหรับเหตุการณ์ GM Tube
cpm แบบยาวที่ไม่ได้ลงนาม; //ตัวแปรสำหรับ CPM
ตัวคูณ int ที่ไม่ได้ลงนาม; //ตัวแปรสำหรับการคำนวณ CPM ในแบบร่างนี้
นานก่อนหน้าที่ไม่ได้ลงนามนานMillis; //ตัวแปรสำหรับการวัดเวลา
ถือเป็นโมฆะ tube_impulse () {// subprocedure สำหรับจับเหตุการณ์จาก Geiger Kit
นับ++;
}
ถือเป็นโมฆะการตั้งค่า () { // ตั้งค่าขั้นตอนย่อย
นับ = 0;
cpm = 0;
ตัวคูณ = MAX_PERIOD / LOG_PERIOD; //กำลังคำนวณตัวคูณ ขึ้นอยู่กับช่วงเวลาบันทึกของคุณ
Serial.begin(9600);
แนบInterrupt(0, tube_impulse, FALLING); //กำหนดอินเตอร์รัปต์ภายนอก
Serial.println("เริ่มเคาน์เตอร์"); // รหัสที่ฉันเพิ่ม
}
วงเป็นโมฆะ () { // รอบหลัก
ไม่ได้ลงนามยาว currentMillis = millis();
if(currentMillis - PreviousMillis > LOG_PERIOD){
มิลลิวินาทีก่อนหน้า = ปัจจุบันมิลลิวินาที;
cpm = นับ * ตัวคูณ;
Serial.println (cpm); // รหัสที่ฉันเปลี่ยน
นับ = 0;
}
}
จำนวนเฉลี่ยพื้นหลัง SBM-20 คือ 23.4 CPM
ขั้นตอนที่ 10: การเดินสายไฟตัวนับ Geiger ด้วย LCD
การเชื่อมต่อจอแอลซีดี:
LCD K พินไปที่ GND
LCD ขาต่อตัวต้านทาน 220 Ω ถึง 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: ตัวนับ Geiger พร้อม LCD
// รวมรหัสห้องสมุด:
#รวม
#รวม
#define LOG_PERIOD 15000 //ระยะเวลาการบันทึกเป็นมิลลิวินาที ค่าที่แนะนำ 15000-60000
#define MAX_PERIOD 60000 //ระยะเวลาการบันทึกสูงสุดโดยไม่ต้องแก้ไขร่างนี้
#define PERIOD 60000.0 // (60 วินาที) ระยะเวลาการวัดหนึ่งนาที
CNT แบบยาวที่ไม่ได้ลงนามแบบผันผวน // ตัวแปรสำหรับการนับอินเตอร์รัปต์จาก dosimeter
การนับยาวที่ไม่ได้ลงนาม //ตัวแปรสำหรับเหตุการณ์ GM Tube
cpm แบบยาวที่ไม่ได้ลงนาม; //ตัวแปรสำหรับ CPM
ตัวคูณ int ที่ไม่ได้ลงนาม; //ตัวแปรสำหรับการคำนวณ CPM ในแบบร่างนี้
นานก่อนหน้าที่ไม่ได้ลงนามนานMillis; //ตัวแปรสำหรับการวัดเวลา
dispPeriod ยาวที่ไม่ได้ลงนาม; // ตัวแปรสำหรับการวัดเวลา
CPM แบบยาวที่ไม่ได้ลงนาม // ตัวแปรสำหรับวัด CPM
// เริ่มต้นไลบรารีด้วยหมายเลขของพินอินเตอร์เฟส
LiquidCrystal LCD (9, 8, 7, 6, 5, 3);
การตั้งค่าเป็นโมฆะ () { // setup
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 ");
ล่าช้า (2000);
cleanDisplay();
แนบInterrupt(0, GetEvent, FALLING); // เหตุการณ์ที่พิน 2
}
วงเป็นโมฆะ () {
lcd.setCursor(0, 0); // พิมพ์ข้อความและ CNT บน LCD
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 = มิลลิวินาที ();
}
}
ถือเป็นโมฆะ GetEvent () { // รับเหตุการณ์จากอุปกรณ์
ซีเอ็นที++;
}
เป็นโมฆะ cleanDisplay () { // ล้างรูทีน LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.setCursor(0, 0);
}
ขั้นตอนที่ 12: ไฟล์
ดาวน์โหลดและติดตั้งไฟล์เหล่านี้ลงใน Arduino ของคุณ
วางไฟล์.ino แต่ละไฟล์ในโฟลเดอร์โดยใช้ชื่อเดียวกัน
แนะนำ:
Home Assistant Geiger Counter Integration: 8 ขั้นตอน
Home Assistant Geiger Counter Integration: ในบทช่วยสอนนี้ ฉันจะแสดงวิธีเพิ่มเซ็นเซอร์แบบกำหนดเองให้กับ HASS (ผู้ช่วยในบ้าน) โดยเฉพาะตัวนับ geiger แต่กระบวนการนี้ก็คล้ายกันกับเซ็นเซอร์อื่นๆ ด้วย เราจะใช้บอร์ด NodeMCU ซึ่งเป็นตัวนับ geiger ที่ใช้ Arduino
DIY Geiger Counter พร้อม ESP8266 และหน้าจอสัมผัส: 4 ขั้นตอน (พร้อมรูปภาพ)
DIY Geiger Counter พร้อม ESP8266 และหน้าจอสัมผัส: อัปเดต: เวอร์ชันใหม่และที่ได้รับการปรับปรุงพร้อม WIFI และคุณสมบัติเพิ่มเติมอื่น ๆ ที่นี่ฉันออกแบบและสร้าง Geiger Counter - อุปกรณ์ที่สามารถตรวจจับรังสีไอออไนซ์และเตือนผู้ใช้ถึงระดับการแผ่รังสีรอบข้างที่เป็นอันตรายด้วยทั้งหมด- คุ้นเคยเกินไป คลิกที่ ไม่
PKE Meter Geiger Counter: 7 ขั้นตอน (พร้อมรูปภาพ)
PKE Meter Geiger Counter: ฉันต้องการสร้างเคาน์เตอร์ Geiger มาเป็นเวลานานเพื่อเสริม Peltier Cooled Cloud Chamber ของฉัน มี (หวังว่า) จะมีประโยชน์ไม่มากในการเป็นเจ้าของเคาน์เตอร์ Geiger แต่ฉันชอบหลอดรัสเซียแบบเก่าและคิดว่ามันจะ
วิธีสร้าง CubeSat ด้วย Arduino และ Geiger Counter Sensor: 11 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino และ Geiger Counter Sensor: เคยสงสัยหรือไม่ว่าดาวอังคารมีกัมมันตภาพรังสีหรือไม่? และถ้าเป็นกัมมันตภาพรังสี ระดับรังสีสูงพอที่จะเป็นอันตรายต่อมนุษย์หรือไม่? ทั้งหมดนี้เป็นคำถามที่เราหวังว่าจะสามารถตอบได้โดย CubeSat ของเรากับ Arduino Geiger Counte
DIY Arduino Geiger Counter: 6 ขั้นตอน (พร้อมรูปภาพ)
DIY Arduino Geiger Counter: สวัสดีทุกคน! คุณจะทำอย่างไร? นี่คือโครงการ How-ToDo ชื่อของฉันคือ Konstantin และวันนี้ฉันต้องการแสดงให้คุณเห็นว่าฉันสร้างเคาน์เตอร์ Geiger ได้อย่างไร ฉันเริ่มสร้างอุปกรณ์นี้ตั้งแต่ต้นปีที่แล้ว ตั้งแต่นั้นมาก็ผ่าน 3 คอมพ์