50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#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);
|
|
/*
|
|
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;
|
|
double 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
|
|
}
|