Archivo de la categoría: PIC
PIC18F2550 y USB
Archivado bajo Microcontrolador, PIC
Conversor ADC con PIC16F877A
En este post se verá cómo utilizar el conversor adc que poseen los microcontroladores PIC para adquirir una señal analógica, 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 2×16 caracteres, y un sensor de temperatura LM35, el cual ofrece 0,1V por cada variación de grado.
El circuito por lo tanto es el que se muestra a continuación:
El código utilizado se muestra a continuación, con comentarios de cada sentencia, con lo que creo que queda mejor explicado que teóricamente:
#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 señal
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.
}
Archivado bajo Electronica, Microcontrolador, PIC