Chapitre 5
Chapitre 5
Chapitre 5
INTRODUCTION
Nombreux sont les microcontrôleurs qui ont affaire à des signaux analogiques ; De par l'infinité de
valeurs qu'ils ont, Les microcontrôleurs ne peuvent pas les traiter. La discrétisation de ces signaux ou leur
conversion analogique numérique apporte une solution à ce problème.
Un convertisseur analogique numérique est un dispositif électronique capable de convertir des tensions
analogiques, comprises entre deux tensions de références Vref+ et Vref-, en une valeur numérique N sur
n bit, N sera comprise entre 0 et 2n-1.
L'échantillonnage : c'est l'action de lire le signal analogique à des périodes fixes respectant le
théorème de Shannon (la fréquence d'échantillonnage doit être, au moins, égale à deux fois la
bande passante du signal à échantillonner). L'échantillonnage est souvent réalisé par des
interrupteurs électroniques commandés.
Le blocage : il consiste à maintenir constante la valeur lue par échantillonnage pendant une durée
suffisante pour laisser le temps à l'ADC pour finir la conversion. Le maintien de ces tensions se fait
en utilisant des condensateurs associés à des amplificateurs à grandes impédances d'entrées.
Le codage : à chaque niveau de quantification correspond un code qui est un mot binaire de
longueur n. un mot de longueur n peut coder 2n niveaux.
1
Figure 1 : principes de la conversion analogique/numérique.
Plus le nombre de bits sera important et meilleure sera la précision, mais plus le signal occupera de mémoire !
2
V.3- LE MODULE DE CONVERSION A/N
Ce module est constitué d'un convertisseur Analogique Numérique 10 bits dont l'entrée analogique peut être
connectée sur l'une des 8 (5 pour 16F876) entrées analogiques externes.
Les entrées analogiques doivent être configurées en entrée à l'aide des registres TRISA et/ou TRISE.
L’échantillonneur bloqueur est intégré, il est constitué d’un interrupteur d’échantillonnage et d’une capacité
de blocage de 25 pF.
Les tensions de références permettant de fixer la dynamique du convertisseur. Elles peuvent être choisies
parmi Vdd, Vss, Vref+ ou Vref-.
3
Le control du module se fait par les deux registres ADCON0 et ADCON1.
00 : Fosc/2
01 : Fosc/8
10 : Fosc/32
GO/DONE : Une conversion démarre quand on place ce bit à 1. A la fin de la conversion, il est remis
automatiquement à zéro. Ce bit peut aussi être positionné automatiquement par le module
CCP2.
ADFM : justification à droite ou à gauche du résultat dans les registre ADRESH et ADRESL
ADRESH ADRESL
Les 5 broches de PORTA et les 3 de PORTE peuvent être configurés soit en E/S digitales, soit en entrées
analogiques. RA2 et RA3 peuvent aussi être configurées en entrée de référence.
4
Tableau 1 : tableau de configuration des E/S et des tensions de référence du pic 16F877
Pour les utiliser en E/S numériques, il faut écrire '00000110' dans le registre ADCON1.
V.4.a- Étapes:
Initialisation des paramètres du convertisseur
Lancement de la conversion
analogique numérique. Ils ne sont disponibles que sur les circuits avec les ADC. Les options pour les
fonctions et les directives varient en fonction de circuit et sont répertoriés dans le fichier d'en-tête. Sur
certains microcontrôleurs, il y a deux modules ADC indépendants, pour ces circuits le second module est
Fonctions :
Préprocesseur :
Interruptions:
6
Exemple:
Voici un exemple de programme avec des explications en utilisant CCS C pour lire les échantillons de
l’ADC via RS232 :
///////////////////////////////////////////////////////////////////////
/// Commentaires qui explique ce que fait le programme, ///
/// Ce programme affiche le min et max de 30 échantillons ///
/// à partir de ADC sur l'interface RS-232. ///
/////////////////////////////////////////////////////////////// ////////
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
void main() {
// la bibliothèque RS232
do { // do forever statement
min=255;
max=0;
// seconde
min=value;
max=value;
} while (TRUE);
7
Exercice : Acquisition des données via le capteur de température LM35
Présentation du capteur : Le LM35 fait partie des capteurs de température électroniques de précision en
structure intégrée.