Paso 4: Breve introducción sobre PIC y su módulo de ADC
Echa un vistazo en el diagrama de bloques de la ADC. Muestra exactamente lo que se describe más adelante con los registros, pero tal vez un poco más fácil de entender. Las cuatro entradas son las patillas de fotos, selecciona el CS que se conectará a la entrada de ADC. Uno de ellos puede utilizarse también como una referencia de tensión, hemos desactivado esta característica diciendo VCFG = 0. Encienda el módulo con el bit ADON en la parte inferior de la ADC y deja ir una conversión activando el bit GO/nDONE. Efectuada la conversión, la ADC pone el resultado en los registros de ADRESH:ADRESL por el ADFM bit. Hemos ajustado el resultado en los derecha de diez campos de bits.
Para medir el voltaje en la batería, tuve que configurar el convertidor de analógico-digital de 10 bit interno PIC12F683. Módulos internos pueden configurarse a través de sus registros de configuración, en este caso ADCON0 y ANSEL. Hay dos más, que contienen el resultado de la conversión de 10 bits: ADRESH:ADRESL.
Antes de saltar a la configuración, asegúrese de que no hay que dañar el PIC aplicando tensiones mayores que 5V a sus entradas. Para poder medir el voltaje de la batería de 12V +, tuve que añadir un divisor de voltaje con factor de división de 1:4. Esto significa, que desde los 0V – voltaje de la batería de 14V el PIC está viendo sólo un 0V – 3.5V gama – que es con seguridad debajo de 5V. Usé una resistencia de 15Kohm y 5Kohm para el divisor de tensión. Vamos a ver los registros de configuración.
Configuraciones de registro ADCON0
El bit 7-th de ADCON0 registro es ADFM, que define la forma de los 10 bits son organizar en dos, resultado de ocho bits ADC registra. Me acostumbré con ajuste a derecho, así que escojo: ADCON0. ADFM = 1.
6-th es VCFG, que tiene que ver con la entrada de referencia de voltaje positivo del módulo de conversión analógico a digital interna. El voltaje de entrada que queremos medir ahora va de 0V a 5V, esto significa que podemos seleccionar el suelo de la entrada y la fuente de alimentación de 5V para actuar como nuestra referencia de bajo y alto voltaje. Sabiendo esto, debemos establecer ADCON0. VCFG poco lógica '0'.
Bits 5 y 4 no se aplican, poner ceros en ellos para simplificar.
Bits 3 y 2 de este registro seleccionar el canal (clavija de entrada) en el que se medirá el nivel de voltaje. Al final de la conversión, el contenido del registro de resultado de ADC tendrá un número correspondiente al nivel de voltaje del canal seleccionado. No tengo que cambiar el canal de entrada en este proyecto, por lo que la selección se realiza en la inicialización de hardware ADCON0. CHS1:CHS0 = 00.
Bit 1, llamado GO/nDONE está desactivada al inicio, situado en el estado de la medida a uno y esperar a que se reinicie automáticamente. Este bit se establece por el hardware y puede utilizarse para comprobar si una nueva medición de anuncios está disponible o no. Vamos a ponerlo a 0.
Bit 0 activa y desactiva el módulo ADC. Por supuesto, tenemos que encender, así que nos debemos fijar a 1, ADCON0. ADON = 1.
Esto significa, que la 0b10000001 número hexadecimal = 0x81 necesidades de ADCON0 para el módulo a trabajar de la manera esperada.
Configuración de registro ANSEL
Este registro configura el reloj de la adquisición y define los canales analógicos se utilizarán para medir la tensión analógica y que se apagará con los respectivos pines como entradas/salidas digitales.
El bit 7-th no está implementado, establece en 0 para la simplicidad.
Los tres siguientes selección la fuente de reloj: tiendo a seleccionar FRC por defecto y cambiar sólo si algo no funciona: ANSEL. ADC = 111.
El nibble bajo del registro afecta a los pines analógicos, los necesita como entradas o salidas necesitan ser configurado en consecuencia. Sólo utilicé el canal análogo 0 esta vez, así que tengo que poner un '1' en esa posición. ANSEL. ANS = 0001.
Con estos conocidos, registro ANSEL debe ajustarse a 0b01110001 = 0x71.
En pocas palabras, esto es lo que uno debe proceder a configurar el módulo ADC de este procesador. Hay sólo dos registros para llenar, después de la conversión de resultados pueden ser sacados de ADRESH:ADRESL periódicamente.