#include "mesure.h" #define __PIN_PWM__ 3 #define DEBUG float target_curent = 0.05;//ma courant collecteur(A0,A1,100,1,1,0.248,0.248); // R1 10K, R2 3K3 courant base(A2,A3,820,1,1,0.5,0.5); /* courant collecteur(Potentien Haut U1,Potentiel Bas U2,Resistance[,Pon résistif sur U1,Pon résistif sur U2, Raport Résistance U1, Raport Résistance U2]); par ex courant collecteur(A0,A1,800,1,1,0.2,0.8); courant collecteur(A0,A1,800,1,0,0.1); courant collecteur(A0,A1,800,0,1,0.8); */ void setup() { pinMode(3,1); Serial.begin(9600); Serial.println("Ic;Vce"); } void loop() { static int PWMCourent = 122; float iBase = base.lireCourant(); if(iBase < target_curent*0.9) PWMCourent++; else if(iBase > target_curent) PWMCourent--; #ifndef DEBUG else { #endif //Courent stabilisé on affiche les valeurs Serial.print(collecteur.lireCourant());Serial.print(";");Serial.print(collecteur.lireTensionU2());Serial.print("\n"); delay(500); #ifndef DEBUG } #endif analogWrite(__PIN_PWM__, PWMCourent); #ifdef DEBUG Serial.print("PWM:");Serial.print(PWMCourent); Serial.print("\tIBase:");Serial.print(base.lireCourant());Serial.print("\tU1:");Serial.print(base.lireTensionU1()); Serial.print("U2");Serial.println(base.lireTensionU2()); #endif }