Autor Tema: Ejemplo de uso de la libreria QTouch  (Leído 5439 veces)

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

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Ejemplo de uso de la libreria QTouch
« en: 21 de Octubre de 2010, 10:56:29 »
Esquema:


PCB:


Montado en una caja para probar:


 Publico una pruebas hechas con la librería QTouch de Atmel y un AtMega16. Es un teclado capacitivo de 16 teclas usando la opción QMATRIX (8x2) de la librería. Utiliza 14 pines del micro para la librería (8 para las líneas X, 4 para las líneas Y, 1 del SMP y 1 del AIN0), utilizando 4 pines más puede manejar 32 teclas. La librería también obliga para su uso a desactivar todas las pull-ups.
Código: [Seleccionar]
SFIOR |= (1u << PUD);
 Los electrodos están diseñados considerando un grosor de panel de 1mm. Incluye una aplicación de línea de comandos para generar electrodos en el formato de KiCAD para otros espesores de panel. Para las pruebas el propio PCB de 0.8mm hace de panel. Realice los puentes por la misma cara de los componentes para que la otra cara quedase perfectamente plana y poder pegarla a otra superficie sin ningún problema.

 Todas las teclas están puestas dentro del mismo grupo de AKS por lo que el teclado sólo da una tecla pulsada a la vez, si se pulsan varias devolverá la primera pulsada. Si se desea poder detectar varias teclas pulsadas a la vez sería recomendable dejar mas espacio entre las teclas y ajustar el threshold para que el teclado no detecte pulsaciones indeseadas de las teclas próximas.

  El LED conectado en PC3 se enciende cuando hay una tecla pulsada.

  En PB3 tenemos un PWM que filtrado nos da una tensión de salida proporcional a la tecla pulsada, de 0 ninguna tecla pulsada a VCC con la tecla G.

  Tambien podemos leer la tecla pulsada leyendo el micro por I2C. Si queremos leer el micro solo cuando haya una tecla pulsada se puede usar la salida de interrupcion (PC2) para lo que hay que conectar una pull-up en este pin.
  Se puede cambiar el valor de treshold y la histerisis por i2c. Para hacerlo hay que mandar una escritura por I2C mandando el nuevo threshold, el nuevo threshold negado, la nueva histerisis y la nueva histeris negada.

  Treshold tamaño byte. (Por defecto 75)
  Histerisis tamaño byte. (De 0 a 3) (Por defecto 3)

  Si queremos un treshold de 32 y una histerisis de 1 habría que mandar:
  0x20,0xDF,0x01,0xFE

  Adjunto una par de vídeos en el primero probamos la salida PWM del teclado y en el segundo utilizando la comunicación I2C. En este segundo vídeo el código utilizado no es exactamente el mismo, en este las teclas 4,8,C y G están configurados como un "slider" pero el resultado no es muy lineal por la colocación y diseño de los electrodos.

Video 1
Video 2
Esquema y PCB
Codigo fuente y HEX

 Saludos,

 ma4826.
万人の友は誰の友でもない。

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Re: Ejemplo de uso de la libreria QTouch
« Respuesta #1 en: 21 de Octubre de 2010, 15:27:18 »
Exelente aporte muchas gracias  :-/ :-/ :-/

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: Ejemplo de uso de la libreria QTouch
« Respuesta #2 en: 30 de Octubre de 2010, 11:31:56 »
Gracias ma4826, precisamente esta semana estube buscando opciones con pic y otros integrados, no sabia que los atmegas servian directamente, para pulsadores tactiles...

me sera muy util tu aportacion, si tienes mas enlaces para investigar tambien me serian utiles, ya que no se mucho de los atmega...

por cierto que version de eagle utilizastes, ya que tengo la 5.10.0, y no me abre los esquemas...

un saludo...
« Última modificación: 30 de Octubre de 2010, 11:43:19 por mincho »

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Ejemplo de uso de la libreria QTouch
« Respuesta #3 en: 30 de Octubre de 2010, 15:41:47 »
Gracias ma4826, precisamente esta semana estube buscando opciones con pic y otros integrados, no sabia que los atmegas servian directamente, para pulsadores tactiles...

me sera muy util tu aportacion, si tienes mas enlaces para investigar tambien me serian utiles, ya que no se mucho de los atmega...

por cierto que version de eagle utilizastes, ya que tengo la 5.10.0, y no me abre los esquemas...

un saludo...

 No valen todos los AVR, solo para los que ellos han decidido habilitar la librería. Información de la librería http://www.atmel.com/products/touchsoftware/default.asp?family_id=702&source=home y aquí http://www.atmel.com/dyn/resources/prod_documents/QTouch_Library_Selection_Guide.xls una hoja de cálculo con los modelos que soporta la librería y el número máximo de teclas que soporta para cada modelo. Además la librería solo la puedes usar con dos compiladores el avr-gcc y el IAR, mi ejemplo está hecho con el avr-gcc.

 El sitio por excelencia para los AVR es http://www.avrfreaks.net/.

 Los esquemas y el PCB están hechos con kicad (http://kicad.sourceforge.net/).

 Saludos.
万人の友は誰の友でもない。

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Ejemplo de uso de la libreria QTouch
« Respuesta #4 en: 31 de Octubre de 2010, 00:01:11 »
muchas gracias Ma4826 por todos tus aportes.

Saludos

Desconectado Jpic

  • PIC12
  • **
  • Mensajes: 94
Re: Ejemplo de uso de la libreria QTouch
« Respuesta #5 en: 09 de Noviembre de 2010, 13:14:09 »
Muy buen aporte ma4826, gracias.

Interesante la tecnología QTouch de Atmel. Ya estoy pensando en tenerla en cuenta.