Dipôles RC – Activité 1

Etude de la charge d’un condensateur
d’un dipôle RC

 

. Objectif

L’objectif de l’activité est suivre l’évolution temporelle de la tension aux bornes du condensateur lors de sa charge afin de vérifier la relation :

 

. Le circuit

L’activité sera réalisée avec le circuit suivant : 


. Liste des composants :

. 1 condensateur de 100 µF (C chimique : attention à la polarité)
. 2 résistances de 10 kΩ (résistance du bouton poussoir et du dipôle RC)
. 1 bouton poussoir
. 1 plaque d’essais
. Fils de connexion

 

Dans ce montage, La carte Arduino est utilisée :

. pour appliquer une tension de 5 volts aux bornes du dipôle résistance – condensateur grâce à une sortie numérique (broche 2),

. pour mesurer la tension aux bornes du condensateur à l’aide d’une entrée analogique (broche A0).

Suivant l’état logique de broche N°2 déclarée en sortie numérique, le schéma électrique sera équivalent à :

Avec un Arduino, pour obtenir des mesures suffisamment précises, il faut utiliser un dipôle RC conduisant à des constantes de temps longues (quelques centaines de millisecondes au minimum).

 

. Descriptif de l’activité

Après avoir déchargé le condensateur, la mesure de la tension aux bornes du condensateur Uc, lors de la charge, à l’aide de l’entrée analogique A0 est lancée, à t = 0 s, par un appui sur le bouton poussoir.

La valeur de la tension en V est affichée dans le moniteur série toutes les 100 ms.

Les mesures sont arrêtées en appuyant sur le bouton poussoir. Le condensateur est alors déchargé afin de pouvoir effectuer de nouvelles mesures en appuyant de nouveau sur le bouton poussoir.

Il est donc possible d’acquérir des couples de données (t, Uc) afin de vérifier la relation Uc= f(t) théorique.

 

. Le programme

Voici le code de l’activité :

 

Déroulement du programme :

– 1. Déclaration des constantes et variables :

. const int PinUc = 0     (broche du condensateur : A0)

. const int PinButton = 12   (broche du bouton poussoir)

. const int PinAlimC = 2    (broche d’alimentation du dipôle RC)

. int ValPinUc = 0    (variable nombre entier pour stocker la valeur de la broche du condensateur)

. float Uc = 0.0     (variable nombre décimal pour stocker le résultat du calcul de la tension Uc)

. unsigned long t0   (variable nombre entier long pour stocker la date du début de charge )

. float dt   (variable nombre décimal pour stocker la différence de temps entre les mesures de Uc)

. int ValButton = 0   (variable nombre entier pour stocker la valeur de la broche du bouton poussoir)

. int OldValButton = 0    (variable nombre entier pour stocker la valeur précédente de la broche du bouton poussoir)

. int State = 0    (variable nombre entier correspondant à l’action à effectuer)

. int OldState = 0   (variable nombre entier correspondant à l’action effectuée précédemment)

– 2. Déclaration de fonctions :

–> Fonction permettant de décharger le condensateur :

– Mise à niveau bas de la broche d’alimentation du dipôle RC :
digitalWrite(PinAlimC, LOW)

– Attente de la fin de la décharge du condensateur :
while (analogRead(PinUC) > 0) )

– 3. Initialisation des entrées et sorties :

. Initialisation de la liaison série à un débit de 9600 bauds,

. Initialisation de la broche du bouton poussoir en entrée,

. Initialisation de la broche d’alimentation du dipôle RC en sortie,

. Décharge du condensateur.

– 4. Fonction principale en boucle :

Remarque :

La fonction « micros() » renvoie le nombre de microsecondes, sous la forme d’un nombre de type unsigned long, depuis que la carte Arduino a démarré le programme en cours. Ce nombre repasse à 0 après approximativement 70 minutes.

Syntaxe :

variable_unsigned_long = micros();

 

Résultats dans le moniteur série :

 

. Exploitation des mesures :

Pour exploiter les mesures, il suffit de sélectionner et de copier toutes les données à partir du moniteur série et d’ouvrir un nouveau fichier dans Regressi à partir du ”Presse-papier”.

On peut alors tracer le graphe représentant la tension aux bornes du condensateur en fonction du temps :

 

Et effectuer une modélisation suivant :


La valeur théorique de τ est :

τ = RC = 10.103 x 100. 10-6 = 1 S

Par la modélisation, la détermination de t donne une valeur très proche de la valeur théorique.


On peut également déterminer t à l’aide de la tangente à l’origine ou par la mesure du temps pour lequel le condensateur est chargé à 63 % (0,63 x 5 = 3,15 V):