STM32利用光敏二极管实现光度测量
????????最近我們在開發(fā)臭氧發(fā)生器時(shí),需要監(jiān)測生成的臭氧的濃度,于是想到使用光度計(jì)來測量。因?yàn)椴煌瑵舛鹊某粞鯇艿奈兆饔檬遣幌嗤?#xff0c;于是檢測光照強(qiáng)度的變化就可以得到相應(yīng)的濃度數(shù)據(jù)。
1、硬件設(shè)計(jì)
????????此次光照度檢測我們選用了S1336-5BQ光電點(diǎn)二極管,其光譜響應(yīng)范圍為:190~1100nm范圍。而我們的光源波長則在254nm最顯著,包括其它600nm以內(nèi)的光波,這個(gè)好處于測量范圍之內(nèi)。
????????根據(jù)相關(guān)的資料,光電點(diǎn)二極管S1336-5BQ的每100lx的光照對應(yīng)有5μA的電流。于是我們可以據(jù)此設(shè)計(jì)一個(gè)電路,將電流的變化改變?yōu)殡妷鹤兓?#xff0c;具體原理圖設(shè)計(jì)如下:
????????上圖中我們采用5V電源,為了檢測方便調(diào)零,我們將基準(zhǔn)電壓上抬到2.5V(圖中的Vmid)。這樣我們根據(jù)測量范圍的要求將R5的值更換為精確的值就好了,讓輸出范圍在2.5V到5V之間。這樣我們就可以將其作為輸入信號接入到ADC中。在ADC前端加一些必要的保護(hù)就可以了,具體如下圖所示:
????????上圖只是對輸入信號做了保護(hù),如果需要也可以放大縮小等處理,從而符合ADC輸入的要求。
2、軟件設(shè)計(jì)
????????前面我們描述了硬件電路,該電路在要求不高時(shí)是非常方便的。接下來我們根據(jù)上述電路來分析并設(shè)計(jì)軟件。根據(jù)上面的電爐我們可以得出輸出電壓的變化公式為:Vout=Isc*R5+Vmid。
????????而Vmid正好為Vcc的一半,Vout可以通過ADC測量出來,于是公式就可以變化為:Isc=(Vout-Vcc/2)/R5。
????????而對于該光電二極管的特性是5μA/100lx,于是計(jì)算得到光照強(qiáng)度,公式可修改為:光照強(qiáng)度lux=((Vout-Vcc/2)/R5)*2*107。據(jù)此公式來編寫軟件就非常容易了。
/*計(jì)算光照強(qiáng)度*/ float CalcLxIllumination(LuxObjectType *lm,float mVoltage) {float lux=0.0;lux=(mVoltage-lm->vref)*100/(lm->rnf*lm->isc100lux);lm->lux=lux;return lux; }/* 光度檢測對象初始化 */ void LuxInitialization(LuxObjectType *lm,float isc,float vref,float rnf) {if(lm==NULL){return;}lm->lux=0.0;lm->isc100lux=isc;lm->rnf=rnf;lm->vref=vref; }歡迎關(guān)注:
總結(jié)
以上是生活随笔為你收集整理的STM32利用光敏二极管实现光度测量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速实现一个室内空气质量检测仪
- 下一篇: grubbs检测c语言,Grubbs算法