Sie sind auf Seite 1von 8

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

Imagen 1: Teclado Tctil Capacitivo.1

DESCRIPCION. Teclado tctil capacitivo de 16 teclas, basado en la tecnologa QMatrix de Atmel. Se comunica a travs de SPI. El teclado posee un led indicador de color amarillo, el cual permite al usuario conocer cuando una tecla ha sido censada. CARACTERISTICAS. TECNOLOGA TACTIL CAPACITIVA. Este teclado permite al usuario la adquisicin de datos (teclas) con solo un suave toque sobre cada uno de los caracteres impresos en la tarjeta (nmeros 0-9, letras A-D, smbolos * y #). La ventaja de este teclado frente a los de membrana est en que las teclas no se gastan puesto que no hay accin mecnica, por esto tendr siempre la misma sensibilidad con una vida til bastante extensa, adems que su consumo elctrico es mnimo.

Sigma Electrnica Ltda.

Est diseado para adquirir datos de hasta 5 veces por segundo, si el usuario realiza toques a mayor velocidad es posible la prdida de uno o ms datos. El led de estado (amarillo) permite al usuario conocer cuando cada toque ha sido registrado. A diferencia de un teclado membrana operado a travs 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 ms de 8 segundos. En caso de sostener una tecla y tocar otra, no se efectuara cambio alguno puesto que el teclado enva el dato solo una vez en el momento que es censada la primer tecla.

Imagen 2: Terminales de conexin.2

INTERFAZ SPI. El teclado posee un conector 3x2 macho (Imagen 2). El espacio entre pines es de 2,54mm (0.1). A travs de SPI puede conectar 2 o ms teclados a su aplicacin. Es necesario 1 terminal de salida digital ms por cada teclado adicional que quiera incluir (para la conexin de SS). Cada uno de los pines esta marcado as: MISO: Master In Slave Out, terminal de salida de datos serial del teclado. Va conectado al MISO del Master. Pin #1. VCC: Conexin 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 seal de reloj generada por el Master cuando se realiza transmisin 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, tambin llamado CS (Chip Selector). Seal de seleccin de esclavo en comunicacin SPI. Esta seal opera negada, por lo cual el Master (aplicacin del usuario

Sigma Electrnica Ltda.

a donde va conectado el teclado) debe proporcionar nivel alto permanentemente, solo al momento de traficar informacin con este esclavo debe pasar a nivel bajo. Pin #5. GND: Conexin del terminal negativo o referencia de la fuente DC. Pin #6. AUTOCALIBRACION.

El teclado posee la funcin de calibrarse automticamente cada 10 segundos aproximadamente, esto es til en aplicaciones portables cuando el teclado es afectado por diferentes interferencias presentes en el ambiente. La calibracin del teclado consiste en tomar los valores de referencia para cada tecla. Al encender el teclado, este se calibra inmediatamente y continua hacindolo cada 10 segundos. El tiempo para calibracin es reiniciado si se censa alguna tecla (pero no si es sostenida), por lo cual el proceso de calibracin no se presentara mientras se estn censando diferentes teclas continuamente.

Imagen 3: Led de estado.3

LED DE ESTADO. Este led (Imagen 3) tiene dos funciones: indicacin de re-calibracin e indicacin de toque de teclas. Cuando el teclado no est siendo operado, este led prende momentneamente cada 10 segundos aproximadamente. Esto indica que el teclado realiza proceso de calibracin en ese momento, adems de dar a conocer que est operando normalmente. Cuando el teclado est siendo operado, la siguiente calibracin ser realizada 10 segundos despus del ltimo toque de tecla. Cuando el usuario realiza el toque de teclas, el led prende momentneamente 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.

Sigma Electrnica Ltda.

MODO DE OPERACIN. 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 lneas 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 informacin. Programacin necesaria por el usuario para operar el teclado: Habilite y configure el puerto SPI de su microcontrolador. En el ejemplo descrito a continuacin 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 /* enva primero el bit ms 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 funcin 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) // interrupcin deshabilitada | (1<<SPE) // habilita el SPI | (dord<<DORD) // LSB o MSB | (((clock != SPI_SLAVE) ? 1 : 0) <<MSTR) // Esclavo o Master | (((mode & 0x02) == 2) << CPOL) // configuracin para CPOL | (((mode & 0x01)) << CPHA) // configuracin 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 numrico para cada tecla.

Realice peridicamente la lectura de 1 Byte al teclado a travs de SPI: En el programa del master (microcontrolador con la aplicacin 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 cdigo 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 peridicamente 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 funcin 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 funcin send_spi(). Con el valor de tecla en var, el usuario puede hacer lo que quiera con el (mostrarlo en display, seleccionar una opcin en programa, etc..). El valor de var debe ser escrito a 0 nuevamente despus de usar el valor y antes de leer el teclado nuevamente. Para finalizar el ejemplo, se muestra el contenido de var a travs 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. Tecnologa: QMatrix de Atmel sobre un ATmega88PA-AU. Voltaje de operacin: Entre 3.0 y 5.2VDC. No posee proteccin 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 (mximo, 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 prximo a cada esquina (centro a 2.35mm de bordes), 2,2mm de dimetro. 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 seales SPI.

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 metlicos para evitar toques no deseados. No toque las resistencias marcadas con 0 cuando el teclado est operando.

4 5

Sigma Electrnica Ltda. Sigma Electrnica Ltda.

En caso que el teclado resulte registrando teclas continuamente cuando realmente no se estn tocando (puede pasar al tener contacto directo con el circuito, o al ubicar el teclado cerca de dispositivos o equipos que puedan generar campos elctricos o magneticos), puede simplemente reiniciarlo. Para esto interrumpa momentneamente una de las lneas de alimentacin, sea VCC o GND. Mantenga el teclado lejos de dispositivos que puedan generar campos elctricos o magnticos. 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 plsticos, papel o cartn. 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 ingenieria@sigmaelectronica.net.

Das könnte Ihnen auch gefallen