简 介: 本文测试了基础LM567反射光电管用于检测信标灯模具的功能。通过实验,对原信标灯进行了修改。 : ,,,
§01 调制解调
一、实验背景
在很多场合需要使用到物体光电检测,常用到的方法就是使用调制的红外发射管照射物体,通过物体的反射将调试的红外光线送入红外光电检测管,经过放大检测之后反映物体是否存在以及相对的远近。
之所以需要对于检测的红外光线进行调试主要是为了避免环境光线的影响。特别是室外的日光中包含有大量的红外线。
在 、 开关 分别测试了基于反射式一体化红外光电管检测方案。其中使用了ESP32进行实验。为了进一步简化电路设计,下面测试利用LM567的检测方案。
二、LM567方案
1、参考设计方案
▲ 图1.1 基于LM567的反射式红外检测电路
2、电路设计参数
(1) 基本特性
LM567 是一款通用音频解调集成电路。LM567集成有 I、Q 正交检测电路,检测频率有压控振荡器确定。当有被检测音频信号输入的时候,输出关键(PIN8)就变为低电平。
▲ 图1.2 输入交流信号与输出检测信号
- ① 脚所接电容的容量应至少是②脚电容的2倍。
- ③ 脚是输入端,要求输入信号≥25mV,最佳值为200mv左右。
- ④ 脚是电源正极
- ⑤、⑥ 脚外接的电阻和电容决定了内部压控振荡器的中心频率f2,f0≈1/1.1RC。
- ⑦ 脚是电源地
- ⑧ 脚是逻辑输出端,其内部是一个集电极开路的三极管,允许最大灌电流为100mA。
LM567的工作电压为4.75~9V,工作频率从直流到500kHz,静态工作电流约8mA。
▲ 图1.2.1 管脚定义
▲ 图1.2.2 使用基本参数
▲ 图1.2.2.1 NE567内部结构图
(2) 频率特性
根据 ,LM567的振荡频率有R1,C1决定:
f 0 ≈ 1.1 R 1 ⋅ C 1 f_0 \approx { {1.1} \over {R_1 \cdot C_1 }} f0≈R1⋅C11.1
-
R1
:定时电阻C1
:定时电容
LM567检测带宽为:
B W = 1070 V i f 0 C 2 i n % o f f 0 BW = 1070\sqrt { { {V_i } \over {f_0 C_2 }}} \,\,\,in\,\% \,of\,\,f_0 BW=1070f0C2Vi in%off0
-
Vi
:输入信号幅值(Volt,rms),Vi<200mVC2
:PIN2电容(uF)
§02 实验测试
一、基本测试
1、实验电路原理图
▲ 图2.1 实验电路原理图
根据振荡频率公式可以计算出该电路中心频率:
f 0 ≈ 1.1 20 k ⋅ 0.0022 μ = 25 k H z f_0 \approx { {1.1} \over {20k \cdot 0.0022\mu }} = 25kHz f0≈20k⋅0.0022μ1.1=25kHz
2、实验电路
▲ 图2.2 面包板上测试电路
3、测试数据
- :+5V :8mA
(1) 振荡频率
使用FLUKE45 频率测量功能,测试电路工作频率为: 24.334kHz。
▲ 图2.3.1 震荡波形:Ch1:PIN5, Ch2:PIN6
(2) 工作电压与振荡频率
通过DP1308A可编程直流电压提供不同的工作电源,测量不同电压下振荡频率。
- :3.5~8V : Fluke45
▲ 图2.3.1 不同的工作电压与振荡频率
from headm import *
from tsmodule.tsvisa import *
from tsmodule.tsstm32 import *
dp1308open(110)
dp1308p25v(5)
time.sleep(2)
setv = linspace(3.5, 8, 50)
fdim = []
for v in setv:
dp1308p25v(v)
time.sleep(2)
meter=meterval()
fdim.append(meter[0])
printff(v, meter[0])
tspsave('measf', setv=setv, fdim=fdim)
plt.plot(setv, fdim)
plt.xlabel("Voltage(V)")
plt.ylabel("Frequency(Hz)")
plt.grid(True)
plt.tight_layout()
plt.show()
二、检测信号
使用 可编程信号源输出峰峰值为1V的正弦波,测量LM567信号检测能力。
1、不同频率下输出信号
(1) 输入信号幅值:1Vpp
- :+5V :1Vpp :22kHz-26kHz
▲ 图2.2.1 不同频率的对应的输出电压
from headm import *
from tsmodule.tsvisa import *
from tsmodule.tsstm32 import *
dg1062open(113)
dg1062freq(1, 24000)
time.sleep(1)
setf = linspace(22000, 26000, 100)
voltdim = []
outdim = []
for f in setf:
dg1062freq(1, f)
time.sleep(1.5)
meter = meterval()
voltdim.append(meter[0])