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