好久没有更新这个系列了,4月份住院拔了智齿,拔牙是真难受QAQ
住院期间我就一直惦记着这个项目,自上个贴子从串口输出测量的辐射值后,如果想测量其他地方的辐射值,也就是带着盖革计数器走出去,就面临着2个问题:移动电源和屏幕显示
1、电源
板卡的供电需要电源,经查阅资料,我的这块Arduino外部供电为7~12V,家里没有合适的移动电源,本来想从网上找个锂电池,但大多都是3.3V的,12V的锂电池还真不便宜。某天在逛电子元件商城的时候,看到可以用9V干电池供电,只需要一个接头就能解决问题,应该是移动电源里面成本最低的方案。
2、显示
家里之前还有一块新的1602 LCD,但没有I2C转接板的话,接线就比较麻烦了。于是从网上又买了块转接板。
这个小东西就可以接Arduino的I2C接口,导入库函数,改改内容就能输出想要的文字。
下面就是把盖革计数器测量的值,在LCD上显示出来。
硬件连接不复杂,盖革计数器接还是接数字3口,LCD 4线接I2C接口。
一个输入,一个输出。
软件方面,把Geiger的示例程序和LCD的示例程序糅合一下,增加点文字显示辅助理解。
/*! @file geiger.ino @brief 检测CPM辐射强度,开始几次的读数可能有较大偏差,3次后数据趋于稳定 @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com) @licence The MIT License (MIT) @author [fengli](li.feng@dfrobot.com) @version V1.0 @date 2021-9-17 @get from https://www.dfrobot.com @https://github.com/DFRobot/DFRobot_Geiger */ #include <Wire.h> #include <LiquidCrystal_I2C.h> //引用I2C库 //VCC----5V //GND----GND //SDA----A4 //SCL----A5 LiquidCrystal_I2C lcd(0x27,16,2); //默认地址是0x27,如果有调整过转接板的地址请按需修改此段代码 #include <DFRobot_Geiger.h> #if defined ESP32 #define detect_pin D3 #else #define detect_pin 3 #endif /*! @brief Constructor @param pin 外部中断引脚 */ DFRobot_Geiger geiger(detect_pin); void setup() { lcd.init(); // 初始化LCD lcd.backlight(); //设置LCD背景等亮 Serial.begin(115200); //开始计数,启用外部中断 geiger.start(); } void loop() { //开始计数,启用外部中断 //geiger.start(); delay(3000); //暂停计数,关闭外部中断触发,CPM和辐射强度值保持在暂停前状态 //geiger.pause(); //获取当前CPM,若已暂停,则CPM为暂停前最后数值 //通过3秒内的下降沿脉冲预测CPM,误差为±3CPM lcd.setCursor(0,0); //显示第一行内容 //获取当前CPM,若已暂停,则CPM为暂停前最后数值 //通过3秒内的下降沿脉冲预测CPM,误差为±3CPM lcd.print("Geiger CMP="); lcd.print(geiger.getCPM()); //输出字符到LCD1602上 lcd.setCursor(7,1); //显示第二行内容 lcd.print(geiger.getuSvh());//获取当前μSv/h,若已暂停,则μSv/h为暂停前最后数值 lcd.print("uSv/h"); delay(1000); }
调试,上传,就测得的辐射值就成功显示在LCD上了。
测得当前环境值CPM在27,辐射强度为0.18μSv/h,居然和上次测量的数据一样。。。
家里装修部分地方用了天然石材,装修过了快1年了,让我们来看看这些石材是不是还存在着微量辐射。
有的地方数据会偏高一丢丢,这么看整体的辐射剂量远低于危害水平。
后面就是把这个散件组装一下,走出去再看看那些可能会有辐射的地方,数值会如何变化了。