#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 18 15:39:43 2023

@author: eddiesaudrais
"""

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit

def diode(v,I0,Ip,a):
    i = I0*(np.exp(v/a)-1)-Ip
    return i



R = 50e3

fichiers = [["F0001CH1.CSV","F0001CH2.CSV"],["F0002CH1.CSV","F0002CH2.CSV"],["F0003CH1.CSV","F0003CH2.CSV"],
            ["F0004CH1.CSV","F0004CH2.CSV"]]

#fichiers = [["F0004CH1.CSV","F0004CH2.CSV"]]  
    
plt.close()

param = []

for fichier in fichiers:
    data_CH1 = np.genfromtxt(fichier[0],delimiter=",")
    data_CH2 = np.genfromtxt(fichier[1],delimiter=",")
    
    v = data_CH1[:,4]
    i = data_CH2[:,4]/R
    
    plt.plot(v,1e6*i,"+") # tracé caractéristique, i en micro ampère
    
    popt,pcov = curve_fit(diode,v,i,p0 = None)
    param.append(popt)
    plt.plot(v,1e6*diode(v,*popt))
    print(popt)

theta = [0,30,60,90]
I_0 = [param[0][0],param[1][0],param[2][0],param[3][0]]
I_p = [param[0][1],param[1][1],param[2][1],param[3][1]]
A = [param[0][2],param[1][2],param[2][2],param[3][2]]


plt.grid()
plt.xlabel("$v$ (V)")
plt.ylabel("$i$ ($\mu$A)")
plt.title("caractéristique de la photodiode en fonction de l'éclairement")

plt.savefig("caracteristique-photodiode.pdf")

plt.show()

plt.close()
plt.ylim(0,1.2e-7)
plt.xlabel("θ (°)")
plt.ylabel("$I_0$")
plt.plot(theta,I_0,"+",markersize=10)
plt.plot(theta,I_0,linewidth=.2)
