Programació en C del PIC 16F690 amb PICkit 2

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Entrades analògiques

El microcontrolador té dotze entrades analògiques (més dues per aplicacions especials) però un únic conversor d'analògic a digital (conversor A/D); per tant cal triar quina entrada es llegeix en cada moment. El conversor és de 10 bits i, per tant, el resultat ocupa dos bytes (anomenats ADRESH i ADRESL) ja que no cap en un. El valor més alt (1023) correspon a que el valor llegit correspongui a la tensió de referència i el valor 0 correspon a una tensió zero. Si fem servir la tensió d'alimentació com a referència, 1023 correspondrà a una entrada de 5 V. Podem triar si el resultat el volem alineat a la dreta o a l'esquerra del parell de paraules amb el bit ADFM de la paraula ADCON0. Si, per exemple, el resultat fos 827 (33Bh,   11 0011 1011) tindríem les opcions:

Resultat del conversor A/D

Per fer servir l'entrada analògica cal configurar-la com a entrada a TRIS (posant el bit corresponent a 1) i activar el bit corresponent a ANSEL o ANSELH (segons quina entrada sigui). Cal tenir present que les entrades analògiques estan sobreposades sobre les binàries però amb numeració diferent; a ANSEL o ANSELH cal emprar la que correspon a l'entrada analògica desitjada i a TRIS cal emprar la que correspon a l'entrada binària que comparteix la mateixa pota.

El conversor A/D pot tenir diverses velocitats de funcionament però només unes poques són compatibles amb cada velocitat del microcontrolador. En la configuració bàsica es pot treballar a 1/8 o a 1/16. En els exemples treballarem a 1/8 i ho seleccionarem posant 001 als bits ADC de la paraula ADCON1 (posant 10h a aquesta paraula). En el registre ADCON0 tenim la configuració bàsica del conversor, que es descriu a la taula següent:

Bit Nom Utilització
0 ADON Posa en marxa el conversor
1 GO / DONE A l'activar-lo comença a convertir; quan acaba es desactiva
2 CHS0 Selecció de canal:
    0000   AN0
    0001   AN1
    0010   AN2
    etc.
3 CHS1
4 CHS2
5 CHS3
6 VCFG A 0 si volem que la tensió llegida es compari amb l'alimentació
7 ADFM Alineació del resultat

Activant el bit ADON s'activa el conversor però no es pot llegir l'entrada fins al cap d'un temps (ja que cal carregar un condensador) que en el nostre cas és 5 μs. Passat aquest temps ja es pot activar el conversor (bit GO) i esperar a que el bit es desactivi per llegir el resultat a ADRESH i ADRESL.

Quan es fan servir dues o més entrades analògiques cal tenir present que la primera lectura que es fa després de canviar d'entrada no dóna resultats correctes. Convé, doncs, fer dues lectures seguides (activar dos cops GO i esperar que es desactivi) cada cop que canviem d'entrada però tenint en compte només la segona lectura.

La informació de la conversió d'analògic a digital està a l'apartat 9.0 del document de característiques del PIC 16F690.

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.