Circuit RC

Un exemple d'utilisation de Web Sciences en mode temporel

La charge ou la décharge d'un condensateur à travers une résistance est un cas d'école pour illustrer toutes les possibilité des mesures temporelles offertes par la biblothèque Web Sciences.

Le mode temporel permet de tracer une ou plusieurs grandeurs mesurées par Arduino en fonction du temps.

I. Montage

Dans ce montage, c'est le programme qui déclenche la charge du condensateur en plaçant le pin 3 à l'état haut au début des mesures.

Matériel nécessaire

  • Un condensateur de 100µF
  • Une résistance de 1kΩ
  • Deux résistances de 220Ω
  • Deux leds (une rouge et une verte).
  • Une carte Arduino équipée d'une breadboard
  • Quelques fils

Montage

Les leds sont présentes uniquement dans un but de visualisation. Il est possible de les supprimer.


Script Arduino

Deux versions du programme sont fournies :

  • le programme circuit_rc.ino pour lequel la constante de temps du circuit peut être de quelques secondes qui envoie les valeurs de E (tension aux bornes du circuit) et de uc (tension aux bornes du condensateur) sur la liaison série après chaque mesure.
  • le programme condo_rapide.ino pour lequel la constante de temps du circuit peut être de quelques centaines de millisecondes qui, dans un but de rapidité, envoie les toutes valeurs une fois que les mesures sont terminées.

Fonctionnement

Le programme:

  • attend l'arrivée d'une commande (charge ou decharge) sur la liaison série et réagit en conséquence:
  • si la commande est charge, il place le pin 3 à l'état haut et effectue la série de mesure. Chaque mesure est envoyée sur la liaison série juste après sa réalisation. la série se termine par l'envoi du mot end.
  • si la commande est decharge, il place le pin 3 à l'état bas et effectue la série de mesures comme précédement.

Code javascript

Le programme javascript à utiliser est le suivant :

mode = "temporel";
commandes = [{texte_bouton:"Charge", arduino:"charge"},
             {texte_bouton:"Décharge", arduino:"decharge"}];
series = [{grandeur: "Uc", unite: "V"}, {grandeur: "E", unite: "V"}];
titre_graphe = "Circuit RC";
axes = [{grandeur: "t", unite: "ms"}, {grandeur: "U", unite: "V"}];

Le code complet à insérer dans une cellule Jupyter

from web_sciences import WebSciences

my_init = '''
mode = "temporel";
commandes = [{texte_bouton:"Charge", arduino:"charge"},
             {texte_bouton:"Décharge", arduino:"decharge"}];
series = [{grandeur: "Uc", unite: "V"}, {grandeur: "E", unite: "V"}];
titre_graphe = "Circuit RC";
axes = [{grandeur: "t", unite: "ms"}, {grandeur: "U", unite: "V"}];
'''

interface = WebSciences(my_init)
interface.affiche()

Ce code :

  • envoie une commande parmi charge ou decharge ou sur la liaison série.
  • recupère les données envoyées par la carte Arduino sur la liaison série.
  • affiche le graphe U = f(t).

Exemple d'éxécution


Démo en ligne

  • Télécharger le script circuit_rc.ino en cliquant sur le lien.
  • Téléverser ce script dans la carte à l'aide de l'IDE Arduino.
  • Réaliser le montage décrit ci-dessus (les leds ne sont pas obligatoires).
  • Cliquer sur le bouton Connexion ci-dessous et sélectionner le port correspondant à la carte.
  • Cliquer sur le bouton Charge. La carte effectue 50 points de mesure des tensions E et uc en une durée de 7.0 secondes. Les données sont transmises par la liaison série.
  • Le script affiche les données reçues sur un graphe U = f(t).
  • Cliquer sur le bouton Copie presse papier pour récupérer les données dans le presse papier. Dans cet exemple, les données sont formatées sous forme de tableaux python. Il est cependant possible d'obtenir un formatage compatible avec un tableur comme Régressi ou Excel en cochant la case ci-dessous.
tableur = false;

Le traitement des données permet de tracer les graphes uc = f(t), ur=f(t), E=f(t), de les modéliser et de déterminer la constante de temps du circuit (voir le notebook ci-dessous).

Liens