反射式红外传感器模块(寻迹传感器模块)

本文详细介绍了TCRT5000红外反射传感器的工作原理、检测范围、信号处理特性以及在机器人避障、寻线机器人和工业应用中的使用。同时提供了51系列单片机的测试程序示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产品特性:

        采用TCRT5000红外反射传感器,一种集发射与接收于一体的光电传感器,它由一个红外发光二极管和一个NPN红外光电三极管组成。检测反射距离1mn-25mm适用,传感器特设M3固定安装孔,调节方向与固定方便易用,使用宽电压LM393比较器,信号干净,波形好,驱动能力强,超过15mA。可以应用于机器人避障、机器人进行白线或者黑线的跟踪,可以检测白底中的黑线,也可以检测黑底中的白线,是寻线机器人的必备传感器。流水线计件、电度表脉冲数据采样、传真机碎纸机纸张检测等众多场合。

使用说明:

        接好VCC (3.3V-5V)和GND,模块电源指示灯会亮,TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态,被检测物体出现在检测范围内时,红外线被反射回来且强度足够大。红外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮。DO输出接口可以与单片机Io口直接相连,一般接外部中断。模拟输出AO当发射管的红外信号经反射被接收管接收后,接收管的电阻会发生变化,在电路上一般以电压的变化形式体现出来,而经过ADC转换或LM324等电路整形后得到处理后的输出结果。电阻的变化起取于接收管所接收的红外信号强度,常表现在反射面的颜色(反射率)、形状和反射面接收管的距离等方面。

产品介绍:

1、采用 TCRT5000 红外反射传感器

2、检测反射距离:1mm~25mm 适用

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

4、配多圈可调精密电位器调节灵敏度

5、工作电压 3.3V-5V

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

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

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

9、使用宽电压 LM393 比较器

功能介绍:

        TCRT5000 传感器的红外发射二极管不断发射红外线,当发射出的红外 线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态; 被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红 外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮。

接线方式:

1、VCC:接电源正极(3-5V)

2、GND:接电源负极

3、DO:TTL 开关信号输出

4、AO:模拟信号输出

注意事项:

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

传感器51测试程序:

  1. /******************************************
  2. ´«¸ÐÆ÷´¥·¢²âÊÔ
  3. µ¥Æ¬»ú£ºSTC89C52
  4. ²¨ÌØÂÊ£º9600
  5. *****************************************/
  6. #include <reg52.h>
  7. unsigned char date;
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. sbit key1=P0^1;
  11. /* º¯ÊýÉêÃ÷ -----------------------------------------------*/
  12. void delay(uint z);
  13. void Initial_com(void);
  14. //***********************************************************
  15. /*
  16. ********************************************************************************
  17. ** º¯ÊýÃû³Æ £º delay(uint z)
  18. ** º¯Êý¹¦ÄÜ £º ÑÓʱº¯Êý
  19. ********************************************************************************
  20. */
  21. void delay(uint z)
  22. {
  23. uint i,j;
  24. for(i=z;i>0;i--)
  25. for(j=110;j>0;j--);
  26. }
  27. //******************************
  28. //*****´®¿Ú³õʼ»¯º¯Êý***********
  29. //******************************
  30. void Initial_com(void)
  31. {
  32. EA=1; //¿ª×ÜÖжÏ
  33. ES=1; //ÔÊÐí´®¿ÚÖжÏ
  34. ET1=1; //ÔÊÐí¶¨Ê±Æ÷T1µÄÖжÏ
  35. TMOD=0x20; //¶¨Ê±Æ÷T1£¬ÔÚ·½Ê½2ÖжϲúÉú²¨ÌØÂÊ
  36. PCON=0x00; //SMOD=0
  37. SCON=0x50; // ·½Ê½1 Óɶ¨Ê±Æ÷¿ØÖÆ
  38. TH1=0xfd; //²¨ÌØÂÊÉèÖÃΪ9600
  39. TL1=0xfd;
  40. TR1=1; //¿ª¶¨Ê±Æ÷T1ÔËÐпØÖÆÎ»
  41. }
  42. //*************************
  43. //**********Ö÷º¯Êý*********
  44. //*************************
  45. main()
  46. {
  47. Initial_com();
  48. while(1)
  49. {
  50. if(key1==0)
  51. {
  52. delay(); //Ïû¶¶¶¯
  53. if(key1==0) //È·ÈÏ´¥·¢
  54. {
  55. SBUF=0X01;
  56. delay(200);
  57. }
  58. }
  59. if(RI)
  60. {
  61. date=SBUF; //µ¥Æ¬»ú½ÓÊÜ
  62. SBUF=date; //µ¥Æ¬»ú·¢ËÍ
  63. RI=0;
  64. }
  65. }
  66. }