当前位置: 首页 > 传感测量产品 > 工业传感器 > 光电传感器

类型分类:
科普知识
数据分类:
光电传感器

光电传感器 单片机:51单片机+ST188光电传感器心率脉搏检测程序+电路图

发布日期:2022-10-09 点击率:97


光电传感器 单片机:51单片机+ST188光电传感器心率脉搏检测程序+电路图  第1张

光电传感器 单片机:51单片机+ST188光电传感器心率脉搏检测程序+电路图

使用时把右手食指指肚放在st188反射式红外传感器上,放置合适时会看到指示灯随心跳同时闪动,如果没有闪烁请适当调节手指压力,调节完后在测试过程中手指压力不要变,保持稳定,当指示灯有规律闪烁时表示信号正确。当单片机检测到大约第五次信号时开始显示这五次信号算出的平均心率。当超过大约1.5秒没有检测到信号,清除心率。
如果手指抖动或者不稳定会看到指示灯乱闪,这样测得的数据不准,在测试过程中保持稳定!
1:初始化液晶和定时器
2:检测外部中断,并记录中断时间间隔
3:当有超过5个符合要求的时间记录,算出5个时间的平均值和对应的60s的心率并显示
4:当超过1.5s没有检测到中断发生停止显示
2-3-4循环
电路原理图如下:
单片机源程序如下:
#include

if(displayOK==1)
{
rate=/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5);
LCD_write_char(5,1,rate/100+48);
LCD_write_char(6,1,(rate%100)/10+48);
LCD_write_char(7,1,rate%10+48);
}
DelayMs(300);
}
}
void ex0() interrupt 0
{
EX0=0;//暂时关外部中断
if(timecount

光电传感器 单片机:基于51单片机的红外反射式光电传感器测速机的简易设计

光电传感器——基于红外反射式的测速机
引言
在工程实践中,经常会遇到各种需要测量转速的场合。转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。迄今为止,测速可分为两类:模拟电路测速和数字电路测速。随着微电子技术的发展,计算机技术的广泛应用,出现了以计算机为核心的数字测速装置。这样的速度测量装置测量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的快速性、精确性和优越性。

一:设计思路
用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。当检测到物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。由此,我想到用一个比较器来比较两种接受到的信号,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。

二:所需模块
本测速系统共有两个模块构成,一个为光电传感器部分,用于接收光信号并转换为电信号,即高低电平信号;另一个为单片机部分,用于接收高低电平信号并通过内部计算,然后再通过数码显示管显示测出的结果。
光电传感器部分
(1)LM339工作原理及管脚图:
LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。
两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压,当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压高于“+”端时,输出管饱和,相当于输出端接高电位。两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。
LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。选不同阻值的上拉电阻会影响输出端高电位的值。因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。
下图(1a)给出了一个LM399的基本单限比较器。输入信号Uin为待比较电压,把它加到同相输入端,在反相输入端接一个参考电压(门限电平)Ur。当输入电压Uin>Ur时,输出为高电平UOH。图(1b)为其传输特性。图(1c)为LM339的管脚图。

(c)
图(1)LM339工作原理图及管脚图

(2)整体连线图:如下图(2)所示:

图(2) 比较型光电传感器整体电路图
在上图中, LED灯相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。

单片机部分
(1)单片机外部连线图:如下图(3)所示
图(3)单片机连线图
在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。单片机型号选89C51或89C52都行。在试验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统。
(2)单片机内部主程序流程图
主程序是控制单片机系统按照预定的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能。在本实验中,未涉及到键盘命令。
本系统的主程序流程如下图(4)所示。

图(4)主程序流程图           图(5)外部中断0 中断程序流程图
在该测速系统的程序中,主程序执行的过程中共执行了3 个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断。图(5)所示为外部中断0 中断程序流程图。外部中断0 中断程序主要用于测速起始。当测速开始时,执行外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否开启,若没有开启则开启,再判断1S 定时到了没有,若1S 定时到计算转速,并关INT0、T0、T1 软件清零。
图(6)为T0 中断程序流程图。T0 对内部时钟脉冲计数, T0 为8 位定时器,1S 定时的内部时钟脉冲超过了T0 上限,故采用软件延时计数。图(7)为T1 中断程序流程图,T1 定时1S, 当一秒定时到,则置位标志位。

图(6)T0 中断程序流程图           图(7)T1 中断程序流程图

三:测速原理
首先,选一小型直流电机,在其轴上固定一张圆形硬纸片,以此来代替被测物。其次把此圆形纸片平均分成6等分,并把其中的三块涂黑(具体见实物)。再次,用光电管正对圆形纸片。最后,启动整个系统就可以进行测速了。
因为当红外线照到面黑色时,反射光很弱,接收端检测到的光线可以忽略,当照到白色面时,反射光强烈,发射端发射的红外线几乎被接收端全部接收,因此,检测到的信号经过比较电路输出后,会给单片机输入高低两种电平。所以,在编程中,假定在1S时间内共检测到n个低电平信号,那么此电机的转速为

四:整体电路图及实物图
见附一图所示。

五:所需器件
名称
型号
个数
价格
51单片机
STC89C51RC
1件
9元
光电管

1套
5元
四电压比较器
LM339
1件
1.5元
四位数码显示管
12管脚
1件
5元
1/4电阻
0.47K,1K,3.3K,10K,
各10个(备用)
0.8元
电位器
103(10K)
2个
1元
瓷片电容
22PF,104(100nF)
各10个(备用)
2元
万用版

1块
3元
电池盒

1个
1元
PIC座
20,40脚
(2+1)个
1元
排针
40PIN
2排
1元
晶振
12M
1个
1元
复位开关

1个
0.1元
LED灯

5个
0.5元
共计:
31.9元

六:总结
本设计的光电传感器测速机能够快速检测到电机横截面上的黑白相间的面,并通过单片机编写测速程序,用数码管显示。但本设计的测速系统的整体性能只能满足一般小型电机和一些要求不高的测速,并且在其测速时,还需要在被测物上安装一个黑白相间的圆盘,这对某些被测物体来说是不太好实现的,即其是存在一定的局限性的。除此之外,其精确度也不尽完美。
但整体来说,此测速系统还是具有可行性的。当我们需要知道某电机的转速而又缺少测速装置时,就可以用此套系统来进行测速。它的简单性,方便性和快捷性也是某些测速装置不可比拟的。至于其缺点,由于设计者水平目前有限,暂不能完美解决,只待以后对此方面有较多理解后在解决,同时也希望对此精通的师生给予指点,从而进行改进测速方法,提高整个系统的测速性能。

附一:整体电路图
附二:程序源代码
#include
#define uint unsigned int
uint temp,qian,bai,shi,ge,aa,n;
sbit dula=P0;
sbit wela=P1;
sbit zd=P3^2;
uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void display(uint qian,uint bai,uint shi,uint ge);
void delay (uint z);
void init();

void main()
{
 EA=1;//开总中断
 EX0=1;//开外部中断0
 init();//初始化子程序
 while(1)
 {
display(qian,bai,shi,ge);
 }
}

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display(uint qian,uint bai,uint shi,uint ge)
{
 P0=table[qian];
 P1=0xf7;
 delay(1);

P0=table[bai];
 P1=0xfb;
 delay(1);

P0=table[shi];
 P1=0xfd;
 delay(1);

P0=table[ge];
 P1=0xfe;
 delay(1);
}

void exter0() interrupt 0
{
n++;
 while(zd==0);
}

void init()
{
 wela=0;
 dula=0;
 temp=0;
 TMOD=0x01;
 TCON|=0x04;
 TH0=(-)/256;
 TL0=(-)%256;
 EA=1;
 ET0=1;
 TR0=1;
}

timer0() interrupt 1
{
 TH0=(-)/256;
 TL0=(-)%256;
 aa++;
 if(aa==20)
 {
aa=0;
temp=20*n;
n=0;
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整论文下载(word格式 可编辑):
基于51单片机的红外反射式光电传感器测速机的简易设计.doc
(9.44 MB, 下载次数: 611)
2017-7-1 21:14 上传
点击文件名下载附件
计算器
评分
参与人数 2黑币 +10
收起
理由
啧啧啧啧啧啧啧
+ 5
赞一个!
多德
+ 5
很给力!
查看全部评分

光电传感器 单片机:基于单片机的光电传感器

?

1
方案一原理图
?
?
如上图所示是方案一,采用纯模电硬件电路设计,所设计的电路没有控制模
块功能,
只能通过光敏电阻检测当前的环境光强是否符合一个定值之下,
若光强
低于设定值则蜂鸣器蜂鸣和
LED
闪而报警。此方案虽然输入光强定制可以调节,
但是检测灵敏度不高且不可以读出当前的光强以及电阻。
因此应用不强,
不符合
一般的应用,所以本系统设计不采用。
?
?
?

2
方案二原理图
?
如上图是方案二,也是本系统所采用的方案。
?
?
本方案通过光敏电阻检测周围的光强变化,
通过
ADC0832
将模拟数据转换为
光电传感器 单片机:51单片机+ST188光电传感器心率脉搏检测程序+电路图  第2张

光电传感器 单片机:系统功能

单片机:基于STC89C52RC单片机制作的红外循迹小车(4个传感器)
个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器检测不同颜色来执行相应的操作,本例是以白底黑线为例。
小车跑道是恩智浦跑道,边缘是五厘米宽的黑线,用于检测识别,由于明年要参加第十五届恩智浦,所以先从51学起
我们先来看看小车所用的材料(硬件部分):
1.小车车壳是亚克力板材质,(后来发现很容易裂开,还不如用块木板)。

2.红外传感器:该传感器对环境光线适应能力强,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,绿色指示灯会亮起,可调节灵敏度,干扰小,可采用3-5V直流电源供电。两边各两个,根据检测的黑白色来执行前进,后退,停止。
连接方式:VCC-VCC,GND-GND,OUT-IO

3.驱动:驱动选用L298N,用L298N驱动模块驱动两个直流减速电机。引脚A,B可用于PWM控制。如果直行前进,则可将IN1,IN2和IN3,IN4两对引脚分别接高电平和低电平,仅用单片机的两个端口给出PWM信号控制使能端A,B即可实现直行,转弯,加减速等动作。
接线:ENA,ENB(使能端)——IO
IN1,IN2,IN3,IN4——IO
两侧端口分别连接电机引脚。

4.电池:电池采用的是3000mAh,11.1v的锂电池,

5.使用STC98C52RC芯片,本来自己焊了一个51最小系统,感觉调试的时候比较麻烦,所以用的现成的,取放芯片也方便。
6.前面加了舵机和超声波避障,结果发现没多大用,循迹就可以完成,我就暂且没用它。后面加了两个尾灯,通电后常亮。
我们来看一下整体布局(个人感觉不太好,线有点多,只简单用扎带扎起来)

我们来看看软件部分:
通过控制左右电机运动状态来控制小车。
1.定义正反转和占空比:

2选择定时器:

3.中断:

4.前进,左转,右转(因为没有障碍区,所以没有写后退函数,当然写的话也挺简单)

5.四个传感器判断前进或转向(这个我先注释了,后面还有两个传感器函数,参见6)

6.两个传感器判断状态

7.通过信号短检测到的三种情况来执行不同状态函数

8.主函数

9.最后给大家看一下全程序(调速还不是很好,转弯有点卡顿,还请大神多多指教qq:)

下一篇: PLC、DCS、FCS三大控

上一篇: 电气控制线路图控制原