P2E-Analog-Input-FR

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Page-under-construction.pngPage(s) en cours de traduction/élaboration.

Page(s) under translation/construction

Introduction

Le Pico dispose de plusieurs entrées analogiques communément appelée A0, A1, A2 localisées sur les broches GP26, GP27 et GP28.

Ce type de broche permet de lire précisément la tension présente sur la broche d'entrée. A l'opposé d'une entrée numérique où il existe seulement deux valeurs (1 ou 0), l'entrée analogique retourne une valeur entière entre 0 et 65535 (valeur 16 bits). Cette valeur couvre la plage de tension entre 0V et 3.3V.

Il existe de très nombreux périphériques capable de produire une tension analogique en sortie. Le plus simple est le potentiomètre qui produit une tension de sortie proportionnelle à la rotation de son axe. Une tension analogique peut servir à fournir une référence de consigne ou dans le cas d'un capteur, produire une tension de sortie proportionnelle au phénomène physique mesuré (distance, température, luminosité, etc).

Cas pratique

Dans cet exemple, nous allons utiliser l'entrée analogique A0 (GP26) pour mesurer la tension produite par le potentiomètre. Le script affiche la valeur du convertisseur et la tension correspondante

Un potentiomètre linéaire produit une tension de proportionnelle à la position du curseur. L'image ci-dessous présente la mise en relation entre la position du curseur sur la résistance interne et la tension de sortie.

P2E-Analog-Input-Pot.png

Branchement simplifiée

Dans cet exemple, nous allons utiliser l'entrée analogique A0 (sur GP26) et mesurer la tension analogique produite par le potentiomètre.

P2E-analog-input.png

Code

Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.

Cet exemple est également disponible dans le dépôt Pico-2-Explorer/analog-pot/

 1 from machine import Pin, ADC
 2 import time
 3 
 4 # Désactive PowerSafe (lower ripple)
 5 Pin( 23, Pin.OUT, value=True )
 6 
 7 a0 = ADC( Pin( Pin.board.GP26 ) )
 8 while True:
 9     val = a0.read_u16()
10     volt = val*3.3/65535
11     print( 'adc= %5i , volt= %1.2f' % (val,volt) )
12     time.sleep_ms( 300 )

Voici quelques explications:

  • Ligne 1: importer la classe Pin et ADC depuis le module machine. La classe ADC permet d'interroger le convertisseur Analog-to-Digital-Converter (convertisseur analogique/numérique).
  • Ligne 5: le GPIO23 contrôle le mode d'économie d'énergie de convertisseur DC/DC. Ce dernier est actif par défaut (niveau BAS), ce qui maximise le rendement du convertisseur mais génère aussi plus de bruit sur la tension 3.3V produite. Ce bruit se retrouvera inévitablement sur l'entrée analogique au moment de la lecture. Cette ligne du script place le GP12 au niveau HAUT, ce qui désactive le mode économique. Le rendement sera moins bon mais le bruit sur l'alimentation diminue significativement.
  • Ligne 7: création d'une instance de la classe ADC permettant d'interroger le convertisseur ADC. Cette classe nécessite une broche en paramètre, celle sur laquelle se trouve l'entrée analogique.
  • Ligne 8: Boucle infinie qui répète l'exécution du bloc 9 à 10.
  • Ligne 9: l'appel a0.read_u16() interroge le convertisseur et retourne un entier 16 bits (0 à 65535). Cette valeur est proportionnelle à la tension présente sur l'entrée.
  • Ligne 10: transformation de la valeur en tension.
  • Lignes 11 et 12: affichage de la valeur et pause de 300 millisecondes avant la lecture suivante.

Un problème?

Les valeurs affichées sont incohérente ? Voici quelques pistes de recherche:

  1. Vérifier votre câblage. Etes-vous bien connecté sur la broche GP26 du microcontrôleur ?
  2. Le script désactive t'il le mode d'économie d'énergie du régulateur ?

Le défi

Les utilisateurs de Thonny IDE peuvent utiliser un outils nommé "Plotter" qui permet de visualiser, sous forme de graphique, des données générées par le script MicroPython.

Le défi consiste a modifier le script pour afficher uniquement la tension (juste la valeur) puis visualiser cette information dans le "Plotter" de Thonny.

Modifiez la position du potentiomètre et visualisez l'effet sur le rendu du graphique.

Encore plus

xxx

Truc et astuce

xxx

Modèle:P2E-TRAILER