Question

I need to send a command to a GPIB instrument and I can do it like this: power.write("volt 0.01").
This command sets the output of my power source to 0.01V, however, I'm trying to take an I-V curve and want to set the source to different values and take a measurement at each value. I basically need some sort of loop to do this for me. I tried the following:

k=0
while k<= 1:
    power.write("volt k")
    k=k+0.01

This doesn't work because k gets send as 'k', not as a number. How do I fix this?

Was it helpful?

Solution

Instead of power.write("volt k"), use:

power.write("volt " + str(k))
                 ^
          observe space here!

If you want to control the output precision, you can use the following:

power.write("volt %0.2f" % k)

That is, if k is 4.85866 then using %0.2f means volt 4.86 is sent to the device. If using %0.4f then volt 4.8587 is sent to the device. Note the rounding!

OTHER TIPS

Instead of power.write("volt k"), use:

power.write("volt %0.2f" % k)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top