Mesurer une tension analogique avec l’ADC de la Pi Pico en MicroPython
Rôle d'un convertisseur analogique / numérique
Conversion analogique / numérique
Certaines broches de la Pi Pico sont dotées d’un ADC.
Un ADC (Analog Digital Converter) est un convertisseur analogique vers numérique : il renvoie une valeur numérique quasiment proportionnelle à la tension analogique présente en entrée d'une broche.
Note
En français, un ADC est généralement appelé un CAN, pour Convertisseur Analogique Numérique.
Pour éviter toute confusion, il est recommandé d’utiliser l’acronyme anglais ADC au lieu de CAN, car il existe également un bus CAN, un protocole de communication très répandu dans le monde automobile.
Caractéristiques de l’ADC de la Pi Pico
ADC de la Pi Pico
Les broches 26
, 27
et 28
de la Raspberry Pi Pico sont des entrées analogiques qui peuvent accepter des tensions analogiques comprises entre 0V et 3.3V (les valeurs numériques associées allant alors de 0
à 65535
).
La conversion analogique numérique prend quelques micro-secondes.
Capteur de température intégré
Il existe une entrée analogique « cachée » associé à un capteur de température dans le microcontrôleur RP2040 de la Pi Pico qui permet de mesurer la température du microcontrôleur.
Il ne faut pas l’utiliser pour connaître la température de la pièce. Cette entrée correspond au canal ADC_4
.
Tension en entrée
La tension d’entrée sur ces entrées analogiques ne doit pas dépasser 3.3V, car une tension plus élevée pourrait endommager l’ADC.
Lire une entrée analogique avec MicroPython
Lecture d'une entrée analogique
Pour mesurer la tension d’une entrée analogique, on utilise la fonction ADC
du module machine
.
1 2 3 4 5 |
|
Remarque
On peut également créer un objet en spécifiant le numéro du canal analogique que l’on souhaite utiliser.
1 2 3 |
|
Une fois l’entrée analogique configurée en MicroPython, il suffit d’utiliser la fonction .read_u16()
de l'objet adc_pin
sur la Raspberry Pi Pico pour lire la valeur numerique associé à la valeur de la tension d'entrée.
1 2 3 4 5 6 7 8 9 10 11 |
|
Exercice 5.1
Exécuter le programme précédent.
Application - Mesurer la température interne de la Raspberry Pi Pico
Mesure de temperature
Comme indiqué précédemment, la Pi Pico possède un capteur de température interne pour mesurer la température du microcontrôleur RP2040.
Ce capteur est directement relié à l’entrée ADC_4
de l’ADC.
Pour mesurer la température, il faut :
-
Récupérer la valeur numérique image de la température.
-
Convertir cette valeur en tension.
-
Utiliser une formule donnée dans la documentation du RP240 pour convertir cette tension en température (en °C).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Sortie de la console :
32.19402
32.66216
31.72584
33.13027
33.59842
Exercice 5.2
Exécuter le programme précédent.
Application - Contrôler l’intensité d’une LED via un potentiomètre
Contrôle de l'intensité d'une LED externe
Nous allons utiliser à la fois le PWM, l’ADC et MicroPython afin de contrôler l’intensité d’une LED externe à l'aide d'un potentiomètre.
Le circuit à câbler est le suivant :
Attention
N’oubliez pas de mettre une résistance en série avec la LED (par exemple de 330Ω) pour éviter qu’elle ne soit endommagée.
Ce script Python permet de lire la position du potentiomètre via l’ADC de la Raspberry Pi Pico :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Exercice 5.3
Exécuter le programme précédent.
Contrôle de l'intensité d'une LED externe
Ce dernier script doit permettre de lire la position du potentiomètre et de faire varier la luminosité en conséquence.
Exercice 5.4
Saisir le programme approprié.
Exécuter le programme précédent.
Montrer au professeur.