99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內不再提示

制作手持式蓋革計數(shù)器的教程

科技觀察員 ? 來源:Pedro52 ? 作者:Pedro52 ? 2022-08-18 16:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

poYBAGL98_-AD_iEAARuPYb2qW8067.png

項目是在我買了一個現(xiàn)成的 Geiger 計數(shù)器套件之后開始的。

poYBAGL98_uAMPwPAADwCyaH4S8383.png

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

poYBAGL98_iAOiMfAATLakSbKyI707.png

第 1 步:系統(tǒng)設計

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

pYYBAGL98_OARkQyAAEtIFVahUc429.png

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

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

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

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

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

poYBAGL98--ARwwRAADGJELVMz0239.png

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

pYYBAGL98-uAaspGAABbC_B6hdw483.png

完全組裝的版本:

poYBAGL98-iAfodFAAIIG-qQl2A024.png

第 2 步:制作蓋革計數(shù)器組件

使用以下材料:

Arduino NANO 1

蓋革計數(shù)器套件 1

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

Micro USB 充電器板 18650 電池 1

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

晶體管 BC547 1

蜂鳴器-12MM 1

電阻 1k Ohm 1

電子設計

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

pYYBAGL98-KAJr6pAAJRDqxY5NE225.png

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

pYYBAGL989uAWiSoAANKhTSt4n8799.png

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

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

pYYBAGL989aAMlMVAAUXjK16XeY850.png

組裝

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

pYYBAGL989GAAk5RAAht52oP0rA203.png

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

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

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

第 3 步:軟件設計

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

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++;
}
代碼中最重要的部分是中斷函數(shù),當測量到 Geiger Counter 的 GM 管上的脈沖會觸發(fā) Geigercounter 的 INT 輸出(通過使其在短時間內變?yōu)榈碗娖剑r調用。INT信號連接到引腳D2(Arduino Nano的外部中斷引腳INT0):

attachInterrupt(0, IMPULSE, FALLING);

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

void IMPULSE() {Counts++ ; }

經(jīng)過 1000 ms后:

整數(shù) Counts 被放回 0

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

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

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

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

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

    關注

    32

    文章

    2291

    瀏覽量

    96440
  • 手持式儀器
    +關注

    關注

    0

    文章

    5

    瀏覽量

    5857
  • OLED顯示屏
    +關注

    關注

    6

    文章

    218

    瀏覽量

    31603
  • 3D打印
    +關注

    關注

    27

    文章

    3590

    瀏覽量

    112607
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    蓋革計數(shù)器電路圖

    蓋革計數(shù)器電路圖
    發(fā)表于 04-08 08:39 ?2789次閱讀
    <b class='flag-5'>蓋革計數(shù)器</b>電路圖

    靈敏的蓋革計數(shù)器電路圖

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

    蓋革計數(shù)器

    蓋革計數(shù)器
    發(fā)表于 09-17 17:47 ?1312次閱讀
    <b class='flag-5'>蓋革計數(shù)器</b>Ⅰ

    蓋革計數(shù)器

    蓋革計數(shù)器
    發(fā)表于 09-17 17:48 ?1531次閱讀
    <b class='flag-5'>蓋革計數(shù)器</b>Ⅱ

    蓋革計數(shù)器電路圖

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

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

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

    制作簡易蓋革計數(shù)器

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

    Arduino蓋革計數(shù)器DIY圖解

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

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

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

    蓋革計數(shù)器原理_蓋格計數(shù)器的作用

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

    手持式激光塵埃粒子計數(shù)器介紹

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

    可定制的蓋革穆勒計數(shù)器制作

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

    實時監(jiān)測核輻射有“高招”—用行空板DIY桌面蓋革計數(shù)器

    輻射監(jiān)測對我們的健康與安全至關重要,而自制蓋革計數(shù)器成為一種實時監(jiān)測輻射的有效工具。本文介紹如何使用開源平臺—行空板來DIY桌面蓋革計數(shù)器,從而便捷地實時監(jiān)測環(huán)境中的輻射水平。 核輻射通常指來自
    的頭像 發(fā)表于 09-22 10:05 ?1833次閱讀