# Introduction

We will draw I-V characteristics of thee led (Red, Green, Blue) on one graph.

The three led’s have different behaviour at different voltage and we can clearly see that on the graph.

# Connections

# Code

```
import box0
import numpy as np
import matplotlib.pyplot as plt
# allocate the appropriate resources
dev = box0.usb.open_supported()
ain0 = dev.ain()
aout0 = dev.aout()
# prepare AIN0
ain0.static_prepare()
ain0.chan_seq.current = [0, 1, 2, 3]
ain0.speed.current = 100000
# prepare AOUT0
aout0.static_prepare()
# generate voltage, read voltage, calculate current and store the result
# AIN0.CH0 = Voltage across Red led
# AIN0.CH1 = Voltage across Green led
# AIN0.CH2 = Voltage across Blue led
# AIN0.CH3 = AOUT0.CH0 = generated signal
# current across LED = (AIN0.CH3 - AIN0.CHi) / Ri
SAMPLES = 100
red_res = 330.0
red_x = np.empty(SAMPLES)
red_y = np.empty(SAMPLES)
green_res = 330.0
green_x = np.empty(SAMPLES)
green_y = np.empty(SAMPLES)
blue_res = 120.0
blue_x = np.empty(SAMPLES)
blue_y = np.empty(SAMPLES)
voltages = np.linspace(0.0, 3.3, SAMPLES)
aout0_running = False
for i in range(SAMPLES):
if aout0_running:
aout0.static_stop()
# output "v" value on AOUT0.CH0
aout0.static_start(voltages[i:(i+1)])
aout0_running = True
# read back AIN0.CH0 and AIN0.CH1
readed_data = np.empty(1000)
ain0.static_start(readed_data)
# do the calculation
ch0 = np.mean(readed_data[0::4])
ch1 = np.mean(readed_data[1::4])
ch2 = np.mean(readed_data[2::4])
ch3 = np.mean(readed_data[3::4])
# store the result
red_x[i] = ch0
red_y[i] = (ch3 - ch0) / red_res
green_x[i] = ch1
green_y[i] = (ch3 - ch1) / green_res
blue_x[i] = ch2
blue_y[i] = (ch3 - ch2) / blue_res
# stop if AOUT0 running
if aout0_running:
aout0.static_stop()
# close the resources
ain0.close()
aout0.close()
dev.close()
# A to mA
red_y *= 1000.0
green_y *= 1000.0
blue_y *= 1000.0
# now, plot the data
plt.xlabel('Voltage (V)')
plt.ylabel('Current (mA)')
plt.grid(True)
plt.plot(red_x, red_y, 'r-', green_x, green_y, 'g-', blue_x, blue_y, 'b-', linewidth=1.5)
plt.show()
```

# Conclusion

You can clearly see the behaviour at increasing voltage.

First RED bias then, Green and then Blue.

## Discussions

## Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.