Hola a todos.
Alguien sabe de algún esquema para un teclado de al menos 4 botones capacitivos.
Saludos y gracias.
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