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

REMARQUE :

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

Affectation des entrées / sorties numériques :

Les broches numériques peuvent être configurés individuellement en entrée ou en sortie. Pour cela, il faut créer une variable image de la broche numérique (par exemple, maBroche) et lui spécifier le sens, entrée ou sortie :

1
import digitalio
2
maBroche = digitalio.DigitalInOut(board.DXX)
3
maBroche.direction = digitalio.Direction.sens

Remplacer la valeur XX par le numéro de la broche numérique utilisée.

La propriété sens est à remplacer par une des 2 valeurs :

  • OUTPUT : définit la broche en sortie ;

  • INPUT : définit la broche en entrée.

Lecture et écriture sur une entrée / sortie numérique :

Les fonctions d'entrées / sorties numériques permettent de lire l'état logique d'une entrée ou de piloter l'état logique d'une sortie.

1
maBroche.value = False
2
maBroche.value = True

Commande l'état logique de la sortie maBroche.

Rappel : False = Faux (= niveau logique 0) & True = Vrai (= niveau logique 1)

1
maBroche.value

Lecture de l'état logique de l'entrée maBroche et renvoie la valeur False ou True.

Exercice n°1

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

1
import board
2
import digitalio
3
import time
4
5
BP = digitalio.DigitalInOut(board.D2)
6
BP.direction = digitalio.Direction.INPUT
7
LED = digitalio.DigitalInOut(board.D13)
8
LED.direction = digitalio.Direction.OUTPUT
9
10
while True:
11
   if BP.value :
12
      LED.value = True
13
   else :
14
      LED.value = False

Remarque : la fonction import permet d'inclure les fonctions d'une librairie dans un programme. En effet, afin de ne pas ralentir l'exécution du programme, toutes les fonctions ne sont pas installés d'origine dans un programme de base.

Remarque : la ligne de code "while True"peut sembler inutile mais elle permet de bien marquer le début du programme correspondant à l'algorithme.

Les lignes de codes précédentes correspondants à des affectations et des configurations.

Question

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

Indice

Il faut lire attentivement les 2 lignes de codes correspondants aux paramétrages de BP (dans le second bloc de code).

Solution

La variable BP est une entrée (INPUT) raccordée à la broche D2 (board.D2). Le D correspondant à digital soit numérique.

Question

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

Indice

Il faut lire attentivement les 2 lignes de codes correspondants aux paramétrages de LED (dans le second bloc de code).

Solution

La variable LED est une sortie (OUTPUT) raccordée à la broche D13 (board.D13). Le D correspondant à digital soit numérique.

Question

Q3 : Expliquer le fonctionnement de ce programme.

Indice

Il faut juste préciser l'état de la sortie en fonction de l'état de l'entrée.

Indice

Rappel :

  • Entrée = INPUT => BP (Bouton Poussoir)

  • Sortie = OUTPUT => LED (Light Emitting Diode) (DEL en français ; Diode ElectroLuminescente)

Solution

L’exécution du programme permet d'alimenter la LED si l'utilisateur appuie sur le bouton poussoir (BP) sinon elle n'est pas alimenté (donc éteinte).

Exercice n°2

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

1
import board
2
import digitalio
3
import time
4
5
led = digitalio.DigitalInOut(board.D7)
6
led.direction = digitalio.Direction.OUTPUT
7
8
while True:
9
   led.value = True
10
   time.sleep(0.5)
11
   led.value = False
12
   time.sleep(0.5)

Question

Q4 : Préciser les caractéristiques de la variable led (numéro de la broche et sens).

Indice

Il faut lire attentivement les 2 lignes de codes correspondants aux paramétrages de led (dans le second bloc de code).

Solution

La variable led est une sortie (OUTPUT) raccordée à la broche D7 (board.D7). Le D correspondant à digital soit numérique.

Question

Q5 : Expliquer le fonctionnement de ce programme.

Indice

La fonction sleep (de la librairie time), noté time.sleep, est une temporisation (en seconde).

Solution

L’exécution du programme permet de faire clignoter la led à une fréquence de 1 Hz.

Elle est alimentée 0,5s puis éteinte 0,5s soit une période de 1s et donc une fréquence de 1Hz.