Hola amigos!!!! Paso a compartir con ustedes un pequeño trabajo q estoy haciendo. La idea es hacer un
capaciflector que permita a un robot detectar objetos cercanos. Pero para eso primero tengo q hacer un sensor capacitivo. Estuve leyendo bastante, y uno de los metodos mas simples que encontre es el que describe microchip en su app note
AN1298Explico brevemente como funciona (para mas detalles leer la app note):
El sensor es una seccion de conductor cualquiera (como una plancha de cobre) q se conecta directamente a un canal del ADC. El metodo funciona cargando el capacitor de retencion del ADC, y descargando el capacitor de sensado. Cuando cambiamos el canal del ADC al sensor, ambos capacitores constituyen un divisor de tension, y el ADC entrega una lectura proporcional a la capacidad del sensor.
Les dejo el codigo fuente en CCS, y un pequeño video q hice:
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT
#DEVICE ADC=10
#use delay(clock=4M)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
void main(){
unsigned long value=0;
delay_ms(10);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
while(TRUE){
set_tris_a(0b11111100); //Drive secondary channel to VDD as digital output.
output_high(PIN_A1);
set_adc_channel(1); //Point ADC to the secondary VDD pin (charges CHOLD to VDD)
output_low(PIN_A0); //Ground sensor line.
set_tris_a(0b11111101); //Turn sensor line as input (TRISx = 1).
set_adc_channel(0);//Point ADC to sensor channel (voltage divider from sensor to CHOLD).
value=read_adc();//Begin ADC conversion.
delay_ms(50);
}
}
Espero q les sea útil!! Y como siempre, cualquier critica/sugerencia es bienvenida! Saludos!