IoTで使うPython入門 Step5-Python3 VISA⑥DMM Keithley 2000 +電源E3631A LED

 実験用電源の電圧を変えて、デバイスの両端にかかる電圧と電流を測定しました。ここでは、非線形素子のLEDをつないでみます。
 LEDは、順方向電圧約2Vを超える電圧がかかると光り始めます。と同時に電流も急速に流れ始めます。順方向電圧は、時代、色によって大きく異なります。LEDは赤色が最初に作られました。そのころは約1.7Vでしたが、現在使われている素材では2V付近といわれています。
 青色(白色)は約3Vですが、高輝度の製品では低めです。

LEDの特性を測る

 小信号用の赤色LEDをつなぎました。

 プログラムです。測定中に40mAを超えたら終了します。

import visa
from time import sleep
import matplotlib.pyplot as plt

Keithley2000_6_Addr  = "GPIB0::6"
Keithley2000_18_Addr = "GPIB0::18"
AgilentE3631A_Addr   = "GPIB1::10"

r = visa.ResourceManager()
agilentE3631A   = r.open_resource(AgilentE3631A_Addr)
keithley2000_6  = r.open_resource(Keithley2000_6_Addr)
keithley2000_18 = r.open_resource(Keithley2000_18_Addr)

dataI = []
dataE = []

agilentE3631A.write("*RST;*CLS")
agilentE3631A.write(":INST:SEL P6V")
agilentE3631A.write(":TRIG:SOUR IMM")
agilentE3631A.write(":OUTPut ON")

keithley2000_6.write("*RST;*CLS")
keithley2000_18.write("*RST;*CLS")
keithley2000_6.write(":CONF:CURR; DC:RANG 1")
keithley2000_18.write(":CONF:VOLT:DC:RANG 10")
sleep(1)

for outVolt in range(1,200):
    agilentE3631A.write("VOLT:TRIG " + str(float(outVolt)/100.0+1.2))
    agilentE3631A.write("INIT")
    #print(outVolt)
    sleep(0.5)
    
    dI = keithley2000_6.query(":READ?")
    #print(dI)
    if float(dI)*1000 > 40.0:
        agilentE3631A.write(":VOLTage:TRIG 0")
        agilentE3631A.write("INIT")
        break
    dataI.append(dI)
    
    dE = keithley2000_18.query(":READ?")
    dataE.append(dE)
    
    print("  E: ", float(dE), "V  I: ", float(dI)*1000.0 , "mA")

agilentE3631A.write("CURRent:TRIG 0")
agilentE3631A.write("VOLTage:TRIG 0")
agilentE3631A.write("INIT")
sleep(2)
print('--done--')
agilentE3631A.write(":OUTPut OFF")
keithley2000_6.query(":READ?")
keithley2000_18.query(":READ?")
dataCurrent = [float(f)*1000 for f in dataI]
dataVoltage = [float(f) for f in dataE]

plt.plot(dataVoltage, dataCurrent, marker="v")
plt.xlabel("Volt [V]")
plt.ylabel("Current [mA]")
plt.show()

 グラフです。2.1V付近でDMMの内部でリレーの音がし、レンジが変更されるようで、データが飛びます。この測定データからどの部分を「順方向電圧」と読み取ればいいのかわかりません。LED自体は、1.7V付近からかすかに光り始めます。つまり、1mA以下でも光ります。

 小信号用の緑色LEDをつなぎました。1.8V付近で光始めました。

 小信号用の青色LEDをつなぎました。2.5V付近で光始めました。開始電圧は2.0Vに変更しました。

 小信号用の白色LEDをつなぎました。2.4V付近で光始めました。大変古いLEDです。20mAを超えると壊れた経験があるので、最大電流は20mAに制限しました。

 1Wの白色LEDをつなぎました。2.35V付近で光始めました。

第3象限

 逆の電圧をかけます。多くのデータシートには逆耐圧5Vと書かれていますが、実際はいろいろあります。

 最初は、古い小信号用の白色LEDです。

 プログラムです。2mA以上流れたらストップします。

import visa
from time import sleep
import matplotlib.pyplot as plt

Keithley2000_6_Addr  = "GPIB0::6"
Keithley2000_18_Addr = "GPIB0::18"
AgilentE3631A_Addr   = "GPIB1::10"

r = visa.ResourceManager()
agilentE3631A   = r.open_resource(AgilentE3631A_Addr)
keithley2000_6  = r.open_resource(Keithley2000_6_Addr)
keithley2000_18 = r.open_resource(Keithley2000_18_Addr)

dataI = []
dataE = []

agilentE3631A.write("*RST;*CLS")
agilentE3631A.write(":INST:SEL N25V")
agilentE3631A.write(":TRIG:SOUR IMM")
agilentE3631A.write(":OUTPut ON")

keithley2000_6.write("*RST;*CLS")
keithley2000_18.write("*RST;*CLS")
keithley2000_6.write(":CONF:CURR; DC:RANG 1")
keithley2000_18.write(":CONF:VOLT:DC:RANG 10")
sleep(1)

for outVolt in range(1,250):
    agilentE3631A.write("VOLT:TRIG -" + str(float(outVolt)/10.0))
    agilentE3631A.write("INIT")
    #print(outVolt)
    sleep(0.5)
    
    dI = keithley2000_6.query(":READ?")
    #print(dI)
    if abs(float(dI)*1000) > 2.0:
        agilentE3631A.write(":VOLTage:TRIG 0")
        agilentE3631A.write("INIT")
        break
    dataI.append(dI)
    
    dE = keithley2000_18.query(":READ?")
    dataE.append(dE)
    
    print("  E: ", float(dE), "V  I: ", float(dI)*1000.0 , "mA")

agilentE3631A.write("CURRent:TRIG 0")
agilentE3631A.write("VOLTage:TRIG 0")
agilentE3631A.write("INIT")
sleep(2)
print('--done--')
agilentE3631A.write(":OUTPut OFF")
keithley2000_6.query(":READ?")
keithley2000_18.query(":READ?")
dataCurrent = [float(f)*1000 for f in dataI]
dataVoltage = [float(f) for f in dataE]

plt.plot(dataVoltage, dataCurrent, marker="v")
plt.xlabel("Volt [V]")
plt.ylabel("Current [mA]")
plt.show()

 グラフです。

 赤色です。うまく測れていないようです。

 青色です。もっと高い電圧が出せる電源でないと測れないようです。