AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Capteurs analogiques

Description détaillée

Ce module permet de gérer des capteurs analogiques à réponse linéaire et non-linéaire.
La tension en sortie du capteur est mesurée grâce au convertisseur analogique-numérique intégré au MCU.

Graphe de collaboration de Capteurs analogiques:

Structures de données

struct  xAdcSensor
 Capteur. Plus de détails...
 
struct  xAdcSensorLinearSetting
 
struct  xAdcSensorNlinearSetting
 
union  xAdcSensorSetting
 

Fonctions

double dAdcSensorGetValue (xAdcSensor *pSensor)
 Lecture grandeur capteur. Plus de détails...
 
double dAdcSensorRawToValue (xAdcSensor *pSensor, uint16_t usRaw)
 Convertit une valeur ADC en grandeur capteur. Plus de détails...
 
uint16_t usAdcSensorGetRaw (xAdcSensor *pSensor)
 Lecture valeur brute ADC. Plus de détails...
 
void vAdcSensorInit (xAdcSensor *pSensor, xAdcSensorSetting *pSetting, eAdcSensorType eType, uint8_t ucAdcChan, uint8_t ucTerms)
 Initialisation capteur. Plus de détails...
 

Macros

#define ADC_SENSOR_SETTING_LINEAR(_vmin, _vmax, _rmin, _rmax)
 Initialisation d'un repère linéaire. Plus de détails...
 
#define ADC_SENSOR_SETTING_NLINEAR(_coeff, _f)
 Initialisation d'un repère non linéaire. Plus de détails...
 

Définitions de type

typedef double(* dAdcSensorConvert) (struct xAdcSensor *, uint16_t)
 
typedef struct xAdcSensor xAdcSensor
 Capteur. Plus de détails...
 
typedef struct xAdcSensorLinearSetting xAdcSensorLinearSetting
 
typedef struct xAdcSensorNlinearSetting xAdcSensorNlinearSetting
 
typedef union xAdcSensorSetting xAdcSensorSetting
 

Énumérations

enum  eAdcSensorType { ADC_SENSOR_LINEAR = 0, ADC_SENSOR_NLINEAR = 1 }
 

Documentation des macros

#define ADC_SENSOR_SETTING_LINEAR (   _vmin,
  _vmax,
  _rmin,
  _rmax 
)
Valeur :
{ \
.xLin.dValueMin=(_vmin), \
.xLin.dValueMax=(_vmax), \
.xLin.dRawMin=(_rmin), \
.xLin.dRawMax=(_rmax) }

Initialisation d'un repère linéaire.

Permet d'initialiser un repère d'étalonnage de capteur linéaire

Exemples:
sensor/hih4000/demo_sensor_hih4000.c, sensor/lmt87/demo_sensor_lmt87.c, sensor/mpx/demo_sensor_mpx.c, sensor/pot/demo_sensor_pot.c, et sensor/rtd/demo_sensor_rtd.c.

Définition à la ligne 70 du fichier adc_sensor.h.

#define ADC_SENSOR_SETTING_NLINEAR (   _coeff,
  _f 
)
Valeur :
{ \
.xNlin.dRawToValue=(_f), \
.xNlin.dCoeff = _coeff }

Initialisation d'un repère non linéaire.

Permet d'initialiser un repère d'étalonnage de capteur non linéaire

Définition à la ligne 81 du fichier adc_sensor.h.

Documentation des définitions de type

typedef double(* dAdcSensorConvert) (struct xAdcSensor *, uint16_t)

Fonction de conversion d'une valeur brute ADC en grandeur de sortie

Définition à la ligne 100 du fichier adc_sensor.h.

typedef struct xAdcSensor xAdcSensor

Capteur.

Capteur connecté à une entrée de l'ADC

Repère d'étalonnage d'un capteur linéaire

Repère d'étalonnage d'un capteur non linéaire

Repère d'étalonnage d'un capteur

Documentation du type de l'énumération

Type de capteur

Valeurs énumérées
ADC_SENSOR_LINEAR 

Capteur linéaire.

ADC_SENSOR_NLINEAR 

Capteur non linéaire.

Définition à la ligne 91 du fichier adc_sensor.h.

91  {
92 
93  ADC_SENSOR_LINEAR = 0,
eAdcSensorType
Definition: adc_sensor.h:91
Capteur non linéaire.
Definition: adc_sensor.h:94
Capteur linéaire.
Definition: adc_sensor.h:93

Documentation des fonctions

double dAdcSensorGetValue ( xAdcSensor pSensor)

Lecture grandeur capteur.

Effectue une mesure avec usAdcSensorGetRaw() et la convertit avec dAdcSensorRawToValue()

Paramètres
pSensorpointeur sur le capteur à utiliser
Renvoie
Valeur moyenne de la grandeur mesurée en sortie du capteur
double dAdcSensorRawToValue ( xAdcSensor pSensor,
uint16_t  usRaw 
)

Convertit une valeur ADC en grandeur capteur.

Paramètres
pSensorpointeur sur le capteur à utiliser
usRawvaleur de l'ADC correspodant à la grandeur
Renvoie
Grandeur capteur assoicée à usRaw
Exemples:
sensor/hih4000/demo_sensor_hih4000.c, sensor/lmt87/demo_sensor_lmt87.c, sensor/mpx/demo_sensor_mpx.c, sensor/pot/demo_sensor_pot.c, et sensor/rtd/demo_sensor_rtd.c.
uint16_t usAdcSensorGetRaw ( xAdcSensor pSensor)

Lecture valeur brute ADC.

Renvoie la valeur filtrée de l'ADC, le champ ucAdcScale de pSensor est mis à jour.

Paramètres
pSensorpointeur sur le capteur à utiliser
Renvoie
Valeur filtrée de l'ADC
Exemples:
sensor/hih4000/demo_sensor_hih4000.c, sensor/lmt87/demo_sensor_lmt87.c, sensor/mpx/demo_sensor_mpx.c, sensor/mq135/demo/demo_sensor_mq135.c, sensor/pot/demo_sensor_pot.c, et sensor/rtd/demo_sensor_rtd.c.
void vAdcSensorInit ( xAdcSensor pSensor,
xAdcSensorSetting pSetting,
eAdcSensorType  eType,
uint8_t  ucAdcChan,
uint8_t  ucTerms 
)

Initialisation capteur.

Attention, il est nécessaire d'initialiser l'ADC séparément.

Paramètres
pSensorpointeur sur le capteur à utiliser
pSettingpointeur sur le repère d'étalonnage
eTypeType de capteur
ucAdcChanvoie ADC utilisée par le capteur
ucTermsnombre de mesures effectuées pour le filtrage, si > 1 une moyenne est effectuée, sinon c'est une mesure brute. Le champ eFilter de xAdcSensor peut être modifié pour changer de filtrage.
Exemples:
sensor/hih4000/demo_sensor_hih4000.c, sensor/lmt87/demo_sensor_lmt87.c, sensor/mpx/demo_sensor_mpx.c, sensor/mq135/demo/demo_sensor_mq135.c, sensor/pot/demo_sensor_pot.c, et sensor/rtd/demo_sensor_rtd.c.