RegulationIntensite/RegulationIntensite.ino

50 lines
1.3 KiB
Arduino
Raw Permalink Normal View History

2017-02-15 19:48:31 +01:00
#include "mesure.h"
2017-02-08 00:45:16 +01:00
2017-02-15 21:27:17 +01:00
#define __PIN_PWM__ 3
2017-02-15 22:27:08 +01:00
//#define DEBUG
2017-02-09 14:12:10 +01:00
float target_curent = 0.05;//ma
2017-02-15 21:27:17 +01:00
courant collecteur(A0,A1,100,1,1,0.248,0.248); // R1 10K, R2 3K3
2017-02-15 22:14:02 +01:00
courant base(A2,A3,820);
2017-02-15 21:27:17 +01:00
/*
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);
*/
2017-02-08 00:45:16 +01:00
void setup()
{
2017-02-15 21:27:17 +01:00
pinMode(3,1);
2017-02-08 00:45:16 +01:00
Serial.begin(9600);
2017-02-15 21:27:17 +01:00
Serial.println("Ic;Vce");
2017-02-08 00:45:16 +01:00
}
void loop()
{
2017-02-15 21:27:17 +01:00
static int PWMCourent = 122;
2017-02-15 22:27:08 +01:00
double iBase = base.lireCourant();
2017-02-15 21:27:17 +01:00
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);
2017-02-15 21:41:51 +01:00
Serial.print("\tIBase:");Serial.print(base.lireCourant());Serial.print("\tU1:");Serial.print(base.lireTensionU1());
Serial.print("U2");Serial.println(base.lireTensionU2());
2017-02-15 21:27:17 +01:00
#endif
2017-02-15 06:44:18 +01:00
}