TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: ma4826 en 21 de Octubre de 2010, 10:56:29

Título: Ejemplo de uso de la libreria QTouch
Publicado por: ma4826 en 21 de Octubre de 2010, 10:56:29
Esquema:
(http://dc191.4shared.com/img/PfVf7r7y/0.5478200575094897/M16_TECLADO_16E_esquema.png) (http://www.4shared.com/photo/PfVf7r7y/M16_TECLADO_16E_esquema.html)

PCB:
(http://dc275.4shared.com/img/nsXnQxT0/100_1877r.JPG) (http://www.4shared.com/photo/nsXnQxT0/100_1877r.html)

Montado en una caja para probar:
(http://dc275.4shared.com/img/OJBMoEJD/100_1874r.JPG) (http://www.4shared.com/photo/OJBMoEJD/100_1874r.html)

 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 (http://www.4shared.com/video/w4ka85jz/21102010.html)
Video 2 (http://www.4shared.com/video/LRG3yZhW/14102010_002_.html)
Esquema y PCB (http://www.4shared.com/file/IJVc2IQN/MEGA16_TECLADO_16ELECTRODOS_TA.html)
Codigo fuente y HEX (http://www.4shared.com/file/2YkxFP_r/teclado_capactivo_16t_mega16_2.html)

 Saludos,

 ma4826.
Título: Re: Ejemplo de uso de la libreria QTouch
Publicado por: jonathanPIC888 en 21 de Octubre de 2010, 15:27:18
Exelente aporte muchas gracias  :-/ :-/ :-/
Título: Re: Ejemplo de uso de la libreria QTouch
Publicado por: mincho 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...
Título: Re: Ejemplo de uso de la libreria QTouch
Publicado por: ma4826 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 (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 (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/ (http://www.avrfreaks.net/).

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

 Saludos.
Título: Re: Ejemplo de uso de la libreria QTouch
Publicado por: stk500 en 31 de Octubre de 2010, 00:01:11
muchas gracias Ma4826 por todos tus aportes.

Saludos
Título: Re: Ejemplo de uso de la libreria QTouch
Publicado por: Jpic 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.