反射式红外光电管 ITR8307

举报
tsinghuazhuoqing 发表于 2021/12/25 23:44:49 2021/12/25
【摘要】 简 介: 测了了ITR8307的基本特性,包括它的静态、动态特性等。并通过测量独轮车惯量轮转速展示了它的应用。 关键词: ITR8307,反射式光电管   §01 反...

简 介: 测了了ITR8307的基本特性,包括它的静态、动态特性等。并通过测量独轮车惯量轮转速展示了它的应用。

关键词 ITR8307反射式光电管

 

§01 射式光电管


  ITR8307 是一款集成有红外发射管与接收三极管的光电管。在 TB ITR8307 可以购买到SOP-4封装的小型光电管。

一、基本信息

  反射式光电开关 ITR8307 是一款集红外发射管与红外接收管于一体的光电开关,当有被检测到物体经过的时候,物体将光电开关发射端发射的信号反射到接收端,于是光电开关就产生开关型号。

▲ 图1.1 基本封装

▲ 图1.1 基本封装

  在 ITR8307/S18/TR8反射式光电开关传感器感应距离测距1mm贴片SOP-4 给出了SOP-4封装下的引脚功能分布。

▲ 图1.2 SOP-4封装管脚功能图

▲ 图1.2 SOP-4封装管脚功能图

  在 ITR8307光耦反射式非接触 传感器,有人将该传感器制作成通用的检测模块。 原装亿光ITR8307/S17/TR8(B)贴片反射式光电开关红外线光电传感器 给出的价格只有RMB0.37

▲ 图1.3 ITR8307实际管教分布

▲ 图1.3 ITR8307实际管教分布

二、特性测试

1、静态特性

  使用万用表(DM3068)二极管档,测量 PIN2-1:前向导通电压。PIN2+, PIN1-。

红外发光二极管测量结果:
电流: 1mA
电压:1.077V

  测量PIN3,4之间的电阻,可以验证三极管两个方向电阻不一样。并且随着手遮挡光电管上面的光线,PIN3,4之间的电阻会变大。

光电三极管测量结果:
PIN3+,PIN4-:0.577MΩ
PIN3-,PIN4+:∞

2、引线封装

▲ 图1.2.1 引出光电管管脚

▲ 图1.2.1 引出光电管管脚

  引出的PIN4引线(100mil)的管脚定义与ITR8307的管脚 ① ~ ④ 一致。

3、测试电路

  在面包板上搭建如下的测试电路。工作电压为+5V。

电路测量:
V2:1.193V
V3:4.98V

▲ 图1.2.2 测试电路原理图

▲ 图1.2.2 测试电路原理图

  手持反射式光电管对准白纸,可以看到V3的变化不大。

4、不同R2

  为了提高输出电压的灵敏度,提高R2可以增加输出电压的灵敏度。这同时也会使得环境光线对于光电管的影响。

(1) 光电管平行放置

  将光电管平行放置,此时光电管周围并没有反射物体。

  使用变阻箱,改变R2阻值:100k ~ 1M对应的V3电压的变化。

【表1-4-1 光电管平行放置,对应不同Rc时V3电压值】

R(100k)1 R(100k)2 R(100k)3 R(100k)4 R(100k)5 R(100k)6 R(100k)7 R(100k)8 R(100k)9 R(100k)10
4.661900 4.357700 4.064400 3.779500 3.504000 3.234400 2.972500 2.715700 2.463400 2.228700

(2) 光电管垂直放置

  设置R2=500kΩ,移动光电管,由于实验桌上面的台灯亮度不同,会引起V3电压的变化。

▲ 图1.4.1 光电管不同位置引起电位变化

▲ 图1.4.1 光电管不同位置引起电位变化

三、距离对于输出电压影响

  利用 单轴步进驱动模块SH-20403 控制单轨步进滑轨带动光电管移动,测量距离白纸之间的距离与V3电压之间的关系。

▲ 图1.3.1 使用步进电轨带动光电管

▲ 图1.3.1 使用步进电轨带动光电管

1、实验1

实验条件:
步长Step:200
步数:100
R2电阻:500kΩ
R1电阻:330Ω
移动距离:20mm

  测量数据如下:
▲ 图1.4.1 不同步数下的输出电压

▲ 图1.4.1 不同步数下的输出电压

  观察测量数据,可以看到, 在步数小于55(约11mm距离)之前,输出电压都是很低;当步数大于55之后,V3电压呈现快速上升趋势;

  在V3上升过程中,电压出现了比较明显的波动现象。具体原因不详。

2、实验2

实验条件:
移动步长:500
移动步数:100

  R1,R2的数值与实验1相同。测量结果如下:

▲ 图1.2.2 不同移动步数下输出电压

▲ 图1.2.2 不同移动步数下输出电压

3、实验3

  减少R2的阻值,降低到 200kΩ,重新测量移动距离与输出电压之间的关系。

实验条件:
移动步长:200
移动步数:100
R2阻值:200kΩ
R1阻值:330Ω

▲ 图1.2.3 不同移动步数下输出电压变化

▲ 图1.2.3 不同移动步数下输出电压变化

  可以看到随着R2的增加,输出电压信号相比实验1有了以下变化:

  • 输出电压拐点缩小了,大约35部(越7mm距离);
  • 电压没有了波动线性,非常平滑了。

4、实验4

实验条件:
移动步长:200
移动步数:100
R2阻值:900kΩ

▲ 图1.2.4 不同步数下输出电压

▲ 图1.2.4 不同步数下输出电压

  可以看到随着R2的增加,输出电压的拐点增加到了75步(大约距离15mm)。

from headm import *
import lscm8
from tsmodule.tsstm32       import *
'''

lscm8.lscm8mf(20000)
exit()
'''
vdim = []
step = 200

for i in range(100):
    lscm8.lscm8mb(step)
    time.sleep(2)
    meter = meterval()
    printff(i, meter[1])

    vdim.append(meter[1])

    tspsave('measure', vdim=vdim)

plt.plot(vdim)
plt.xlabel("Step")
plt.ylabel("Voltage(V)")
plt.grid(True)
plt.tight_layout()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# LSCM8.PY                     -- by Dr. ZhuoQing 2020-01-14
#
# Note:
#============================================================
from head import *
import serial
#------------------------------------------------------------
cmdportdef = 'COM2'
cmdport = serial.Serial(cmdportdef, baudrate=115200, timeout=0.1)
cmdport.setDTR(False)
#cmdport.setRTS(False)
printf("Open %s for LSCM8."%cmdportdef)
#------------------------------------------------------------
COMMAND_FRAME_HEAD		= 0x56
COMMAND_FRAME_TAIL		= 0x65
COMMAND_STATUS_WAIT		= 0x0
COMMAND_STATUS_COMMAND	        = 0x1
COMMAND_STATUS_LENGTH	        = 0x2
COMMAND_STATUS_DATA		= 0x3
COMMAND_STATUS_CHECK	        = 0x4
COMMAND_STATUS_TAIL		= 0x5
#------------------------------------------------------------
COMMAND_HELLO_ECHO		= 0x20
COMMAND_BEEP_ON			= 0x21
COMMAND_BEEP_OFF		= 0x22
COMMAND_DIR_ON			= 0x23
COMMAND_DIR_OFF			= 0x24
COMMAND_REL_ON			= 0x25
COMMAND_REL_OFF			= 0x26
COMMAND_PUL_SET			= 0x27
COMMAND_PUL_STOP		= 0x28
COMMAND_GOTO_HEAD		= 0x29
COMMAND_GOTO_TAIL		= 0x2A
COMMAND_GET_STATE		= 0x2B
COMMAND_GET_PULSEOUT	        = 0x2C
COMMAND_CLEAR_PULSEOUT	        = 0x2D
#------------------------------------------------------------
def lscm8cmd(cmd, cmddata):
    checksum = cmd + len(cmddata)
    for cd in cmddata:
        checksum = checksum + cd
    checksum = (checksum & 0xff) ^ 0xff
    cmdstr = b'' + byte(COMMAND_FRAME_HEAD) + byte(cmd) + byte(len(cmddata)) +\
             cmddata + byte(checksum) + byte(COMMAND_FRAME_TAIL)
#    printf(cmdstr)
    cmdport.write(cmdstr)
def lscm8hello():
    lscm8cmd(COMMAND_HELLO_ECHO, b'')
def lscm8beepon():
    lscm8cmd(COMMAND_BEEP_ON, b'')
def lscm8beepoff():
    lscm8cmd(COMMAND_BEEP_OFF, b'')
#------------------------------------------------------------
def lscm8relon(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_REL_ON, cmd)
#------------------------------------------------------------
# bits:0:relay0, 1:relay1
def lscm8reloff(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_REL_OFF, cmd)
def lscm8diron(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_DIR_ON, cmd)
def lscm8diroff(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_DIR_OFF, cmd)
#------------------------------------------------------------
def lscm8setpulse(bits, pulse):
    cmd = bits.to_bytes(1, byteorder='big') +\
          pulse.to_bytes(4, byteorder='big')
    lscm8cmd(COMMAND_PUL_SET, cmd)
def lscm8stoppulse():
    lscm8cmd(COMMAND_PUL_STOP, b'')
def lscm8gotohead():
    lscm8cmd(COMMAND_GOTO_HEAD, b'')
def lscm8gototail():
    lscm8cmd(COMMAND_GOTO_TAIL, b'')
def lscm8clearpulseout():
    lscm8cmd(COMMAND_CLEAR_PULSEOUT, b'')
def lscm8mf(steps):
    lscm8diron(3)
    lscm8reloff(3)
    lscm8setpulse(3, steps)
def lscm8mb(steps):
    lscm8diroff(3)
    lscm8reloff(3)
    lscm8setpulse(3, steps)
#------------------------------------------------------------
if __name__ == "__main__":
    time.sleep(.5)
    if len(sys.argv) > 1:
        step = int(sys.argv[1])
        if step > 0:
            lscm8mf(step)
        else: lscm8mb(-step)
    else:
        lscm8mb(1000)
    tspbeep(1500, 100)
    printf('End of the command')
#------------------------------------------------------------
#        END OF FILE : LSCM8.PY
#============================================================

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106

 

§02 用测试


一、测试独轮车转速

  独轮车也许是下一届 智能车竞赛 的车模。下面使用反射式的宫外光电管测量它在自载电池作用下的转速。

  车载电池为两节1.5V干电池。为了能够使用反射式的光电管测量转速,使用记号笔在惯量轮上涂抹一段1.5cm的黑色标记。

▲ 图2.1.0 使用反射式光电管测量独轮车惯量轮的转速

▲ 图2.1.0 使用反射式光电管测量独轮车惯量轮的转速

1、测试结果

测量条件:
R2阻值: 50kΩ

▲ 图2.1.1 测了V3波形

▲ 图2.1.1 测了V3波形

  测量得到:脉冲的频率: 80.91Hz,这也反映了惯量轮的转速为80转/秒。

  通过波形,也可以看到在50kΩ Rc 下,光电管的频率响应大约是1kHz。

▲ 图2.2.2  独轮车在行进

▲ 图2.2.2 独轮车在行进

▲ 图2.2.3  独轮车运行
▲ 图2.2.3 独轮车运行

二、测量频率响应

  改变反射式桑外光电二极管的电压,测量输出波形。

1、测量结果

  • R2的阻值: 50k欧姆。

▲ 图2.2.2 在方波驱动下的输出波形

▲ 图2.2.2 在方波驱动下的输出波形

  • R2的阻值: 100kΩ。

▲ 图2.2.3 在方波驱动下的输出波形

▲ 图2.2.3 在方波驱动下的输出波形

  • R2的阻值: 10kΩ

▲ 图2.2.4 在方波驱动下的输出波形

▲ 图2.2.4 在方波驱动下的输出波形

 

§量结论


  ITR8307是一款反射式的光电管。可以用于近距离的反射物运动测量。测量距离通过不同的Rc 可以在5mm - 15mm左右。


■ 相关文献链接:

● 相关图表链接:

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/120116131

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。