http://micropic.free.fr
La conversion A/D
Dans cette partie , nous allons voir comment interfacer le pic avec un convertisseur A/D.
L'exemple qui va suivre concernera un convertisseur analogique/digital MAX1243

Le convertisseur Analogique/digital MAX1243 est un convertisseur 10 bits à sortie série ( compatible SPI )

Effectuer le branchement suivant le plan suivant :





Il y a seulement 2 instructions pour commander ce convertisseur :
  • M43init : initialisation du convertisseur
  • M43read : retourne dans W la valeur lue sur le convertisseur
voici un include pour l'utilisation de ce convertisseur :
max1243.asm
Bien que ce convertisseur soit en 10 bits , l'include précédent fonctionne en 8 bits.

un exemple d'utilisation de cet include :
test1243.asm
Il affiche , sur un LCD , la valeur en binaire de la tension présente sur l'entrée du convertisseur.
Il n'y a pas de convertion en tension , donc c'est la donnée brute de digitalisation qui est affichée ( valeur de 0 à 255 ).



Maintenant passons à un exemple un peu plus concret : un voltmetre 0 à 5 Volts

Il utilise le même montage , mais cette fois ci , il utilise les 10 bits de résolution du MAX1243.
L'include à utiliser est le suivant :
max12432.asm
Comme nous travaillons en 16 bits , on ne peut plus utiliser le registre W pour récupérer la valeur , celle-ci sera donc stockée dans val1.
Le fichier source pour ce voltmètre est le suivant :
volt.asm Source non disponible : en cours de réécriture

Quelques explications sur ce programme :
La résolution etant de 10 bits , la valeur de digitalisation de 1024 ( 2 puissance 10 ) correspondra à une valeur de 5 Volts.
==> 5/1024=4.88 , donc nous aurons une résolution de 4.88 mV par bits.
Pour pouvoir multiplier 1024 par 4,88 , nous devons décomposer la multiplication car le module mathématique (
page 6 ) ne traite que des valeurs 16 bits entières.
Nous prenons donc 1024 que nous multiplions par 48 ( qui equivaut au 4.8 ) puis nous prenons 1024/100 que nous multiplions par 80 ( qui équivaut à 0.08).
Ensuite il suffit d'additionner ces deux valeur intermédiaire pour avoir le resultat final ( en dixième de millivolt ).
Il ne reste plus qu'à afficher cette valeur , en positionnant correctement la virgule , et en supprimant les dixiémes de millivolts qui sont inutiles car la résolution est ici de 4.88 mV.

© 1999-2004 Philippe Brégea