zoukankan      html  css  js  c++  java
  • 【雕爷学编程】Arduino动手做(65)---红外寻迹传感器

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

    【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

    实验六十六: TCRT5000红外反射光电开关寻迹传感器模块

    反射式光电开关
    也属于红外线不可见光产品,是一种小型光电元器件,它可以检测出其接收到的光强的变化。在前期是用来检测物体有无感应到的,它是由一个红外线发射管跟一个红外线接收管组合而成,它的发射波长是780nm-1mm,发射器带一个校准镜头,将光聚焦射向接收器,接收器出电缆将这套装置接到一个真空管放大器上。检测对象是当它进入间隙的开槽开关和块光路之间的发射器和检测器, 当物体接近到灭弧室,接收器的一部分收集的光线从对象反射到光电元件上面。它是利用物体对红外线光束遮光或反射,由同步回路选通而检测物体的有无的,其物体不限于金属,对所有能反射光线的物体均可检测。

    TCRT5000
    其工作原理与一般的红外传感器一样,一传一感TCRT5000具有一个红外发射管和一个红外接收管,当发射管的红外信号经反射被接收管接收后,接收管的电阻会发生变化,在电路上一般以电压的变化形式体现出来,而经过ADC转换或LM324等电路整形后得到处理后的输出结果,电阻的变化起取于接收管所接收的红外信号强度,常表现在反射面的颜色和反射面接收管的距离两二方面。

    工作环境
    +:接直流DC5V正极
    -:接直流DC5V负极
    S:信号输出端,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮
    工作电压:DC 3V~5.5V,推荐工作电压为5V
    检测距离:1mm~8mm适用,焦点距离为2.5mm

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

    TCRT5000探头的几个应用电路

    TCRT5000红外反射光电开关寻迹传感器模块

    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 比较器 

    模块电原理图

    模块描述
    该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于电度表脉冲数据采样、传真机碎纸机纸张检测、流水线计数、机器人避障、避障小车、及黑白线循迹等众多场合。

    模块接线方式

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

    2、GND:接电源负极

    3、DO:TTL开关信号输出

    4、AO:模拟信号输出(不同距离输出不同的电压,此脚一般可以不接)

    /*
    
    【Arduino】168种传感器模块系列实验(65)
    
    实验六十五: TCRT5000红外反射光电开关寻迹传感器模块
    
    */
    
     
    
    int ledPin=13;//定义数字接口13为LED输出接口
    
    int pin=10;//定义数字检测接口pin0
    
    int val;//定义变量
    
     
    
    void setup()
    
    {
    
      pinMode(ledPin,OUTPUT);//设定数字接口13为输出接口
    
      Serial.begin(9600);//设置串口波特率为9600kbps
    
    }
    
     
    
    void loop()
    
    {
    
     val=digitalRead(pin);//读取模拟接口的值
    
     Serial.println(val);//输出模拟接口的值
    
     if(val==1)//如果Pin10检测的值为高电平,点亮LED
    
     {
    
     digitalWrite(ledPin,HIGH);
    
     }
    
     else          //如果为低电平熄灭LED
    
     {
    
     digitalWrite(ledPin,LOW);
    
     }
    
    }
    

    /*
    
    【Arduino】168种传感器模块系列实验(65)
    
    实验六十五: TCRT5000红外反射光电开关寻迹传感器模块
    
    程序二,接到A0模拟口,串口波形,可以测量距离
    
    */
    
     
    
    int tcrt;
    
     
    
    void setup()
    
    {
    
    pinMode(13,OUTPUT);
    
    Serial.begin(9600);
    
    }
    
     
    
    void loop()
    
    {
    
    tcrt = analogRead(A0);
    
     
    
    analogWrite(13,tcrt/4);
    
    Serial.println(tcrt);
    
    delay(500);
    
    }
    

      

    实验开源图形编程(Mind+)

    实验开源仿真编程(linkboy3.7)

  • 相关阅读:
    【故障处理】ORA-12162: TNS:net service name is incorrectly specified (转)
    android studio 编程中用到的快捷键
    java时间格式串
    android Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
    linux安装vmware
    x1c 2017 安装mint18的坑——grub2
    x1c2017 8G版 win linux的取舍纠结记录
    python的try finally (还真不简单)
    kafka+docker+python
    json文件不能有注释
  • 原文地址:https://www.cnblogs.com/eagler8/p/13061732.html
Copyright © 2011-2022 走看看