脈拍計 pulse meter : PIC12F1822, photo interrupter

Photoelectric sensor, RC high-pass filter, PIC MCU (Micro Controller Unit) の勉強に、トラ技 Jr. 2013年11・12月に掲載の脈拍計の制作が大変有用であった。オシロスコープ PicoScope3204 で確かめながらの楽しい工作実験であった。脈拍計は、多くの方のサイト・ブログで取り上げられているので、情報は容易に入手できる。稿末に参照書籍と製品を記した。

Revision on January 11, 2015



The pulse meter code compiled by XC8 is working on my PIC12F1822 board.

LCD ( I2C, 3.3v : Strawberry Linux ) 制御は電子工作の実験室 ( http://www.picfun.com/p12frame.html ) の関数を使用。

上段に2拍毎に周期から脈拍を推計して表示。

下段に連続6拍から得られる3つの値の平均値を表示。

ケースは百円ショップのゲーム機用ハードカバーを使用。

<< プログラムの概要 >>

1) フォトリフレクタの電位をオペアンプで増幅して、PIC外部割り込み信号とする (RA2/INT)。

2) 割り込み処理でタイマをON/OFFする。

3) タイマで内部クロックから生成した信号をカウントして、脈拍の周期、1分間の脈拍数を算出する。

内部クロック Fosc = 500kHz、タイマー1 prescaler 1/8;
タイマ1入力信号の周波数 = Fosc/4/8 = 500000/32 = 15625 <Hz>;
タイマ1入力信号の周期  = 1/15625 </秒>;
脈の周期 = カウント数 / 15625 </秒>;
脈拍=60秒/脈の周期 = 60×15625/(TMR1H * 256 + TMR1L) = 937500/(TMR1H * 256 + TMR1L) <beat per minute>

<< 参照回路 >>

<< 考察 >>

指先の微かな動きでもカウント・ロスが起きるので正確な脈拍計測は難しい。従って、波間時間(周期)から1分間の脈拍を推計し、連続する3回程度の推計値を平均した値を採用するのが現実的。最終的には、LEDの点滅リズムから、表示される脈拍数の妥当性を判断する医療経験が必要である。期外収縮が頻発する場合や絶対性不整脈では1分間の脈拍を計測しなければならない。

<< 参照 >>

1)    トラ技 Jr. 2013年11・12月:光でセンシング!ドキドキ脈拍計

2)    ボクのArduino工作ノート(株式会社ラトルズ):指先脈拍計

3)    東京デバイセズ ( https://tokyodevices.jp/items/3 ):マニュアル