Pregunta 1
El convertor analógico digital es capaz de convertir una señal
de voltaje variable en valores digitales a una resolución de 8 o
10 bits. Ademas, se puede llegar hasta a 50K muestras por
segundo, lo que es ideal para proyectos de adquisición de
datos como Datalogger, etc.
Ejemplos
SENSOR DE TEMPERATURA empleando ADC
#include <18f4550.h>
#fuses HSPLL,NOWDT,NOPROTECT, PLL5,CPUDIV4,MCLR
#device ADC =8
#use delay(clock=16000000)
#use fast_io (a)
#use fast_io (b)
#use fast_io (d)
#define LCD_DATA_PORT getenv("SFR:PORTB")
#include <lcd.c>
unsigned int8 valor_adc;
float factor= 0.01960784;
float voltaje;
float temperatura;
void main()
{
lcd_init();
set_tris_a(255);
set_tris_b(0);
set_tris_d(0);
setup_adc_ports(AN0|VSS_VDD);
output_low(PIN_D1);
output_low(PIN_D2);
setup_adc(ADC_CLOCK_DIV_64);
set_adc_channel(0);
delay_us(50);
while(TRUE)
{
read_adc(ADC_START_ONLY);
while(!adc_done());
valor_adc=read_adc(ADC_READ_ONLY);
voltaje=factor*valor_adc;
temperatura=100*voltaje;
lcd_gotoxy(1,1);
printf(lcd_putc,"%1.2f V ,",voltaje);
lcd_gotoxy(8,1);
printf(lcd_putc,"%3.1f C ,",temperatura);