Appropriation du réel : Mesurage i et u

Durée estimée

Les élèves doivent ici modifier légèrement le montage en plaçant la résistance variable en série avec les deux précédentes.

Ils ouvrent un nouveau fichier Python et réalisent les premières mesures en faisant varier l'intensité du courant dans le dipôle.

Compter 10 minutes.

Réalisation du montage

Câblage de la breadboard

  • Placer la résistance variable (potentiomètre 10 tours, par exemple) en série avec les deux résistances précédentes.

Communication entre l'ordinateur et la carte Arduino

MéthodeEnvironnement Python

L'élève récupère dans son espace personnel et ouvre le fichier loi_ohm.py. Ce programme peut être ouvert dans l'environnement Python, par exemple EduPython.

1
# Créé par Gilles Claudel, le 21/11/2018 en Python 3.4
2
from commandesPython import Arduino
3
import time
4
import os
5
import matplotlib.pyplot as plt
6
import numpy as np
7
import scipy.stats as st
8
9
def fichImage(ref, nb):
10
  os.makedirs("mesures",exist_ok=True)
11
  image = "u=f(i)/caracteristique_R" + ref + "_n" + str(nb) + "_modelisee.png"
12
  plt.savefig(image, dpi=300)	#sauvegarde du fichier image de la caractéristique u = f(i)
13
  return(0)
14
	
15
def fichMes(ref, nb, i, u):
16
  os.makedirs("mesures",exist_ok=True)
17
	fichier = "mesures/fichier_R" + ref + "_n" + str(nb) + ".txt"
18
	mes_mesures = open(fichier, "w")	#création ou écrasement d'un fichier ouvert en écriture
19
	j = 0
20
	mes_mesures.write("i (A),u (V)\n") #entête du fichier de mesure
21
  
22
	while j < nb:
23
		mes_mesures.write(str(i[j]/1000)+","+str(u[j])+"\n")	#Le séparateur est la virgule pour Geogebra
24
		j = j + 1
25
  
26
	mes_mesures.close()	#fermeture du fichier texte
27
	return(0)
28
29
def predict(x, a, b):
30
  return a * x + b
31
	
32
k=0
33
u=[]
34
i=[]
35
R=[]
36
37
port = "COM3"			#à modifier si besoin
38
ard = Arduino(port)		#La classe Arduino permet de communiquer via le port série avec le micro-contrôleur
39
40
#On teste les saisies et on vérifie si ce sont bien des nombres
41
dipole = input("Valeur de référence de la résistance ?\n")
42
43
while True:
44
    try:
45
        r = float(input("Valeur de la résistance étalon pour la mesure de l'intensité ?\n"))
46
        break
47
    except ValueError:
48
        print("Entrez un nombre.")
49
50
while True:
51
    try:
52
        n = int(input("Nombre de mesures ?\n"))
53
        break
54
    except ValueError:
55
        print("Entrez un nombre entier.")
56
57
print("Faire varier l'intensité du courant dans le dipôle pendant environ 5 secondes")
58
59
time.sleep(0.5)
60
#Période d'échantillonnage
61
T_e = 5.0/n	#durée entre deux mesures telle que la durée totale soit de 5 s
62
63
while k < n:
64
    sensorU2 = ard.analogRead(0)	#La lecture d'une entrée analogique et sa conversion A/N : ce n'est pas instantané
65
    time.sleep(0.001)
66
    sensorUr = ard.analogRead(1)
67
    time.sleep(0.001)
68
    sensorGND = ard.analogRead(2)
69
    time.sleep(0.001)
70
71
    u.append(((sensorU2-sensorUr)/1023.0)*5.0)      #u en V : u = u_2 - u_r
72
    i.append(((sensorUr-sensorGND)/1.023)*5.0/r)    #i en mA : i = u_r / r
73
74
    k = k + 1
75
    time.sleep(T_e)
76
77
ard.close()		#Après n mesures, on libère le port de communication
78
79
#
80
# Travail à faire
81
# - représenter un nuage de points associé à la caractéristique du dipôle
82
#
83
84
# Création du fichier texte de mesures pour une 1re exploitation dans Geogebra
85
fichMes(dipole, n , i, u)
86
time.sleep(1)

Il s'approprie, avec l'aide du professeur, les actions réalisées par le programme.

  • ouverture du port série de communication

  • les paramètres personnalisables de la mesure : les input()

    - valeur de référence du dipôle testé : dipole

    - valeur de la résistance étalon pour la mesure d'intensité : r

    - nombre de mesures : n

  • mesure des entrées analogiques : analogRead()

  • remplissage des tableaux i et u avec conversion : \(0 \rightarrow 0\;V\) et \(1023 \rightarrow 5\;V\)

  • fermeture du port série

Conversion analogique numérique

Les valeurs des tensions analogiques évoluent entre 0 et 5 V. Le CAN est sur 10 bits. Donc les valeurs numériques stockées sont entre 0 et 2^10 - 1 = 1023.

Test du programme

RemarqueDossier mesures

Le fichier de mesurage sera stocké dans le sous-dossier "mesures" du dossier accueillant le programme loi_ohm.py.

ExempleExécution du programme

Choisir une résistance étalon de l'ordre de\(1000 \;\Omega\), un potentiomètre 10 tour de quelques \(k\Omega\) pour tracer la caractéristique courant/tension d'un dipôle ohmique dont la valeur de référence est \(R_{th}=1 \;k\Omega\).

Exécuter le programme avec 50 mesures.

Ouvrir le fichier fichier_R1000_n50.txt avec le tableur de Geogebra.