对射式红外传感器模块(测速传感器模块)

产品特性:

        使用ITR9606高灵敏度槽型光耦器件,它由一个红外发光二极管和一个NPN光电三极管组成,槽宽度为5mm。传感器特设M3固定安装孔,调节方向与固定方便易用,使用宽电压LM393比较器,信号干净,波形好,驱动能力强,超过15mA。广泛用于电机转速检测,脉冲计数,位置限位等。

产品参数:

工作电压3.3V-5V
输出形式﹔数字开关量DO输出(o和1),模拟输出AO引脚无效

使用说明:

        接好VCC和GND,模块电源指示灯会亮,模块槽中无遮挡时,接收管导通,模块Do输出低电平,开关指示灯亮﹔遮挡时,DO输出高电平,开关指示灯灭。模块DO可与继电器相连,组成限位开关等功能,也可以与有源蜂鸣器模块相连,组成报警器。DO输出接口可以与单片机Io口直接相连,一般接外部中断,检测传感器是否有遮档,如用电机码盘则可检测电机的转速。

测速传感器模块使用说明书(宽槽版):

模块特色:

1、使用进口槽型光耦传感器,槽宽度 10mm。

2、有输出状态指示灯,输出高电平灯灭,输出低电平灯亮。

3、有遮挡,输出高电平;无遮挡,输出低电平。

4、比较器输出,信号干净,波形好,驱动能力强,超过 15mA。

5、工作电压 3.3V-5V

6、输出形式 :数字开关量输出(0 和 1)

7、设有固定螺栓孔,方便安装

8、小板 PCB 尺寸:2.3cm x 2cm

9、使用宽电压 LM393 比较器 

模块使用说明(宽槽版):

1.模块槽中无遮挡时,接收管导通,模块 OUT 输出低电平,遮挡时, OUT 输出高电平;

2、OUT 输出接口可以与单片机 IO 口直接相连,检测传感器是否有遮 档,如用电机码盘则可检测电机的转速。

3.模块 OUT 可与继电器相连,组成限位开关等功能,也可以与有源蜂 鸣器模块相连,组成报警器。

产品接线说明(宽槽版):

1、VCC 接电源正极 3.3-5V

2、GND 接电源负极

3、OUT TTL 开关信号输出

---------------------------------------------------------------------------------------------------------------------------------

测速传感器模块使用说明书(窄槽版):

模块特色(窄槽版):

1、使用进口槽型光耦传感器,槽宽度 5mm。

2、有输出状态指示灯,输出高电平灯灭,输出低电平灯亮。

3、有遮挡,输出高电平;无遮挡,输出低电平。

4、比较器输出,信号干净,波形好,驱动能力强,超过 15mA。

5、工作电压 3.3V-5V

6、输出形式 :数字开关量输出(0 和 1)

7、设有固定螺栓孔,方便安装

8、小板 PCB 尺寸:3.2cm x 1.4cm

9、使用宽电压 LM393 比较器  

模块使用说明(窄槽版):

1.模块槽中无遮挡时,接收管导通,模块 DO 输出低电平,遮挡时, DO 输出高电平;

2、DO 输出接口可以与单片机 IO 口直接相连,检测传感器是否有遮 档,如用电机码盘则可检测电机的转速。

3.模块 DO 可与继电器相连,组成限位开关等功能,也可以与有源蜂 鸣器模块相连,组成报警器。

产品接线说明(窄槽版):

1、VCC 接电源正极 3.3-5V

2、GND 接电源负极

3、DO TTL 开关信号输出

4、AO 此模块不起作用

程序设计:

  传感器51测试程序(宽槽版):

/******************************************
´«¸ÐÆ÷´¥·¢²âÊÔ
µ¥Æ¬»ú£ºSTC89C52
²¨ÌØÂÊ£º9600
*****************************************/
#include <reg52.h>
unsigned char date;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P0^1;


/* º¯ÊýÉêÃ÷ -----------------------------------------------*/
void delay(uint z);
void Initial_com(void);

//***********************************************************

/*
********************************************************************************
** º¯ÊýÃû³Æ £º delay(uint z)
** º¯Êý¹¦ÄÜ £º ÑÓʱº¯Êý
********************************************************************************
*/
void delay(uint z)
{																							   
    uint i,j;
    for(i=z;i>0;i--)
        for(j=110;j>0;j--);
} 


//******************************

//*****´®¿Ú³õʼ»¯º¯Êý***********

//******************************
void Initial_com(void)
{
 EA=1;        //¿ª×ÜÖжÏ
 ES=1;        //ÔÊÐí´®¿ÚÖжÏ
 ET1=1;        //ÔÊÐí¶¨Ê±Æ÷T1µÄÖжÏ
 TMOD=0x20;   //¶¨Ê±Æ÷T1£¬ÔÚ·½Ê½2ÖжϲúÉú²¨ÌØÂÊ
 PCON=0x00;   //SMOD=0
 SCON=0x50;   // ·½Ê½1 Óɶ¨Ê±Æ÷¿ØÖÆ
 TH1=0xfd;    //²¨ÌØÂÊÉèÖÃΪ9600
 TL1=0xfd;
 TR1=1;       //¿ª¶¨Ê±Æ÷T1ÔËÐпØÖÆλ

}




//*************************
//**********Ö÷º¯Êý*********
//*************************
main()
{
	 Initial_com();
	 while(1)
	 {
	
	 	 if(key1==0)
		{
			delay();	  //Ïû¶¶¶¯
			if(key1==0)	  //È·ÈÏ´¥·¢
			{
				 SBUF=0X01;
				 delay(200);
				
			
			}
	   
		}
		 
		  if(RI)
		  {
			date=SBUF;    //µ¥Æ¬»ú½ÓÊÜ
			SBUF=date;    //µ¥Æ¬»ú·¢ËÍ
			RI=0;
		  }
		
		
	  }
}

  传感器51测试程序(窄槽版): 

/******************************************
´«¸ÐÆ÷´¥·¢²âÊÔ
µ¥Æ¬»ú£ºSTC89C52
²¨ÌØÂÊ£º9600
*****************************************/
#include <reg52.h>
unsigned char date;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P0^1;


/* º¯ÊýÉêÃ÷ -----------------------------------------------*/
void delay(uint z);
void Initial_com(void);

//***********************************************************

/*
********************************************************************************
** º¯ÊýÃû³Æ £º delay(uint z)
** º¯Êý¹¦ÄÜ £º ÑÓʱº¯Êý
********************************************************************************
*/
void delay(uint z)
{																							   
    uint i,j;
    for(i=z;i>0;i--)
        for(j=110;j>0;j--);
} 


//******************************

//*****´®¿Ú³õʼ»¯º¯Êý***********

//******************************
void Initial_com(void)
{
 EA=1;        //¿ª×ÜÖжÏ
 ES=1;        //ÔÊÐí´®¿ÚÖжÏ
 ET1=1;        //ÔÊÐí¶¨Ê±Æ÷T1µÄÖжÏ
 TMOD=0x20;   //¶¨Ê±Æ÷T1£¬ÔÚ·½Ê½2ÖжϲúÉú²¨ÌØÂÊ
 PCON=0x00;   //SMOD=0
 SCON=0x50;   // ·½Ê½1 Óɶ¨Ê±Æ÷¿ØÖÆ
 TH1=0xfd;    //²¨ÌØÂÊÉèÖÃΪ9600
 TL1=0xfd;
 TR1=1;       //¿ª¶¨Ê±Æ÷T1ÔËÐпØÖÆλ

}




//*************************
//**********Ö÷º¯Êý*********
//*************************
main()
{
	 Initial_com();
	 while(1)
	 {
	
	 	 if(key1==0)
		{
			delay();	  //Ïû¶¶¶¯
			if(key1==0)	  //È·ÈÏ´¥·¢
			{
				 SBUF=0X01;
				 delay(200);
				
			
			}
	   
		}
		 
		  if(RI)
		  {
			date=SBUF;    //µ¥Æ¬»ú½ÓÊÜ
			SBUF=date;    //µ¥Æ¬»ú·¢ËÍ
			RI=0;
		  }
		
		
	  }
}

逻辑设计:

测距离:

        测速传感器输出为脉冲信号,一个脉冲中断一次﹔红外射线导通的时候是低电平,所以我们设置中断为低电平触法模式。一般码盘上有整数格子,无论是多少格其实原理一样,例如10格码盘,也就是有10个空格子,电机转一圈后便是射线导通10次,外部低电平触法10次﹔安装上面的思路,我们的测速传感器就可以发挥出效果了,我们知道一圈就有10个中断,于是我们计算中断次数,得到的总次数除于10也就是电机转动次数了,然后按照轮子的周长,计算轮子一圈是多长,就可以推算出小车已经跑多远了。

测速度;

        按照测距离的思路,我们用一个MCU定时器计算,1秒内接收多少个外部中断,例如一秒内接收了20个外部中断,我们就可以判断小车速度为i秒小车轮子转两圈,然后再计算出小车轮子的周长,就可得知小车1秒行驶的速度。

注意事项:

        正确接线!切勿将正负接反,使板子电子器件烧毁。Raspberry Pi
玩家应该设置MCU的I/o口为输入模式/接收模式,否则无法使用。其他MCU,或者更为高级的控制板如ARM这些,若需设置I/o口为输入输出模式,都必须设置为输入模式/接收模式,否则无法使用。51系列单片机可直接使用,无需设置输入输出模式。

  • 23
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打气排的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值