1、使用的库
1、NI-VISA驱动程序,可以从官网进行下载并安装
2、pyvisa库:PyVISA 是一个 Python 库,用于通过 VISA(Virtual Instrument Software Architecture)接口与仪器进行通信。
安装方式:
pip install pyvisa
2、设备
电压源:使用了固纬公司的PPH-1503,小黄鱼二手买的,性价比还是可以的,输出精度也足够日常使用了
万用表:34401A台式万用表,同小黄鱼二手,因为新表买不起太贵了。
GPIB通讯线:USB转GPIB线缆一跳,GPIB跳线一条,采用菊花链方式连接两块表即可
3、通讯协议
两个设备均有GPIB接口,使用SCPI命令指令进行编程.
4、编写设备库函数
主要包括设备挂载、常用功能函数。
#设备列表
rm = visa.ResourceManager()
#列出所有的挂载的设备
print(rm.list_resources())
#打开设备,我的电压源设置的GPIB地址为5
instr=rm.open_resource('GPIB0::5::INSTR')
#使用query函数,发送命令并回读
print(instr.query('*IDN?'))
输出:
('ASRL4::INSTR', 'ASRL6::INSTR', 'ASRL10::INSTR', 'GPIB0::2::INSTR', 'GPIB0::5::INSTR')
GW INSTEK,PPH1503,SN:EQ87215*,V2.01/303
除query名另外,还可以使用write写入命令对设备进行设置。具体参数需要查阅对应的设备手册。
例如需要打开输出,则使用以下命令:
instr.write('OUTP ON')
就可以看到源表有正常输出了
根据源表、万用表手册,分别编写两个设备的库。
5、测试程序
主程序如下:
from lib.DMM import DMM
from lib.DCPowerSupply import DCPowerSupply
from time import sleep
#导入绘图模块
import matplotlib.pyplot as plt
import numpy as np
#设置电压源输出电压范围、数据点数和采样等待时间
min_voltage = 0
max_voltage = 8
data_points = 400
wait_time = 0.1
if __name__ == '__main__':
#创建绘图窗口
plt.figure(figsize=(8,4))
#连接电压源
PPH1503 = DCPowerSupply('GPIB0::5::INSTR',10,1,12.5)
PPH1503.set_voltage(0)
PPH1503.set_output(True)
#连接万用表
HP34401A = DMM('GPIB0::2::INSTR')
#设置万用表为直流电流测量模式
HP34401A.SetMode_DCI(1,0.00001)
#循环100次,测试0-5V电压下的电流值
voltageset = np.linspace(min_voltage,max_voltage,data_points)
voltage = np.zeros(data_points)
current = np.zeros(data_points)
for i in range(len(voltageset)):
PPH1503.set_voltage(voltageset[i])
sleep(wait_time)
voltage[i]=PPH1503.get_voltage()
current[i] = HP34401A.READ()
print("电压:",voltage[i]," 电流:",current[i])
#关闭电压源
PPH1503.set_output(False)
PPH1503.close()
#关闭万用表
HP34401A.close()
#绘制电压-电流曲线
plt.plot(voltage,current)
plt.xlabel('Voltage(V)')
plt.ylabel('Current(A)')
plt.title('Voltage-Current Curve')
plt.show()
6、测试结果
φ3mm红光LED,加330Ω电阻
可以看出LED灯压降大约在1.8V左右
φ3黄光LED曲线
φ3mm红光LED击穿曲线
电压在2V左右时,LED开始发光,在3.4V左右时电流增加发光开始变暗,随后随着电压增加开始出现损坏、内部击穿放电,最终烧坏断路。
330Ω电阻VI曲线:
1N4007二极管正向VI曲线:导通压降大约在0.7~0.8V左右
AMS1117-3.3V输入输出电压关系曲线:
大概在4.3V的时候,才能够稳定输出3.3V的电压,压降接近1V
SMBJ5.0CA,TVS管曲线:
与手册上击穿电压在6.4-7.0V一致