欣赏简单有趣的心率测量仪DIY作品(附代码)
这个小东西既简单又有趣,可以用作引入微控制器的课程设计。
将食指轻轻放在传感器上,您可以看到LED指示灯随着心跳闪烁,15秒后,您当前的心率也可以显示在数码管上。
核心部分在传感器上,这里是一组红外对管。
人体指尖的动脉相对发达。
当动脉和血管周期性收缩并与心脏扩张时,血管中的血容量也会发生变化。
此时,将红外接收探头可以采集到的相应的光脉冲信号在经过消噪和放大后发送到单片机,从而获得心率数据。
采集部分的原理图和显示部分的原理图MCU代码/ *项目:通过指尖测量心率版权所有@ Rajendra Bhatt 2011年1月18日PIC16F628A在4.0 MHz外部时钟下,已启用MCLR * / sbit IR_Tx在RA3_bit; sbit DD0_Set在RA2_bit;位RA1_bit的DD1_Set的位;位RA0_bit的DD2_Set的位;位RB7_bit开始的位;无符号short j,DD0,DD1,DD2,DD3;无符号短脉冲率,pulsecount;无符号int; // -------- ---用于返回共阳极7段屏蔽的功能。
displayunsigned short mask(unsigned short num){switch(num){情况0:返回0xC0;情况1:返回0xF9;情况2:返回0xA4;情况3:返回0xB0;情况4:返回0x99;情况5:返回0x92;情况6:返回0x82;情况7:返回0xF8;情况8:返回0x80;情况9:返回0x90;} //情况结束} void delay_debounce(){Delay_ms(300);} void delay_refresh(){Delay_ms(5) ;} void countpulse(){IR_Tx = 1; delay_debounce(); delay_debounce(); TMR0 = 0; Delay_ms(15000); //延迟1 SecIR_Tx = 0; pulsecount = TMR0; pulserate = pulsecount * 4;} void display(){DD0 = p ulserate%10; DD0 = mask(DD0); DD1 =(pulserate / 10)%10; DD1 = mask(DD1); DD2 =脉搏频率/ 100; DD2 = mask(DD2);对于(i = 0; iDD0_Set = 0; DD1_Set = 1; DD2_Set = 1; PORTB = DD0; delay_refresh(); DD0_Set = 1; DD1_Set = 0; DD2_Set = 1; PORTB = DD1; delay_refresh(); DD0_Set = 1; DD1_Set = 1; DD2_Set = 0; PORTB = DD2; delay_refresh();)DD2_Set = 1;)void main(){CMCON = 0x07; //禁用比较器TRISA = 0b00110000; // RA4 / T0CKI输入,RA5仅I / P TRISB = 0b10000000; // RB7输入,其余输出OPTION_REG = 0b00101000; //预分频器(1:1),TOCS = 1 for counter modepulserate = 0; j = 1; display(); do(if(!start)(delay_debounce(); countpulse(); j = 3; display(); }}而(1); //无限循环} HEX代码:020000001B29BA:100006002428C03083120313F0000800F930F000F2:100016000800A430F0000800B030F0000800993065:10002600F00008009230F00008008230F00008006E:10003600F830F00008008030F00008009030F00042:100046000800831203132A08003A031904282A0811:10005600013A031909282A08023A03190C282A0822:10006600033A03190F282A08043A031912282A0802:10007600053A03 1915282A08063A031918282A08E2:10008600073A03191B282A08083A03191E282A08C2:08009600093A031921280800B2:0E009E008312031321088A0020088200080044:1000AC0083120313F8010830FC00700DF80D74086E:1000BC00F80203186328F8070310F00DFC0B5B28FB:0200CC0008002A:1000CE00831203137008F100F0010830FC00710870:1000DE00F40C03187628FC0B6F28F1010034031082: 1000EE007B28F40C0318F107F10CF00CFC0B7828AC:0200FE000800F8:100100000D3083120313FC00FB30FD00FD0B86282D:0A011000FC0B862800000000080028:10011A0004 3083120313FB000C30FC003330FD0063:10012A00FD0B9528FC0B9528FB0B95280000000079:02013A000800BB:10013C004F208A110A128000840AA00A0319A10A0E:08014C00F003031D9E280800CA:100154008312031385158D208D2081019930FB00B6:100164003130FC00A230FD00FD0BB628FC0BB62894:10017400FB0BB628000085110108A3002308A20088:0A018400A20D2210A20D22100800A7:10018E000A3083120313F4002208F0005620780878:10019E00F0007008A9007008AA0003207008A900DA:1001AE000A30F4002208F00056200A30F4005620DF:1001BE007808F0007008A8007008AA0003207008E4:1001CE00A8006430F4002208F00056207008A600 43:1001DE007008AA0003207008A600A401A501270834:1001EE00F000B430F400672025087102031D0129C8:1001FE0024087002031C19290511851405142908F9:10020E00860080200515851005142808860080209C:10021E00051585140510260886008020A40A0319EA:08022E00A50AF62805140800DA:100236000730831203139F00303083168500803009:100246008600283081008312A2010130A700C72052:10025600861B32298D20AA200330A700C7202B2910:0202660033293A:02400E006A2125 :00000001FF资料来源:PCB著名兄弟属于原作者,如果侵权,请联系已删除。
免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!