Teclado capacitivo

Hola a todos.

Alguien sabe de algún esquema para un teclado de al menos 4 botones capacitivos.

Saludos y gracias.

Puedes usar cuatro qt100, este integrado lo usan en los botones tactiles de las placas vitroceramicas.

o usar un qt1060

Enlace: http://projects.dimension-x.net/archives/111

Saludos.

Hola Flico:

Gracias por el esquema, tiene una pinta imponente y según la documentación que e encontrado es bastante potente, pero es mucho mas de lo que buscaba y ademas es un poco quisquilloso a la ora de las interferencias.

E encontrado un sistema que lo e tenido que probar para creérmelo y funciona perfectamente, sin esquema, sin componentes, solo conectando un cable a un pin del Arduino y una pequeña función.

http://www.arduino.cc/playground/Code/CapacitiveSensor

Tengo 6 teclas funcionando sin problema, si sigue asín cuando le haga el montaje de los botones, es el sistema que usare.

Gracias y Saludos.

buenas dukatus tengo el esquema de un boton para tener tres ¿ seria el mismo repetidamente ? y cuam seria el protoclo para inplantarlo en el menu? sld

Hola Medina

Pues si claro solo tienes que poner mas botones en mas pines, te pongo un ejemplo muy simple.

// estos pines son los que uso en el Arduino Mega
#define KEY1     38
#define KEY2     39
#define KEY3     40
#define KEY4     41
#define KEY5     42
#define KEY6     43

void setup()
{
  Serial.begin(9600);
}

void loop() 
{
  Teclado();
}

void Teclado()
{
  int Index;

  if (MirarTecla(KEY1)==1)
    {
    Serial.printnl("Tecla Nº 1)
    }  
  if (MirarTecla(KEY2)==1)
    {
    Serial.printnl("Tecla Nº 2)
    }  
  if (MirarTecla(KEY3)==1)
    {
    Serial.printnl("Tecla Nº 3)
    }  
  if (MirarTecla(KEY4)==1)
    {
    Serial.printnl("Tecla Nº 4)
    }  
  if (MirarTecla(KEY5)==1)
    {
    Serial.printnl("Tecla Nº 5)
    }  
  if (MirarTecla(KEY6)==1)
    {
    Serial.printnl("Tecla Nº 6)
    }  
}

int MirarTecla( char tecla )
{
  return ((int)getcap(1<<tecla) > 1);
}

// returns capacity on one input pin
// pin must be the bitmask for the pin e.g. (1<<PB0)
char getcap( char pin )
{
  char i = 0;
  DDRB &= ~pin;          // input
  PORTB |= pin;          // pullup on
  for(i = 0; i < 16; i++)
    if( (PINB & pin) ) break;
  PORTB &= ~pin;         // low level
  DDRB |= pin;           // discharge
  return i;
}

Espero que te sirva de aclaración.

Saludos