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
Communication entre l'ordinateur et la carte Arduino
Méthode : Environnement 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.
# Créé par Gilles Claudel, le 21/11/2018 en Python 3.4
from commandesPython import Arduino
import time
import os
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as st
def fichImage(ref, nb):
os.makedirs("mesures",exist_ok=True)
image = "u=f(i)/caracteristique_R" + ref + "_n" + str(nb) + "_modelisee.png"
plt.savefig(image, dpi=300) #sauvegarde du fichier image de la caractéristique u = f(i)
return(0)
def fichMes(ref, nb, i, u):
os.makedirs("mesures",exist_ok=True)
fichier = "mesures/fichier_R" + ref + "_n" + str(nb) + ".txt"
mes_mesures = open(fichier, "w") #création ou écrasement d'un fichier ouvert en écriture
j = 0
mes_mesures.write("i (A),u (V)\n") #entête du fichier de mesure
while j < nb:
mes_mesures.write(str(i[j]/1000)+","+str(u[j])+"\n") #Le séparateur est la virgule pour Geogebra
j = j + 1
mes_mesures.close() #fermeture du fichier texte
return(0)
def predict(x, a, b):
return a * x + b
k=0
u=[]
i=[]
R=[]
port = "COM3" #à modifier si besoin
ard = Arduino(port) #La classe Arduino permet de communiquer via le port série avec le micro-contrôleur
#On teste les saisies et on vérifie si ce sont bien des nombres
dipole = input("Valeur de référence de la résistance ?\n")
while True:
try:
r = float(input("Valeur de la résistance étalon pour la mesure de l'intensité ?\n"))
break
except ValueError:
print("Entrez un nombre.")
while True:
try:
n = int(input("Nombre de mesures ?\n"))
break
except ValueError:
print("Entrez un nombre entier.")
print("Faire varier l'intensité du courant dans le dipôle pendant environ 5 secondes")
time.sleep(0.5)
#Période d'échantillonnage
T_e = 5.0/n #durée entre deux mesures telle que la durée totale soit de 5 s
while k < n:
sensorU2 = ard.analogRead(0) #La lecture d'une entrée analogique et sa conversion A/N : ce n'est pas instantané
time.sleep(0.001)
sensorUr = ard.analogRead(1)
time.sleep(0.001)
sensorGND = ard.analogRead(2)
time.sleep(0.001)
u.append(((sensorU2-sensorUr)/1023.0)*5.0) #u en V : u = u_2 - u_r
i.append(((sensorUr-sensorGND)/1.023)*5.0/r) #i en mA : i = u_r / r
k = k + 1
time.sleep(T_e)
ard.close() #Après n mesures, on libère le port de communication
#
# Travail à faire
# - représenter un nuage de points associé à la caractéristique du dipôle
#
# Création du fichier texte de mesures pour une 1re exploitation dans Geogebra
fichMes(dipole, n , i, u)
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
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.
Remarque : Ce que l'élève n'a pas à faire
Test du programme
Remarque : Dossier mesures
Le fichier de mesurage sera stocké dans le sous-dossier "mesures" du dossier accueillant le programme loi_ohm.py.
Exemple : Exé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.