【自动化测试】使用Python实现电压源、万用表控制,绘制发光二极管VI曲线

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一致
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值