first commit
This commit is contained in:
68
PILE_TESTEUR/PILE_TESTEUR.ino
Executable file
68
PILE_TESTEUR/PILE_TESTEUR.ino
Executable file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Programme de benchmark de piles LR6, AAA, CR2032 ou tout autre piles inférieur à 5v
|
||||
*/
|
||||
|
||||
/* Valeur de la résistance de charge */
|
||||
const float charge_resistor = 22;
|
||||
|
||||
/* Broche de mesure */
|
||||
const byte analog_pin = A0;
|
||||
|
||||
/* Macro de conversion valeur numérique -> tension en volts */
|
||||
//#define ADC_TO_VOLTS(value) ((value / 1023.0) * 3.3)
|
||||
#define ADC_TO_VOLTS(value) ((value / 1023.0) * 5.0)
|
||||
|
||||
/* setup() */
|
||||
void setup() {
|
||||
|
||||
/* Initialise le port série */
|
||||
Serial.begin(9600);
|
||||
|
||||
/* Si vous voulez mesurer des piles de moins de 3.3v il est plus précis d'utiliser AREF comme référence
|
||||
* et de mettre un câble entre +3v3 et AREF */
|
||||
//analogReference(EXTERNAL);
|
||||
}
|
||||
|
||||
/* loop() */
|
||||
void loop() {
|
||||
|
||||
/* Attend la mise en place d'une pile >1 volts = 200*/
|
||||
while(analogRead(analog_pin) < 1);
|
||||
|
||||
/* Compteur de temps */
|
||||
unsigned int time = 0;
|
||||
|
||||
/* Résultat de analogRead() */
|
||||
unsigned int analog;
|
||||
|
||||
/* Mesure la batterie jusqu'a ce quelle atteigne 1 volts*/
|
||||
while((analog = analogRead(analog_pin)) >= 1) {
|
||||
|
||||
/* Mesure de la tension de la batterie (en volts) */
|
||||
float vbat = ADC_TO_VOLTS(analog);
|
||||
|
||||
/* Calcul du courant traversant la résistance (en mA) */
|
||||
float ibat = (vbat * 1000) / charge_resistor; // I = U / R
|
||||
|
||||
/* Calcul de la puissance de la batterie (en mW) */
|
||||
float pbat = vbat * ibat; // P = U * I
|
||||
|
||||
/* Affiche les résultats au format CSV */
|
||||
Serial.print(time);
|
||||
Serial.print(", analog=");
|
||||
Serial.print(analog);
|
||||
Serial.print(", volt=");
|
||||
Serial.print(vbat);
|
||||
Serial.print("V, intensite=");
|
||||
Serial.print(ibat);
|
||||
Serial.print(" mA, puissance=");
|
||||
Serial.print(pbat);
|
||||
Serial.println(" mW");
|
||||
|
||||
/* Incrémente le compteur de temps */
|
||||
++time;
|
||||
|
||||
/* Attend une seconde */
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user