Buenas amigos del foro, a ver si me pueden echar una mano...
Resulta que estoy queriendo implementar esto en un 16F886 y no consigo que funcione.... solo consigo ruido, y prácticamente no hay diferencia entre tocar y no tocar el pad, estoy trabajando en protoboard, y como pad utilizo un cuadrado de 15mm x 15 mm de papel españa (chapa de bronce) de 0.3 decimas, conectado con no mas de 8cm de cable... pero también lo he probado con un cable de cobre solamente y nada...
Estoy utilizando la AN0 sobre RA0, y como entrada comodin la AN1 sobre RA1, pero también las he probado en otras y nada tampoco...
![redhot :5]](http://www.todopic.com.ar/foros/Smileys/default/redhot.gif)
La adquisición del ADC la hago en un rutina que acumula el resultado en una variable y luego calcula el promedio (eso lo saqué de un post de Nocturno!!

) y el valor que obtengo, si bien después del promedio sigue siendo de 8 bits, no es mas que 200, y al tocarlo, cambia a 198 / 199 / 200, osea nada !!
Les adjunto el código a ver si encuentran algo mal!
Gracias
- Fernando
#include <16F886.h>
#device ADC=8
#fuses HS,NOWDT,NOMCLR,NOPROTECT,NOBROWNOUT,NOCPD
#use delay(clock=20000000)
#use rs232(baud=38400, xmit=pin_c6, rcv=pin_c7, bits=8)
#use fast_io(A)
#use standard_io(B)
#use standard_io(C)
#use standard_io(E)
static unsigned long dato, i, promedio;
void read_CVD()
{
output_high(PIN_A1);
set_adc_channel(1);
delay_us(100);
output_low(PIN_A0);
delay_us(100);
output_float(PIN_A0);
set_adc_channel(0);
delay_us(20);
dato=read_adc();
}
void get_key()
{
promedio=0;
i=32;
while (i>0)
{
read_CVD();
promedio+=dato;
delay_ms(5);
i--;
}
promedio/=32;
}
void main()
{
setup_adc_ports( sAN0 | sAN1 | VSS_VDD );
setup_adc(ADC_CLOCK_INTERNAL);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
while (1)
{
get_key();
if (promedio>=235)
{
output_low(PIN_A2);
}
else
{
output_high(PIN_A2);
}
output_b(promedio);
printf("%Lu\r",promedio); //Imprime valor
delay_ms(100);
}
}