Main

Référence : Fonctions Pyduino

analogReadRepeat()


Description

Réalise plusieurs mesures successives sur une broche analogique (voir la fonction analogRead) et renvoie la moyenne des mesures de la tension présente sur la broche spécifiée. Cette fonction renvoie une valeur "brute" qui est fonction de la résolution de la broche utilisée :

  • une valeur comprise entre 0 et 63 pour une broche ayant une résolution de 6 bits
  • une valeur entre 0 et 1023 pour une broche ayant une résolution de 10 bits (comme l'Arduino)
  • une valeur entre 0 et 4095 pour une broche ayant une résolution de 12 bits...

Réaliser une moyenne de plusieurs mesures est une technique classique pour s'affranchir des fluctuations aléatoires de la tension mesurée.

Syntaxe

La syntaxe est la suivante :

analogRead(broche_analogique, repeat)
analogRead(broche_analogique, repeat)

Paramètres

  • broche_analogique : le numéro de la broche analogique sur laquelle il faut convertir la tension analogique appliquée (de 0 à 5 ou bien de A0 à A5 sur le pcDuino). L'utilisation d'un identifiant Ax, où x est le numéro de la broche analogique, est intégré dans pyDuino et permet de distinguer facilement un numéro de broche analogique d'un numéro de broche numérique.
  • repeat : le nombre mesures à effectuer

Valeur renvoyée

  • valeur int correspondant au résultat de la mesure effectuée :
    • Sur le pcDuino :
      • de 0 à 63 sur les broches A0 et A1, pour une tension comprise entre 0 et 2V
      • de 0 à 4095 sur les broches de A2 à A5, pour une tension comprise entre 0 et 3.3V

La gestion des spécificités de mesure de chaque broche peut compliquer inutilement la compréhension du code. C'est pourquoi, pour simplifier l'usage des mesures analogiques, Pyduino intègre la fonction analogReadmV() qui renverra d'emblée la tension mesurée en mV, la prise en compte des caractéristiques de la broche utilisée étant automatique. Pratique !

Exemple

Voici un code d'exemple :


#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3
# voir : https://github.com/sensor56/pyDuino

# test analogRead

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative

#--- setup ---
def setup():
        return # si vide

# -- fin setup --

# -- loop --
def loop():

        #voie A0
        mesure=analogRead(A0,20) # moyenne de 20 mesures sur la voie A0
        tension = mesure*2000.0/63.0 # voie A0 et A1 = 6 bits (0-63) sur plage 0-2V

        Serial.println (" Voie A0 = " + str(mesure) + " soit " + str("%.2f" % tension) + " mV." )

        #voie A2
        mesure=analogRead(A2,20) # moyenne de 20 mesures sur la voie A2
        tension = mesure*3300.0/4095.0 # voie A2 à A5 = 12 bits (0-4095) sur plage 0-3.3V

        Serial.println (" Voie A2 = " + str(mesure) + " soit " + str("%.2f" % tension) + " mV." )

        delay(1000)# entre 2 mesures

# -- fin loop --

#--- obligatoire pour lancement du code --
if __name__=="__main__": # pour rendre le code executable
        setup() # appelle la fonction main
        while(1): loop() # appelle fonction loop sans fin
 

Remarque

Les broches analogiques sont utilisées en entrée. Il n'est pas nécessaire de les configurer avec pinMode() au préalable à l'appel de la fonction analogRead()

Commentaires utilisateurs

Aucun commentaire

Voir également :


Page d'accueil de la référence Pyduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées à l'adresse suivante : support_at_mon-club-elec_point_fr

Cette page a été réalisée par Xavier HINAULT (2013) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.