在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

制作手持式蓋革計數器的教程

科技觀察員 ? 來源:Pedro52 ? 作者:Pedro52 ? 2022-08-18 16:12 ? 次閱讀

這個項目使用 3D 打印外殼測量放射性,帶有 OLED 顯示屏和鋰離子電池

poYBAGL98_-AD_iEAARuPYb2qW8067.png

項目是在我買了一個現成的 Geiger 計數器套件之后開始的。

poYBAGL98_uAMPwPAADwCyaH4S8383.png

我的整個想法是把這個套件放在一個 3D 打印的外殼中,這樣完整的蓋革計數器套件就可以手持了。最終結果如下圖所示:

poYBAGL98_iAOiMfAATLakSbKyI707.png

第 1 步:系統設計

手持式蓋革計數器的設計如下圖所示:

pYYBAGL98_OARkQyAAEtIFVahUc429.png

蓋革計數器配備 0.96 英寸彩色 OLED 顯示屏,可通過一個簡單的因子告知用戶測量的 CPM(測量每分鐘電離事件的檢測率)以及劑量當量(以 μSv/hr 為單位) 151 可以在文獻中找到所使用的蓋革-米勒 (GM) 管的類型。

事實上,顯示的 CPM 是計算一分鐘計數的結果,通過測量每秒計數 (CPS) 并將這些測量值存儲在涵蓋過去十秒周期的數組中。過去 10 秒期間的總計數乘以 6 即可獲得 CPM 值。

過去一秒的計數用于通過 OLED 顯示屏上的條形圖顯示瞬時測量次數。這在高計數率的情況下很有用,或者當手持式計數器在輻射源上移動時發生計數率的快速變化時。

蓋革計數器由 18650 型鋰離子電池供電,可通過微型 USB 插頭充電。Arduino Nano USB 端口也可用于軟件更改。一個額外的蜂鳴器連接到 Geiger 計數器板上,以增強 GM 管中的電離聲音。

蓋革計數器的所有電子設備都內置在 3D 打印外殼中:

poYBAGL98--ARwwRAADGJELVMz0239.png

OLED 顯示屏放在蓋革計數器頂部的單獨盒子中:

pYYBAGL98-uAaspGAABbC_B6hdw483.png

完全組裝的版本:

poYBAGL98-iAfodFAAIIG-qQl2A024.png

第 2 步:制作蓋革計數器組件

使用以下材料:

Arduino NANO 1

蓋革計數器套件 1

0.96“ OLED 彩色顯示屏 96 * 64 1

Micro USB 充電器板 18650 電池 1

3.7v 4000mAh 受保護的可充電 18650 鋰離子電池 1

晶體管 BC547 1

蜂鳴器-12MM 1

電阻 1k Ohm 1

電子設計

蓋革計數器套件的電子設計如下電路圖所示:

pYYBAGL98-KAJr6pAAJRDqxY5NE225.png

完整的蓋革計數器設置的電路圖如下:

pYYBAGL989uAWiSoAANKhTSt4n8799.png

5V 電源由放置在 Micro USB 充電器板上的可充電鋰離子電池提供。用于 OLED 顯示器的 3、3 V 取自該板。

用于使用 ARDUINO IDE 測試和構建軟件的面包板設置如下圖所示:

pYYBAGL989aAMlMVAAUXjK16XeY850.png

組裝

所有機械和電子零件的組裝如下圖所示:

pYYBAGL989GAAk5RAAht52oP0rA203.png

請注意,手持式蓋革計數器沒有任何電纜連接。

為了給 3、7V 鋰離子電池充電,外殼上有一個單獨的開口,用于(臨時)連接微型 USB 插頭。

額外的迷你 USB 連接可用于 Arduino Nano 的軟件更新。

第 3 步:軟件設計

以下流程圖顯示了蓋革計數器的一般軟件設計:

pYYBAGL9882ABGYmAALwGLyLHcg442.png

0, 96” OLED 顯示屏的視圖如下:

poYBAGL988mAcuSQAAIbtG6DSmg327.png

完整的 Arduino 代碼如下所示:

#include
#include
#include
//Connections for the OLED display
#define sclk 13 //SCL (blue wire)
#define mosi 11 //SDA (white wire)
#define cs 10 //CS (grey wire)
#define rst 9 //RES (green wire)
#define dc 8 //DC (yellow wire)
#define LOGtime 1000 //Logging time in milliseconds (1 second)
#define Minute 60000 //the period of 1 minute for calculating the CPM values
#define show endWrite
#define clear() fillScreen(0)
// Color definitions
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);
int Counts = 0; //variable containing the number of GM Tube events withinthe LOGtime
unsigned long previousMillis= 0; //variablefor storing the previous time
int AVGCPM = 0; //variable containing the floating average number ofcounts over a fixed moving windo period
int TenSecCPM = 0;
int units = 0;
int tens = 0;
int hundreds = 0;
int thousands = 0;
float Sievert = 0;
int COUNTS[10]; // array for storing the measured amounts of impulses in10 consecutive 1 second periods
int t = 0;
////////////////////the setup code that follows,will run once after "Power On" or after a RESET///////////////////
void setup() {
Serial.begin(115200);
display.begin();
display.fillScreen(BLACK);

floatBattery = analogRead(A3); //(orange wire)
floatBattPerc = 100 * (Battery/770);

//Serial.print("battery value = "); Serial.println (Battery); Serial.print("battery percentage = "); Serial.println (BattPerc);
display.setCursor(4,4);
display.setTextSize(2);
display.setTextColor(MAGENTA);
display.println("Battery");
display.setCursor(4,24);
display.print (int (BattPerc)); display.print("."); display.print (int((10*BattPerc)-(10*int(BattPerc))));display.print(" %");
delay(3000);
display.fillScreen(BLACK);
for(int x = 0; x < 10 ; x++) { //put all data in the Array COUNTS to 0 (Array positionsrun from 0 to 10;?
COUNTS[x] = 0; //10 positions covering a period of 10 seconds
}

attachInterrupt(0, IMPULSE, FALLING); //define external interrupton pin D2/INT0 to start the interupt routine IMPULSE (green wire)

display.drawRect(0,0,96,64,WHITE);
display.setCursor(4,4);
display.setTextColor(RED);
display.setTextSize(2);
display.print("CPM");
display.setCursor(50,4);
display.setTextSize(1);
display.print("10 sec");
display.setCursor(50,12);
display.print("window");

display.setCursor(4,38);
display.setTextSize(1);
display.setTextColor(GREEN);
display.print("uSv/hr");

display.drawRect(0,48, 96, 16, YELLOW);
}
////////////////////////the loop code that follows,will run repeatedly until "Power Off" or a RESET/////////
void loop()
{
unsignedlong currentMillis= millis();
if(currentMillis - previousMillis >LOGtime)
{
previousMillis = currentMillis;
COUNTS[t] = Counts;
for (int y = 0; y < 10 ; y++) { //add all data in the Array COUNTS together?
TenSecCPM = TenSecCPM + COUNTS[y]; //and calculate the rolling average CPM over a 10 secondperiod
}
AVGCPM = 6* TenSecCPM;
TenSecCPM = 0;
t++ ;
if (t > 9) { t = 0 ;}

//Serial.print ("COUNTS "); Serial.print(t);Serial.print (" = ");Serial.println (COUNTS[t]);
display.fillRect(4,20,90,17,BLACK); // clear the CPM value field on the display
display.setCursor(4,20);
display.setTextColor(RED);
display.setTextSize(2);
display.println(AVGCPM);
//Serial.print ("AVGCPM = "); Serial.print(AVGCPM); //Serial.print (" CPM = "); Serial.println(CPM);
display.fillRect(45,38,50,10,BLACK); //clear the uSv/Hr value field on the display
display.setCursor(45,38);
display.setTextColor(GREEN);
display.setTextSize(1);

Sievert = (AVGCPM /151.0) ; //Serial.print (" Sievert = ");Serial.println (Sievert);
units = int (Sievert); //Serial.print ("units = "); Serial.println(units);
tens = int ((10*Sievert) - (10*units)); //Serial.print ("tens = "); Serial.println(tens);
hundreds = int ((100*Sievert) - (100*units) - (10* tens)); //Serial.print ("hundreds = "); Serial.println(hundreds);
thousands = int ((1000*Sievert) - (1000*units) - (100*tens) - (10*hundreds)); //Serial.print ("thousands ="); Serial.println (thousands);
display.print (units); display.print("."); display.print (tens); display.print (hundreds);display.println (thousands);

display.fillRect(1,49,94,14,BLACK); // clear the CPM indicator field on the display
display.fillRect(1,49,Counts,14,RED); //fill the CPM indicator field on the display

Counts = 0;
}
}
//////////////////END ofLOOP////////////////////////////////////
/////////////////////////////////Hereafter follows the Function for counting the number of impulses from Geiger Counter kit
void IMPULSE()
{
Counts++;
}
代碼中最重要的部分是中斷函數,當測量到 Geiger Counter 的 GM 管上的脈沖會觸發 Geigercounter 的 INT 輸出(通過使其在短時間內變為低電平)時調用。INT信號連接到引腳D2(Arduino Nano的外部中斷引腳INT0):

attachInterrupt(0, IMPULSE, FALLING);

INT 信號將啟動中斷程序 IMPULSE () 以將 Counts 增加 1:

void IMPULSE() {Counts++ ; }

經過 1000 ms后:

整數 Counts 被放回 0

數組 COUNTS [ ] 填充了過去 1000 毫秒內測量的計數數

過去 10 秒的總計數是通過將數組 COUNTS [ ] 中的所有數字相加并乘以 6 以在顯示屏上顯示 CPM 值來計算的。

以 μSv/hr 表示的劑量當量是通過 CPM 值除以 151 計算得出的(該值可在文獻中找到)。

在彩色 OLED 顯示屏上,根據過去一秒的計數值顯示一個紅色條,因此實際上呈現的是 CPS 值(每秒計數)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2259

    瀏覽量

    94810
  • 手持式儀器
    +關注

    關注

    0

    文章

    5

    瀏覽量

    5755
  • OLED顯示屏
    +關注

    關注

    6

    文章

    218

    瀏覽量

    30736
  • 3D打印
    +關注

    關注

    26

    文章

    3557

    瀏覽量

    109305
收藏 人收藏

    評論

    相關推薦

    制作蓋革計數器用多大功率的電阻?

    `看到發燒友上的帖子,在蓋革計數器制作中遇到了一個問題,應該用多大功率的電阻?因為蓋革管,需要400伏電壓。電路中也有3伏的電壓。所以應該選用多大功率的電阻呢`
    發表于 09-19 06:51

    手持式粒子計數器在半導體潔凈室內有何作用?

    手持式粒子計數器在半導體潔凈室內有何作用?
    發表于 06-07 06:27

    蓋革計數器電路圖

    蓋革計數器電路圖
    發表于 04-08 08:39 ?2669次閱讀
    <b class='flag-5'>蓋革計數器</b>電路圖

    靈敏的蓋革計數器電路圖

    靈敏的蓋革計數器電路圖
    發表于 04-08 08:40 ?1822次閱讀
    靈敏的<b class='flag-5'>蓋革計數器</b>電路圖

    蓋革計數器

    蓋革計數器
    發表于 09-17 17:47 ?1252次閱讀
    <b class='flag-5'>蓋革計數器</b>Ⅰ

    蓋革計數器

    蓋革計數器
    發表于 09-17 17:48 ?1486次閱讀
    <b class='flag-5'>蓋革計數器</b>Ⅱ

    蓋革計數器電路圖

    蓋革計數器電路圖由三極管,變壓,以及晶體耳機接口,蓋革計算管CV2249組成。供電電源為正負9V。
    發表于 12-17 20:27 ?1.5w次閱讀
    <b class='flag-5'>蓋革計數器</b>電路圖

    美國AIRY 手持式粒子計數器 - Model P611的性能

    粒子計數器P611用于測量流速在0.1 CFM (2.83 LPM) 粒徑為0.3~ 10μm 的粒子。本手持式粒子計數器僅重1.26 lb (0.57 kg) 設計人性化且設置簡單。可在其3.5
    發表于 11-06 15:20 ?6次下載

    制作簡易蓋革計數器

    蓋革計數器一種專門探測電離輻射(α粒子、β粒子、γ射線和X射線)強度的記數儀器。由充氣的管或小室作探頭,當向探頭施加的電壓達到一定范圍時,射線在管內每電離產生一對離子,就能放大產生一個相同大小的電脈沖并被相連的電子裝置所記錄,由此測量得單位時間內的射線數。
    的頭像 發表于 05-21 17:27 ?1.9w次閱讀

    Arduino蓋革計數器DIY圖解

     Geiger計數器反復給你相同的計數并不罕見,所以檢查一下輻射源。我使用來自Americium的輻射測量,來自煙霧探測的離子室。煙霧傳感利用Americ作為α粒子的來源,使空氣中
    的頭像 發表于 11-06 17:35 ?2.1w次閱讀

    手持式粒子計數器MD331的功能特點和應用場景

    美國Temtop樂控PMD 331是一款手持式粒子計數器, 價格適中易于使用,應用于監測0.3至10μm的粒子。廣泛適用于過濾器測試、室內空氣質量、粉塵監測、潔凈室監測等多應用場景。
    的頭像 發表于 10-25 14:11 ?2095次閱讀

    蓋革計數器原理_蓋格計數器的作用

    蓋革管的全稱是蓋革-米勒管(G-M tube),是由盧瑟福(Ernest Rutherford,就是高中物理課本里那個提出“有核原子模型”的人)和德國物理學家蓋革(Hans Geiger)于1908
    發表于 12-09 14:38 ?2.3w次閱讀

    手持式激光塵埃粒子計數器介紹

    手持式激光塵埃粒子計數器【恒美Y09-3016】是恒美電子科技設計與研發的一款儀器,儀器高靈敏度、檢測速度快。
    發表于 09-14 10:22 ?2662次閱讀

    可定制的蓋革穆勒計數器制作

    電子發燒友網站提供《可定制的蓋革穆勒計數器制作.zip》資料免費下載
    發表于 06-12 10:51 ?3次下載
    可定制的<b class='flag-5'>蓋革</b>穆勒<b class='flag-5'>計數器</b><b class='flag-5'>制作</b>

    實時監測核輻射有“高招”—用行空板DIY桌面蓋革計數器

    輻射監測對我們的健康與安全至關重要,而自制蓋革計數器成為一種實時監測輻射的有效工具。本文介紹如何使用開源平臺—行空板來DIY桌面蓋革計數器,從而便捷地實時監測環境中的輻射水平。 核輻射通常指來自
    的頭像 發表于 09-22 10:05 ?1150次閱讀
    主站蜘蛛池模板: 免看乌克兰a一级| 天天狠狠色噜噜| 日本四虎影院| 中文字幕1页| xxx黄色片| 九九精品在线| 午夜影院在线观看| 国产香港日本三级在线观看| 全国男人的天堂天堂网| 天堂免费在线视频| 色多多视频在线观看| 午夜久久免影院欧洲| 综合网 色天使| 亚洲video| 亚洲bt天堂| 色播五月激情五月| 美女黄页免费| 农村的毛片丨级| 狠狠涩| 久久亚洲精品成人综合| 欧美一级片观看| 久久88色综合色鬼| 黄色网址大全免费| 久久夜色撩人精品国产| 国产日本三级在线播放线观看 | 午夜寂寞影视| 亚洲男人天堂2021| 中文字幕一区二区三区免费视频| 35pao免费视频| 在线看黄网| 欧美一级淫片免费播放口| 波多野结衣久久精品| 国产成人mv 在线播放| 国产三级日本三级日产三级66| 欧美成人午夜影院| 加勒比在线视频| 久久国产美女| 看黄网站在线看| 午夜欧美在线| 天天视频国产精品| 久久青草国产免费观看|