網上買的心率計模塊把手指放上去時會有幾百毫伏的電壓變化,
我用STC15W4K58S4單片機的10位AD取樣時它的值在4百幾到6百幾之間,有時換其它人的手指時電壓跳動會小一點。
想用對比法去求低-高-低值變化,卻總是會出錯。
有時跳一下檢測兩次,有時跳兩下才檢測到一次。
求助這個思路要怎樣去寫程序。是不是要用軟件濾波去做優化檢測?
a1=GetADCResult(0);//取樣值
Delayms(3); //延時
a2=GetADCResult(0);//取樣值
Delayms(3); //延時
a3=GetADCResult(0);//取樣值
Delayms(3); //延時
a4=GetADCResult(0);//取樣值
Delayms(3); //延時
a5=GetADCResult(0);//取樣值
if(a1<a2+10 && a2<a3+10 && 10+a3>a4 && 10+a4>a5){LED=1;}//低-高-低電平時為檢測到心跳
else {LED=0;}
131841809.jpg (23.2 KB, 下載次數: 119)
下載附件
2017-3-11 17:02 上傳
IMG_20170310_125623.jpg (83.39 KB, 下載次數: 94)
下載附件
2017-3-11 17:02 上傳
IMG_20170311_154517.jpg (86.31 KB, 下載次數: 110)
下載附件
2017-3-11 17:02 上傳
無標題.png (35.83 KB, 下載次數: 114)
下載附件
2017-3-11 17:03 上傳
IMG_20170311_163801.jpg (23.24 KB, 下載次數: 87)
下載附件
2017-3-11 17:03 上傳
|