Skip to content

Mesurer une tension analogique

Ce que l'on va faire ici

Dans ce programme Micropython, nous allons voir comment réaliser une mesure analogique.

Success

Ce programme vous montre tout l'intérêt d'utiliser des Timers pour faire du "multi-tâches" très simplement. Merci Micropython !

Matériel

  • une carte Pi Pico flashée avec MicroPython et préparée pour utilisation en vertical sur plaque d'essai

  • une résistance variable

  • une petite plaque d'essai

  • quelques jumpers

Une autre possibilité est l'utilisation d'un module "prêt à câbler" à résistance variable :

Le schéma théorique

La résistance variable est connectée entre le +3.3V et le 0V (GND). Sa sortie est connectée sur une broche analogique de la carte.

Le montage à réaliser

  • On utilise ici la carte Pi Pico en vertical sur la plaque d'essai.
  • La résistance variable est connectée entre le +3.3V et le 0V (GND).
  • Sa sortie est connectée sur une broche analogique de la carte, ici ADC0 (broche GP26)

Si on utilise un module PAC, le montage devient :

Le code

  • on déclare un objet ADC basé sur la broche ADC0
  • on lit la valeur à intervalle régulier, à l'aide d'un Timer

La fonction read_u16() renvoie une valeur 16 bits, bien que la mesure soit en 12 bits.

# code Micropython - www.micropython.fr - CC-BY-SA

from machine import ADC, Timer

sensor=ADC(0) # capteur connecté sur ADC0

timer=Timer()

def loop(timer):

    valueV=(sensor.read_u16()*3.3/65535) # conversion en millivolts

    print("{:.2f}".format(valueV)) # avec 2 décimales

timer.init(freq=1, callback=loop) # rappel de la fonction loop

Résultat

La valeur mesurée en millivolts s'affichent dans le terminal série