Entrées analogiques

Ce que l'on va faire ici

Ici, nous allons voir comment utiliser les broches GPIO en entrée analogiques avec MicroPython pour réaliser des mesures.

Liens utiles :

Les broches GPIO de la Pyboard

La Pyboard dispose de 30 broches GPIO utilisables en entrée ou en sortie.

Ces broches sont dénommées :

  • X1 à X22
  • Y1 à Y8

Les broches analogiques sont :

  • X1 à X8, X11, X12
  • Y11, Y12
  • X19, X20, X21 et X22 qui sont connectées à des éléments de la carte pour mesure température, batterie, etc.

Infos techniques utiles

  • Les broches analogiques mesurent en 3.3V sur 12 bits (0-4095) soit une précision de 0,8mV !

Instructions Micropython utiles

Désignation

Pin(id,[mode], [pull=Pin.PULL_NONE])

La broche GPIO est instanciée sous forme d'un objet Pin.

La broche, au moment de sa déclaration peut être dénomée au choix par :

  • son nom cpu : pyb.cpu.Name
  • son nom board : pyb.Pin.board.X1
  • par une chaîne texte : 'X1'

Il est également possible de créer une dénomination personnalisée des broches. Voir la doc.

Configuration

On "caste" la Pin en broche analogique grâce à la classe ADC() :

ADC(pin) 

Utilisation

  • .read() : renvoie la valeur analogique actuelle de la broche entre 0 (0V) et 4095 (=3.3V)
  • .read_timer(buf,timer) : lit une série de valeur à intervalles réguliers

Exemple : Mesurer la sortie d'une résistance variable linéaire.

Le circuit à réaliser est le suivant :

Le code est le suivant :

import pyb

rvar=pyb.ADC(pyb.Pin('X3'))

while(True): # boucle sans fin
    mesure=rvar.read()
    print(mesure),
    mV=mesure/4095.0*3300
    print(" soit ",mV, " mV.")
    pyb.delay(250)

La mesure brute et la tension calculées s'affichent avec la précision attendue :