使用 Arduino、高压升压模块和 20x4 LCD 自制盖革-米勒计数器
元件与物料
| Arduino UNO | ×1 | 可使用任意 Arduino 开发板,不限于 UNO |
| DC-DC 1.5-3V 转 300-400V 高压升压模块 | ×1 | 理想输出电压 400V,实际工作范围 350-450V(GM 管供电范围) |
| STS-5 盖革-米勒管 | ×1 | 建议从 eBay 购买(价格较低),发货地多为乌克兰,预计 2-3 周到货 |
| SunFounder IIC/I2C 2004 20x4 LCD 模块 | ×1 | 接线少、易用;任何 20x4 规格 LCD 均可 |
所需工具
- 电烙铁(通用):用于焊接电路板及给升压模块焊接电容
- 面包板(270 孔):适合原型验证,最终可改用可焊接万用板
项目简介
⚠ 高压警告: 本装置涉及 400V 高压,电流虽小但足以引发心律失常甚至致命。制作者需具备电子基础并严格遵守高压操作规范。
本项目基于 AdNovea 的开源设计改进,旨在实现完全可编程的个人辐射计数器,便于理解 GM 管物理特性并按需定制功能。我简化了原电路:移除蜂鸣器、以太网模块及 GM 管串联电阻(该电阻导致管压不足无法工作),仅保留核心计数与显示功能。

制作流程
- 面包板验证: 按原理图搭建,测试各模块工作状态
- 焊接定型: 将验证无误的电路焊接至万用板
- 外壳组装: 利用 Arduino 套件包装盒作外壳,开孔安装 LCD 与 USB 供电口,用绝缘胶带固定 GM 管并覆盖高压端子
- 供电方案: 9V 电池续航极短,最终采用 USB 供电


软件算法
- 每 30 秒统计一次 GM 管脉冲,×2 得 CPM(每分钟计数)
- 换算公式:µSv/h = CPM × 0.0057(STS-5 管典型系数)
- 实时计算累计平均值与标准误(SE = SD/√n),因内存限制仅存储 100 组数据(约 50 分钟)
- LCD 显示:当前 CPM、当前 µSv/h、平均 µSv/h ± 标准误
后续改进方向
- 添加蜂鸣器报警(超本底触发)
- 优化采样周期以提升时间分辨率
- 改用 Arduino Nano 缩小体积
- 设计专用外壳替代纸盒
核心代码
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
unsigned long counts = 0;
unsigned long previousMillis = 0;
float averageCPM = 0, sdCPM = 0;
int currentCPM = 0;
float calcCPM = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
float CPMArray[100];
#define LOG_PERIOD 30000 // 30 秒采样周期
void setup() {
counts = 0; currentCPM = 0; averageCPM = 0; sdCPM = 0; calcCPM = 0;
lcd.init(); lcd.backlight();
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), impulse, FALLING);
}
void loop() {
lcd.setCursor(0,2);
lcd.print("CPM Count: "); lcd.print(counts);
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > LOG_PERIOD) {
previousMillis = currentMillis;
CPMArray[currentCPM] = counts * 2;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("uSv/hr: "); lcd.print(outputSieverts(CPMArray[currentCPM]));
counts = 0;
averageCPM = 0; sdCPM = 0;
// 计算平均值
for (int x=0; x
原理图
Fritzing 文件:geiger_counter_4LAnJvZEpC.fzz(打开后元件位置可能偏移,请以网表连接为准)
制造工艺
- 树莓派盖革计数器 DIY:开源硬件辐射传感器教程
- Arduino 实时太阳能电池板监测:低成本数据采集系统
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 热水器点火器监测器:Arduino Nano + 树莓派 Zero 监控热电偶电压,熄火即时推送
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 情人节礼物:DIY 恋爱天数计数器