Communiquer avec un système : entrées / sorties analogiques

REMARQUE :

Il sera impossible de faire des essais vu que vous n'avez pas le matériel.

Présentation

Les fonctions d'entrées / sorties analogiques permettent de convertir la tension analogique présente sur une entrée (de 0 à 3,3 V ou de 0 à 5 V généralement) en un nombre binaire ou de convertir un nombre binaire en une tension analogique.

1
import analogio
2
maVariable = analogio.AnalogIn(board.AXX)

La variable maVariable prend la valeur entière comprise entre 0 et 65535 (si valeur codée sur 16 bits) correspondant à la conversion analogique - numérique de la tension (comprise entre 0 et 3,3 V par exemple) appliquée sur la broche analogique XX.

1
import analogio
2
maBroche = analogio.AnalogOut(board.AXX)
3
maBroche.value = YY

Permet de générer une tension analogique (comprise entre 0 et 3,3 V pour notre exemple) proportionnelle à la valeur YY (comprise entre 0 et 65535, toujours pour notre exemple) appliquée sur la broche analogique XX. La variable maBroche est une variable interne correspondant à la valeur de la tension générée.

Exercice

Lire le programme ci-dessous et répondre aux questions.

Ce programme lit la tension appliquée sur l'entrée analogique et génère une rampe de tension sur la sortie analogique.

Ci-contre, l'oscillogramme du signal relevé sur la sortie analogique

1
import analogio
2
3
maBrocheOut = analogio.AnalogOut(board.A0)
4
maBrocheIn = analogio.AnalogIn(board.A1)
5
6
while True:
7
   maValeur = maBrocheIn.value
8
   print("Valeur analogique : " + str(maValeur))
9
   for i in range(0, 65535, 64):
10
      maBrocheOut.value = i
11
   time.sleep(0.2)

Explications supplémentaires :

Le 64 dans la boucle pour (for) correspond au pas de comptage. C'est à dire que l'on compte de 0 à 65535 par pas de 64 (0, 64, 128, 192, 256, ...., 65535).

Question

Q1 : Préciser les caractéristiques de la variable maBrocheOut (numéro de la broche et type).

Indice

Il faut lire attentivement la ligne de code correspondant aux paramétrages de maBrocheOut (dans le second bloc de code).

Solution

La variable maBrocheOut est une sortie analogique (AnalogOut) raccordée à la broche A0 (board.A0). Le A correspondant à analogique.

Question

Q2 : Préciser les caractéristiques de la variable maBrocheIn (numéro de la broche et type).

Indice

Il faut lire attentivement la ligne de code correspondant aux paramétrages de maBrocheIn (dans le second bloc de code).

Solution

La variable maBrocheIn est une entrée analogique (AnalogIn) raccordée à la broche A1 (board.A1). Le A correspondant à analogique.

Question

Q3 : Sachant que la rampe correspond à un "escalier" et non une droite. Déterminer la longueur d'une "marche" (sur l'axe x, en seconde).

Indice

La réponse est directement dans le programme.

Indice

La longueur d'une "marche" correspond à la durée de la temporisation entre 2 boucles.

Solution

La longueur d'une "marche" correspond à 0,2s.

Question

Q4 : Sachant que la rampe correspond à un "escalier" et non une droite. Déterminer la hauteur d'une "marche" (sur l'axe y, en valeur numérique).

Indice

La réponse est directement dans le programme.

Indice

La hauteur d'une "marche" correspond au pas de la boucle Pour (for).

Solution

La hauteur d'une "marche" correspond à 64.

Question

Q5 : Sachant que la valeur maximale est de 1,65 V. Déterminer la hauteur d'une "marche" (sur l'axe y, en volt).

Indice

C'est un peu plus complexe. Il faut commencer par déterminer le nombre de pas (ou nombre de "marches").

Indice

Il y a 65535 / 64 = 1024 pas (ou "marches")

Solution

La hauteur d'une "marche" correspond à 1,65 / 1024 = 0,00161 V = 1,61 mV