Autor Tema: Ayuda codigo "Pulsador Tactil" 12F683  (Leído 4225 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Ayuda codigo "Pulsador Tactil" 12F683
« en: 23 de Febrero de 2012, 19:46:15 »
Hola a todos!!

Quería hacer una lamparita con leds pero que se encienda al tocar cualquier parte de su estructura metálica, se que el PIC 12F683 permite el tema tactil, pero los ejemplos que veo por la red no me funcionan cuando pruebo fisicamente.

He probado el codigo de ESTE ejemplo pero no me funciona.

Alguno a realizado algo similar y le ha funcionado??

Gracias.
« Última modificación: 23 de Febrero de 2012, 20:00:51 por sokoloko »

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #1 en: 25 de Febrero de 2012, 07:21:49 »
Tras varias pruebas, no doy con la solucion :x. He probando cambiando el PIN_TOUCH pero siempre me da este fallo:
Citar
Executing: "C:\Program Files\PICC\Ccsc.exe" +FM "Control tactil_v1.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 99 "Control tactil_v1.c" Line 34(5,29): Option invalid   Bad Pin: 41
*** Error 12 "Control tactil_v1.c" Line 54(15,16): Undefined identifier  -- TOUCHPAD_STATE
*** Error 12 "Control tactil_v1.c" Line 59(23,24): Undefined identifier  -- touchpad_hit
*** Error 12 "Control tactil_v1.c" Line 61(37,38): Undefined identifier  -- TOUCHPAD_GETC
      4 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Sat Feb 25 11:17:24 2012

Segun el Datashet el PIC 12f683 tiene tres entradas tactiles, pero no estoy tan seguro, pues pruebo a cambiar el PIC por el 12f1840 y si me lo compila sin problemas, lo que pasa que tengo el PICKIT2 de programador y aun no esta preparado para grabar PICs tan nuevos.


Mi codigo es:

Código: [Seleccionar]
//**********************************************************
//    Control tactil V0.1
//**********************************************************
#include <12f683.h>            // PIC USADO
#fuses NOWDT // SIN WATCH DOG TIMER
#fuses INTRC_IO // OSCILADOR INTERNO SIN CLKOUT
#fuses NOCPD // NO EE PROTECTION
#fuses NOPROTECT // NO SE PUEDE LEER EL CODIGO DEL PIC
#fuses NOMCLR // PIN_A3 USADA PARA ENTRADA Y NO PARA RESET
#fuses NOPUT // SIN POWER UP TIMER
#fuses NOBROWNOUT // SIN BROWNOUT RESET
#fuses NOFCMEN
#fuses NOIESO
#use delay (clock=8000000)          // CLOCK INTERNO 8Mhz
#define LED1 PIN_A5 // PAT. 2 //
#USE TOUCHPAD (PIN_A1 = 'A')
#USE FAST_IO(A)
char Touch_tecla;
#ZERO_RAM
void Main (void){

setup_oscillator(OSC_8MHZ|OSC_INTRC);        // Activa el oscilador interno.
     
    int i=0; // Contador temporal.

for (i=1;i<=6;++i) {
output_toggle(LED1), delay_ms(300);
}
   
   set_tris_a(0b001100);
   output_a(0);
   
TOUCHPAD_STATE(1);            //calibrates, then enters normal state
 
 
   while (true)
   {     
      if (touchpad_hit() == true)
      {
         Touch_tecla = TOUCHPAD_GETC();   //will wait until a pin is detected
         
         if (Touch_tecla == 'A')
            output_toggle(LED1);
      }
   }

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #2 en: 25 de Febrero de 2012, 10:10:02 »
Vale, ya se cual era el problema.

A pesar de que en el datasheet viene que el 12f683 trae 3 patillas Touch, no es del todo cierto, es otro tipo de touch.

Con el 12F1840 si que funciona.

Saludos

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #3 en: 25 de Febrero de 2012, 10:36:26 »
Podrás poner el circuito e imágenes de como lo montaste??
Me interesa para hacerlo...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #4 en: 25 de Febrero de 2012, 14:25:08 »
Hola,

Este es el codigo modificado que lee dos entradas tactiles y segun cual se toque, activa un led u otro, tambien adjunto una imagen del montaje (lo raro de arriba es una bateria LiOn de 3,7v)

Saludos.

Código: [Seleccionar]
//**********************************************************
//    Control tactil V0.1
//**********************************************************
#INCLUDE <12F1840.h>
#FUSES INTRC_IO               
#FUSES NOWDT                   
#FUSES PUT                     
#FUSES NOMCLR                   
#FUSES PROTECT               
#FUSES NOCPD                 
#FUSES NOBROWNOUT                 
#FUSES NOCLKOUT                 
#FUSES NOIESO                   
#FUSES NOFCMEN                 
#FUSES NOWRT                   
#FUSES PLL_SW             
#FUSES STVREN               
#FUSES BORV25                 
#FUSES NODEBUG               
#FUSES NOLVP               
#USE DELAY (CLOCK = 8 000 000)
#USE FAST_IO(A)
#ZERO_RAM
#USE TOUCHPAD (PIN_A0 = 'A',PIN_A1 = 'B')  // Definimos las entradas Touch

//*********************** DEFINICIONES  ***********************************
// +VCC PAT. 1
#define LED_A PIN_A5 // PAT. 2 // Led 1
#define LED_B PIN_A4 // PAT. 3 // Led 2
#define XXX PIN_A3 // PAT. 4 // PULSADOR ENTRADA, NUNCA SALIDA
#define XXXX PIN_A2 // PAT. 5 //
#define IN_2 PIN_A1 // PAT. 6 // In 2
#define IN_1 PIN_A0 // PAT. 7 // In 1
// MASA PAT. 8
//****************************************************************************

void Main (void){

setup_oscillator(OSC_8MHZ | OSC_NORMAL | OSC_PLL_ON);
enable_interrupts(GLOBAL);

char Touch_tecla;
    set_tris_a(0b001111);
output_a(0);
   
TOUCHPAD_STATE(1);            //calibrates, then enters normal state
 
while (true){     
if (touchpad_hit() == true){
Touch_tecla = TOUCHPAD_GETC();   //will wait until a pin is detected
if (Touch_tecla == 'A')
output_toggle(LED_A);
if (Touch_tecla == 'B')
output_toggle(LED_B);
}
}
}

Desconectado ericksm

  • PIC10
  • *
  • Mensajes: 19
Re: Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #5 en: 02 de Julio de 2015, 00:05:31 »
Con que lo programaste?

que programador utilizaste?

salu2
« Última modificación: 02 de Julio de 2015, 00:07:38 por ericksm »

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re:Ayuda codigo "Pulsador Tactil" 12F683
« Respuesta #6 en: 21 de Marzo de 2017, 16:29:22 »
El pic12f683 no tiene modulo CPS , con que tenga ADC se puede hacer CVD.

El 12f1840 si tiene CPS(este es un cambio en la frecuencia) , CVD ( capacitive voltage divider)