08/03/2024
Prérequis:
Cours de physique sur le condensateur
Liaison série Asynchrone Arduino et PC
But:
Comprendre la charge d'un condensateur
Ou mesure d'un condensateur avec un Arduino
/* ce sketch permet de mesurer la constante de temps d'un circuit RC série avec R = 100 kohms
et C inconnue, et d'en déduire la valeur de C
pour des valeurs de C inférieures à 33 uF (car on attend 10 secondes entre chaque mesure)
avec la méthode des 63 % appliquée à une lecture sur une valeur numérique finale en sortie
valant 1023 (codage sur 10 bits) soit 644
*/
#define analogPin 0 // définit la broche analogique (A0) de mesure de la tension uC(t)
#define chargePin 12 // définit la broche permettant la charge du condensateur
unsigned long t0 ; // temps initial
unsigned long Tau ; // temps caractéristique du dipôle RC
float C ; // valeur de la capacité (en microfarads)
void setup() {
pinMode(chargePin, OUTPUT) ; // définit la broche 12 d'alimentation en sortie
digitalWrite(chargePin, LOW) ; // applique une tension nulle en entrée du circuit RC
Serial.begin(9600) ; // fixe le débit de transmission pour la communication série
}
void loop() {
digitalWrite(chargePin, HIGH) ; // charge du condensateur : applique 5V en entrée du circuit RC
t0 = micros() ; // début de la mesure du temps écoulé en microseconde
while (analogRead(analogPin) < 644); // tant que le niveau lu est inférieur à 644 sur la broche A0, boucler sans rien faire
Tau = micros() - t0 ; // calcule Tau en microseconde
Serial.println("la constante de temps vaut :") ;
Serial.print(Tau) ; // Affiche la valeur de tau
Serial.println(" microsecondes") ; // affiche l'unité de Tau et retourne à la ligne
C = (float)Tau / 100000 ;
/* calcul de C grâce à Tau = R.C avec tau en microsecondes, R en ohms et C en microfarads
float permet de changer le type de variable pour tau de façon à gagner en précision pour le résultat de C
on "cast" la variable tau dans le jargon
*/
Serial.println("la capacité vaut :") ;
Serial.print(C) ; // Affiche la valeur de C
Serial.println(" microfarads") ; // affiche l'unité de C et retourne à la ligne
digitalWrite(chargePin, LOW); // applique une tension nulle en entrée du circuit RC
delay(10000); // pause de 10 secondes avant de refaire une mesure
}
Et les fonctions de chaque broches
Donner un schéma de câblage.
Nous avons des condensateurs , (noir)
Mesurer si un seul , puis 2 en parallèle , justifier votre réponse.
et faire une mesure 2 en série , justifier votre réponse.