Está en la página 1de 2

Conversor ADC con PIC16F877A

En este post se ver cmo utilizar el conversor adc que poseen los microcontroladores PIC para adquirir una seal analgica, en este caso de un sensor de temperatura. El circuito se compone de un microcontrolador PIC16F877A, el cual posee 8 pines de ADC, una pantalla LCD de 216 caracteres, y un sensor de temperatura LM35, el cual ofrece 0,1V por cada variacin de grado. El circuito por lo tanto es el que se muestra a continuacin:

El cdigo utilizado se muestra a continuacin, con comentarios de cada sentencia, con lo que creo que queda mejor explicado que tericamente: #include <16f877a.h> //Se indica el ucontrolador que se va a utilizar. #device adc=10 #fuses XT //Se indican los fuses activos/inactivos.

#use delay (clock=4000000) //Se indica la velocidad del cristal XTAL=4MHz. #include <lcd.c> //Se indica que se utilizar dicho archivo. void main () { int16 VoltoTemp; //Variables para almacenar el valor del adc float Temp; //Variable que muestra el valor en C

setup_adc_ports(RA0_ANALOG); //El pin 0 del puerto A se utiliza como adc setup_adc(ADC_CLOCK_INTERNAL); //Se utiliza el reloj interno para la adquisicion de la seal lcd_init(); //Se inicia comunicacion con la LCD. set_adc_channel(0); //Se indica que de todos los pins habilitados para adc se utilizar el pin 0 VoltoTemp=read_adc(); //Se lee el valor que posee el pin indicado en el comando anterior Temp=(VoltoTemp*500.0)/1024.0;//Se transforma el valor leido para mostrar la temperatura, depende del sensor printf(lcd_putc, VoltoTemp=%lu ,VoltoTemp); //Se envia el texto a mostrar en la LCD. printf(lcd_putc,\nTemp=%f ,Temp); //Se envia el texto a mostrar en la LCD. }

También podría gustarte