Apagador Touch Usando el Módulo ADC de un PIC12F683

By PicTrance

En este documento se tratará el diseño y construcción de un Apagador Touch Usando el ADC de un PIC12F683. Usando como referencia la nota de aplicación AN1298 [1], Capacitive Touch Using Only an ADC (“CVD”), de Microchip

La creación de este proyecto fue inspirado por un proyecto similar mostrado en la pagina  www.hackaday.com  el  cual  se  llama  [RobB's]  house has  no  light switches [2], y el corazón de ése proyecto es un microcontrolador ATtiny85 de la marca Atmel, el cual usa comunicación bluetooth con un teléfono con Android pero el módulo bluetooth se omite en este proyecto ya que lo que aquí se busca es un proyecto simple, fiable y costeable.

Teoría y Funcionamiento

El funcionamiento de éste circuito se basa en usar el capacitor de retención y muestreo “CHOLD” (fig.1) que hay en la entrada del módulo ADC, de cualquier microcontrolador de la marca Microchip.

 

imageFig. 1 diagrama a bloques del módulo ADC mostrando a “CHOLD

El capacitor “CHOLD se carga poniendo un pin a VDD y después mandándola a sensar otra entrada ADC, la cual estará conectada a una PCB o a alguna parte metálica que sirva como sensor (fig. 2).

 

imageFig. 2 diagrama a bloques general del funcionamiento de este sistema.

Cuando el ADC es mandado a sensar el pin que esta conectado el sensor externo, este hace un divisor de voltaje con el capacitor “CHOLD” y que al ser tocada por la mano, esta descarga parcialmente a CHOLD y así se puede sensar si se ha tocado al sensor externo.

En la fig.3 se puede ver como es las forma de onda del capacitor de retención y muestreo, al se cargada y sin tocar, y cuando es tocado el sensor

imageFig. 3 comparando la forma de onda cuando el sensor es tocado y sin tocar

Para el funcionamiento de este circuito necesita lo siguiente:

  • Se usan dos entradas ADC como mínimo.
  • Una entrada ADC siempre estará conectada a VDD.
  • Todas las demás entradas ADC pueden ser sensores touch.

Pasos para el crear el programa (fig.4 y fig. 5):

  • Configure 2 pines como entradas ADC.
  • Una entrada ADC ponerla como salida y activarla a 1 lógico.
  • Leer el ADC a esa entrada.
  • Poner a GND la segunda entrada (es opcional).
  • Activar la segunda entrada como ADC, ésta estará conectada a un sensor como una PCB o una placa de metal delgada.
  • Leer el ADC.

imageFig. 4 Se muestra el momento en que el capacitor de retención y muestreo (CHOLD) es cargado con el voltaje VDD.

imageFig. 5. Se muestra cuando el capacitor CHOLD” se conecta a la placa metálica que se usa como sensor para hacer el divisor de voltaje.

Diseño del Circuito

Para la creación de este sensor touch se divido el circuito en 3 partes

  1. Etapa de alimentación.
  2. Etapa de sensado y control.
  3. Etapa de potencia.

Y una extra que es la creación del PCB.

Etapa de alimentación

(Disponible en el PDF para descargar)

Etapa de Sensado y Control

Para la etapa de sensado y control se eligió un PIC12F683 [4] (fig. 7) por ser económico, traer entradas ADC, pocos pines y fácil de conseguir

imageFig. 7. Microcontrolador PIC12F683, propuesto para este proyecto

Etapa de potencia

Para la etapa te potencia se eligió usar optoacopladores (OptoTriac´s) para conectar al microcotrolador que estos a su vez manejaran a los TRIAC’s de potencia para conectar al exterior.

Se omitió el uso de relevadores por su alto consumo de Corriente (potencia) y el ruido acústico que generan, ya que este circuito no está pensado para manejar cargas con más de 20A.

El opotoacoplador elegido es el “MOC3011” y el Triac “MAC24” aunque se puede usar el MOC3014 sin ningún problema, en la fig.8 se muestra como se conectan el MOC y el Triac.

imageFig.8 Diagrama usado para conectar el MOC, el Triac y un foco.

PCB

(Disponible en el PDF para descargar)

Programa (Firmware)

Para el programa se usó programación en C usando el compilador CCS, la función principal del código para el proyecto es la siguiente (fig.10).

imageFig. 10 Código donde se muestra cómo implementar el Sensor Touch.

En el programa se pueden ver claramente cómo se ejecutan los pasos propuestos por la Nota de aplicación de Micrichip para poder hacer el sensado, ver fig. 11 y fig. 12.

(la explicación completa esta disponible en el PDF para descargar)

Resultados y Conclusiones

Para verificar el correcto funcionamiento de este circuito se tomó una caja para apagador para sobre poner en la pared y en una tapa ciega (fig. 12) se le pego papel aluminio para que sirviera como sensor.

(la explicación completa esta disponible en el PDF para descargar)

imageFig. 14 El circuito armado en protoboard y la caja con la tapa ciega con papel aluminio para usar como sensor

 

** puede ver el video de las pruebas en protoboard en el siguiente link:

http://youtu.be/vOOk8XTGfTI

 

imageFig. 17.

 

Y el circuito final funcionando, lo puede ver en el siguiente video: http://youtu.be/aqG-gbgNvPA

Referencias

[1] Nota de aplicación AN1298, Capacitive Touch Using Only an ADC (“CVD”), Microchip, 2009. Link de descarga: http://ww1.microchip.com/downloads/en/AppNotes/01298A.pdf

[2] Link de hakaday.com, [RobB's] house has no light switches: http://hackaday.com/2012/07/04/robbs-house-has-no-light-switches/

Link del autor: http://blog.theultimatelabs.com/2012/07/bluetooth-capacitive-touch-light-switch.html

[3] Circuito de alimentación disponible en: http://www.micropic.es/mpblog/2004/05/minifuente-sin-transformador/

[4] Hoja de datos del Microcontrolador PIC12F683: http://ww1.microchip.com/downloads/en/devicedoc/41190c.pdf

 

 

PDF para descargar el articulo completo

https://www.mediafire.com/?fuc3xlu46e53wti

Comentarios

  1. Disculpa el link de mediafire del PDF pide un password podrias compartirlo
    Saludos

    ResponderEliminar
  2. Hola. Serías tan amable de publicar el código completo en C? Muchas gracias

    ResponderEliminar
  3. disculpá esta consulta "offtopic" pudiste dar con la solución a esto :
    "sabes configurar el bluetooth en App inventor para enviar caracteres en codificación UTF-8
    para enviar caracteres especiales de nuestra lengua española
    ñ, á, é, í, ó, ú….etc.
    y la codificación ASCII es de 7 bits, que es por default ala hora de enviar caracteres por el bluettoth, por eso no se envían estos caracteres."

    ResponderEliminar
  4. Amigo buenos dias
    mi nombre es Julio Rojas soy de Bogota Colombia e estado mirando el proyecto del interruptor capacitivo y me gustaria ponerlo en mi cuarto pero no entiendo mucho de programacion usted me podria enviar el codigo completo para compilar tambien me gustaria saber si se puede hacer con un pic12f629 o 12f675 que son los que se consiguen aqui le agradezco inmesamente.
    este es mi correo. julroj07@hotmail.com

    ResponderEliminar
  5. Amigo buenos dias
    mi nombre es Julio Rojas soy de Bogota Colombia e estado mirando el proyecto del interruptor capacitivo y me gustaria ponerlo en mi cuarto pero no entiendo mucho de programacion usted me podria enviar el codigo completo para compilar tambien me gustaria saber si se puede hacer con un pic12f629 o 12f675 que son los que se consiguen aqui le agradezco inmesamente.
    este es mi correo. julroj07@hotmail.com

    ResponderEliminar
    Respuestas
    1. si, si sirve esos pics, sludos

      Eliminar
    2. hola PicTrance me podrias pasar el codigo completo para poder terminar tu proyecto que me parece mas que interesante. mi mail es sergvany@yahoo.com.ar soy de argentina bs.as. un abrazo

      Eliminar
  6. hola que buen proyecto. me podrias pasar el programa completo en ccs ya que no estoy muy canchero en el y haces varios dias que intento hacerlo y no lo he podido lograr.. seria para mi de gran ayuda si me lo pasas.. mi mail es sergvany@yahoo.com.ar

    desde ya mil gracias y mil felecitaciones

    ResponderEliminar
  7. Hola buen dia.... me podrias pasar el codigo fuente completo... exelente proyecto.... saludos desde zapopan jalisco
    Alexfigueroa_1978@hotmail.com

    ResponderEliminar
  8. Ya tenia abandonado el blog, aun necesitan el código?

    pero si es bien fácil de implementar

    ResponderEliminar
    Respuestas
    1. estimado, excelente proyecto, pero podrias publicar el codigo completo para poder implementarlo por favor?

      Eliminar
  9. PicTrance en esa función tienes value, y nombre, que haces con esos valores?

    ResponderEliminar
  10. Hola, estou com dificuldade para entender essa nota AN1298, estou quase finalizando o projeto. Pode me passar o código completo por favor? muchas gracias!

    ResponderEliminar
  11. Pic trance gracias por la info es 2019 y aun es de mucha ayuda, queria pedirte el favor de que me regalaras el codgio competo por que he intentado usar la funcion pero aun no me funciona te dejo mi email
    allan47narz@gmail.com
    si a alguna persona sabe porfavor me colabra. gracias

    ResponderEliminar
  12. Hola pic trance, te agradeceria que me pasaras el codigo .puchet68@yahoo.com

    ResponderEliminar
    Respuestas
    1. una disculpa hasta apenas volvi a enrar al blog, aun te interesa el código ?

      Eliminar
  13. una disculpa, blogger no me manda notificaciones de nuevos mensajes y como casi o entro al blog apenas me doy cuenta que un quieren el código

    ResponderEliminar

Publicar un comentario

Entradas populares