información técnica en PDF

Anuncio
TECLADO TACTIL CAPACITIVO
SIGMA ELECTRONICA
Imagen 1: Teclado Táctil Capacitivo.1
DESCRIPCION.
Teclado táctil capacitivo de 16 teclas, basado en la tecnología QMatrix® de Atmel. Se comunica a
través de SPI. El teclado posee un led indicador de color amarillo, el cual permite al usuario
conocer cuando una tecla ha sido censada.
CARACTERISTICAS.
TECNOLOGÍA TACTIL CAPACITIVA.
Este teclado permite al usuario la adquisición de datos (teclas) con solo un suave toque sobre cada
uno de los caracteres impresos en la tarjeta (números 0-9, letras A-D, símbolos * y #). La ventaja
de este teclado frente a los de membrana está en que las teclas no se “gastan” puesto que no hay
acción mecánica, por esto tendrá siempre la misma sensibilidad con una vida útil bastante
extensa, además que su consumo eléctrico es mínimo.
1
Sigma Electrónica Ltda.
Está diseñado para adquirir datos de hasta 5 veces por segundo, si el usuario realiza toques a
mayor velocidad es posible la pérdida de uno o más datos. El led de estado (amarillo) permite al
usuario conocer cuando cada toque ha sido registrado.
A diferencia de un teclado “membrana” operado a través de un codificador (74C922), este teclado
solo censa un dato cuando el usuario sostiene presionada una tecla. Se recomienda no sostener
presionada una tecla por más de 8 segundos. En caso de sostener una tecla y tocar otra, no se
efectuara cambio alguno puesto que el teclado envía el dato solo una vez en el momento que es
censada la primer tecla.
Imagen 2: Terminales de conexión.2
INTERFAZ SPI.
El teclado posee un conector 3x2 macho (Imagen 2). El espacio entre pines es de 2,54mm (0.1”). A
través de SPI puede conectar 2 o más teclados a su aplicación. Es necesario 1 terminal de salida
digital más por cada teclado adicional que quiera incluir (para la conexión de SS’). Cada uno de los
pines esta marcado así:





2
MISO: “Master In – Slave Out”, terminal de salida de datos serial del teclado. Va
conectado al MISO del Master. Pin #1.
VCC: Conexión para el terminal positivo de la fuente DC de 3 a 5 voltios para que el teclado
opere. Pin #2.
SCK: Terminal de entrada de la señal de reloj generada por el Master cuando se realiza
transmisión de datos. Se recomienda usarlo con un Master que trabaje entre 100 y 200
KHz. El teclado soporta hasta 400KHz. Pin #3.
MOSI: “Master Out – Slave In”, terminal de entrada de datos serial del teclado. Va
conectado al MOSI del Master. Pin #4.
SS’: “Slave Selector”, también llamado CS’ (Chip Selector). Señal de selección de esclavo en
comunicación SPI. Esta señal opera “negada”, por lo cual el Master (aplicación del usuario
Sigma Electrónica Ltda.

a donde va conectado el teclado) debe proporcionar nivel alto permanentemente, solo al
momento de traficar información con este esclavo debe pasar a nivel bajo. Pin #5.
GND: Conexión del terminal negativo o referencia de la fuente DC. Pin #6.
AUTOCALIBRACION.
El teclado posee la función de calibrarse automáticamente cada 10 segundos aproximadamente,
esto es útil en aplicaciones portables cuando el teclado es afectado por diferentes interferencias
presentes en el ambiente. La calibración del teclado consiste en tomar los valores de referencia
para cada tecla. Al “encender” el teclado, este se calibra inmediatamente y continua haciéndolo
cada 10 segundos. El tiempo para calibración es reiniciado si se censa alguna tecla (pero no si es
sostenida), por lo cual el proceso de calibración no se presentara mientras se estén censando
diferentes teclas continuamente.
Imagen 3: Led de estado.3
LED DE ESTADO.
Este led (Imagen 3) tiene dos funciones: indicación de re-calibración e indicación de toque de
teclas.
Cuando el teclado no está siendo operado, este led prende momentáneamente cada 10 segundos
aproximadamente. Esto indica que el teclado realiza proceso de calibración en ese momento,
además de dar a conocer que está operando normalmente. Cuando el teclado está siendo
operado, la siguiente calibración será realizada 10 segundos después del último toque de tecla.
Cuando el usuario realiza el toque de teclas, el led prende momentáneamente con mayor
intensidad que cuando se calibra (la diferencia de intensidad se nota a simple vista, realmente el
tiempo en “alto” del led es mayor que al recalibrarse). Esto indica al usuario que el teclado ha
censado el toque y genera el dato a ser enviado.
3
Sigma Electrónica Ltda.
MODO DE OPERACIÓN.
El teclado va conectado al puerto SPI de su microcontrolador. Debe habilitar el puerto SPI de su
dispositivo y configurarlo como master (esto en caso de no estar usando el puerto SPI para
comunicarse con otros dispositivos). Las líneas MOSI, MISO y SCK van conectadas a los terminales
con el mismo nombre del master. El terminal SS’ del teclado debe conectarse a una salida digital
del master, y es esta la que indica al teclado cuando el master va a enviar/recibir información.
Programación necesaria por el usuario para operar el teclado:
Habilite y configure el puerto SPI de su microcontrolador.
En el ejemplo descrito a continuación se usa un ATMega16 como master. Primero definimos los
pines para el puerto SPI, en este microcontrolador el SPI va en el puerto B (cuando el dispositivo es
master, puede usar cualquier pin digital para manipular el SS del esclavo o esclavos):
#define SPI_SCK_PIN 7
#define SPI_MOSI_PIN 5
#define SPI_MISO_PIN 6
Para el ejemplo se configura el SPI del master con los siguientes datos:
// SPI clock mode
#define SPI_MODE_0 0x00 /* Sample (Rising) Setup (Falling) CPOL=0, CPHA=0 */
// direccion de datos
#define SPI_MSB 0 /* envía primero el bit más significativo (bit 7) */
// no usar interrupcion al recibir datos (SPIF)
#define SPI_NO_INTERRUPT 0
// esclavo o master con divisor de reloj
#define SPI_MSTR_CLK32 0x06 /* chip clock/32 >> 8MHz/32 = 250KHz */
Estos datos se aplican en la función “setup_spi()”, esta se llama al iniciar el programa así:
setup_spi(SPI_MODE_0,SPI_MSB,SPI_NO_INTERRUPT,SPI_MSTR_CLK32);
La funcion “setup_spi()” está compuesta así:
void setup_spi(uint8_t mode, int dord, int interrupt, uint8_t clock)
{
// especifica la direccion de pines para el SPI en el Puerto B
if (clock == SPI_SLAVE) { // si es esclavo, SS y SCK son entradas
DDRB &= ~(1<<SPI_MOSI_PIN); // entrada
DDRB |= (1<<SPI_MISO_PIN); // salida
DDRB &= ~(1<<SPI_SS_PIN); // entrada
DDRB &= ~(1<<SPI_SCK_PIN);// entrada
} else {
DDRB |= (1<<SPI_MOSI_PIN); // salida
DDRB &= ~(1<<SPI_MISO_PIN); // entrada
DDRB |= (1<<SPI_SCK_PIN);// salida
DDRB |= (1<<SPI_SS_PIN);// salida
}
SPCR = ((interrupt ? 1 : 0)<<SPIE) // interrupción deshabilitada
| (1<<SPE) // habilita el SPI
| (dord<<DORD) // LSB o MSB
| (((clock != SPI_SLAVE) ? 1 : 0) <<MSTR) // Esclavo o Master
| (((mode & 0x02) == 2) << CPOL) // configuración para CPOL
| (((mode & 0x01)) << CPHA) // configuración para CPHA
| (((clock & 0x02) == 2) << SPR1) // divisor de reloj SPR1
| ((clock & 0x01) << SPR0); // divisor de reloj SPR0
SPSR = (((clock & 0x04) == 4) << SPI2X); // divisor de reloj SPI2X
}
Con el puerto SPI inicializado, se puede proceder a leer los datos generados por el teclado.
Tecla Valor Obtenido Tecla Valor Obtenido
1
0x31
9
0x39
2
0x32
*
0x2A
3
0x33
0
0x30
4
0x34
#
0x23
5
0x35
A
0x41
6
0x36
B
0x42
7
0x37
C
0x43
8
0x38
D
0x44
Tabla 1: valor numérico para cada tecla.
Realice periódicamente la lectura de 1 Byte al teclado a través de SPI:
En el programa del master (microcontrolador con la aplicación del usuario), pueden definirse
macros para habilitar o deshabilitar de forma simple el pin digital conectado al SS’ del teclado así
(en este ejemplo, el SS’ del teclado va conectado al pin C1, C1 debe ser configurado como salida
digital):
#define
#define
// CS =
#define
// CS =
#define
TECLADO_CONTROL_PORT
PORTC
TECLADO_CONTROL_CS
1//BIT 1 del puerto C
0 = teclado activo
CSACTIVE TECLADO_CONTROL_PORT&=~(1<<TECLADO_CONTROL_CS)
1 = teclado inactivo
CSPASSIVE TECLADO_CONTROL_PORT|=(1<<TECLADO_CONTROL_CS)
El master, debe enviar un Byte con valor 0 al teclado cada vez que quiera “revisar” si se ha tocado
alguna tecla. El teclado acepta ese valor y retorna el código de la tecla presionada si se ha
registrado alguna (Tabla 1). Si el teclado no tiene tecla para mostrar, el 0 es retornado. De esta
manera el master puede “saber” cuando el teclado ha registrado una tecla e igualmente sabe que
tecla es.
El 0 debe ser enviado periódicamente para revisar el teclado continuamente, el valor de ese
periodo es definido por el usuario (se recomienda un periodo de 50ms). Para esto debe “activar”
el SS’ (“CSACTIVE” en el ejemplo) del teclado, enviarle el “0” y luego “desactivar” el SS’
(“CSPASSIVE”) así:
CSACTIVE;
var=send_spi(0x00);//enviar un 0
CSPASSIVE;
La función send_spi() está compuesta así:
uint8_t send_spi(uint8_t out)
{
SPDR = out;
while (!(SPSR & (1<<SPIF)));
return SPDR;
}
En el ejemplo, el valor retornado por el teclado queda guardado en la variable “var” (1 Byte)
cuando se llama la función “send_spi()”. Con el valor de tecla en “var”, el usuario puede hacer lo
que quiera con el (mostrarlo en display, seleccionar una opción en programa, etc..). El valor de
“var” debe ser escrito a “0” nuevamente después de usar el valor y antes de leer el teclado
nuevamente.
Para finalizar el ejemplo, se muestra el contenido de “var” a través de un LCD e inmediatamente
es escrito con 0 para asegurar que el dato se muestra (o se usa) una sola vez. Igualmente solo
cuando se tiene un valor distinto a 0 se sabe que el teclado ha registrado alguna tecla:
if(var!=0){lcd_gotoxy(a,1);lcd_putc(var);var=0;a=a+1;}
RESUMEN.








Tecnología: QMatrix® de Atmel® sobre un ATmega88PA-AU.
Voltaje de operación: Entre 3.0 y 5.2VDC. No posee protección contra sobre-voltaje.
Corriente en pasivo: 4.8mA a 5v. 2.2mA a 3.3v (teclado conectado, sin censar teclas).
Corriente en activo: 13mA a 5v. 6mA a 3.3v (máximo, al censar teclas).
Cantidad de teclas: 16, capacitivo.
Tipo de conector: Regleta 3x2, con espacio entre pines de 2.54mm (0.1”).
Dimensiones de la tarjeta: 67mm x 53mm x 5mm, incluyendo el tope negro en el conector
de 6 pines.
Hoyos de montaje: 4, uno próximo a cada esquina (centro a 2.35mm de bordes), 2,2mm
de diámetro. Útiles para fijar la tarjeta.
DIMENSIONES FISICAS.
Imagen 4 y 5: Dimensiones de la tarjeta.4
PRECAUCIONES.
Se recomienda usar para el teclado el mismo nivel de voltaje con el que está polarizado su
microcontrolador (Master). Esto para evitar diferencia de niveles en las señales SPI.
5
Imagen 5: Área sensible en la tarjeta.
En la parte inferior del PCB, no tocar el circuito que se encuentra entre el microcontrolador y el led
de estado (Imagen 5), esto puede causar que el teclado perciba y transmita datos no deseados.
Esta área puede ser cubierta por materiales no metálicos para evitar toques no deseados. No
toque las resistencias marcadas con “0” cuando el teclado esté operando.
4
5
Sigma Electrónica Ltda.
Sigma Electrónica Ltda.
En caso que el teclado resulte registrando teclas continuamente cuando realmente no se están
tocando (puede pasar al tener contacto directo con el circuito, o al ubicar el teclado cerca de
dispositivos o equipos que puedan generar campos eléctricos o magneticos), puede simplemente
reiniciarlo. Para esto interrumpa momentáneamente una de las líneas de alimentación, sea VCC o
GND.
Mantenga el teclado lejos de dispositivos que puedan generar campos eléctricos o magnéticos.
Use siempre un regulador de voltaje confiable a 3,3 o 5 voltios DC. Preferiblemente no conecte
otros dispositivos a este regulador, ya que pueden ocasionar ruido y posible malfuncionamiento
del teclado.
Puede cubrir o adherir al teclado (por la parte superior donde se “teclea”) materiales plásticos,
papel o cartón. Este percibirá los toques sin problema, aunque deben ser de poco espesor,
preferiblemente igual o menor a 1.2mm.
No presione el teclado. Basta con un suave toque (con la yema del dedo) sobre las teclas para que
sean censadas.
Dudas, inquietudes o sugerencias sobre este producto, contacte a
[email protected].
Descargar