这几天参加一个比赛,我做的是一个测量人体脉搏波的小东西,尽管不复杂,但是调试过程中的问题还是不少的,总结了一下,拿来和网友分享,欢迎拍砖哦!
下面的电路是用光电法采集脉搏信号的第1级电路----流压转换电路
很简单的电路,运放是单电源供电的,看得出来问题在哪里吗?这个电路没有任何的输出,因为光敏二极管接反了,导致光生电流的流向是与实际需要正好相反,所以应该把D7的正极接到运放的同相端才对,还有同相端为什么不直接接地,因为这是为了给同相端提供偏压,可想而知,如果反向端的电压始终高于同相端,那放大器的最终输出始终为负值,而系统是单电源供电的,也就是说最终输出始终为0,根本无法输出信号。
再者用示波器观察到的信号受到50hz工频干扰十分严重,如下图
分析原因,可能是第一级电路没有采用差分输入的形式,导致50hz的共模信号没有得到较好的抑制,但也没办法了,电路都做好了,也懒得改了,好在50hz的信号比人体脉搏信号频率高很多,比较容易处理,送单片机进行数字滤波,效果还不错。
还有一个小小的蜂鸣器,竟然出问题,我以前都是用NPN管子驱动,但是这次就是驱动不起来,没有声音输出, 三极管和蜂鸣器都换过了,无济于事,找了好久的原因,后来改成用PNP驱动才能正常工作。
而且单片机管脚内部已经提供了上拉电阻,分析原因可能是单片机的管脚输出电流太小了,改成PNP则不涉及这样的问题。
程序方面,因为我是将430的程序向51单片机移植的,程序用过很多次,都没有问题,但移植过来,不奏效,编译提示缺少分号/括号之类的错误,甚是无奈,后来无意中发现,在51中data 是一个关键字,而我的程序中定义了一个名为data的变量,int data,显然,在51中这是错误的,编译器会认为缺少了变量名。
开卷有益,开贴亦有益,送人玫瑰,手有余香。If everone does a little, we can make a big different.