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.
Fig. 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).
Fig. 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
Fig. 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.
Fig. 4 Se muestra el momento en que el capacitor de retención y muestreo (“CHOLD”) es cargado con el voltaje VDD.
Fig. 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
- Etapa de alimentación.
- Etapa de sensado y control.
- 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
Fig. 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.
Fig.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).
Fig. 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)
Fig. 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:
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
¿Cuál es el password del PDF?
ResponderEliminarYa le quite el password al PDF saludos
EliminarDisculpa el link de mediafire del PDF pide un password podrias compartirlo
ResponderEliminarSaludos
Ya le quite el password al PDF saludos
EliminarHola. Serías tan amable de publicar el código completo en C? Muchas gracias
ResponderEliminardisculpá esta consulta "offtopic" pudiste dar con la solución a esto :
ResponderEliminar"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."
Amigo buenos dias
ResponderEliminarmi 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
Amigo buenos dias
ResponderEliminarmi 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
si, si sirve esos pics, sludos
Eliminarhola 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
Eliminarhola 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
ResponderEliminardesde ya mil gracias y mil felecitaciones
Hola buen dia.... me podrias pasar el codigo fuente completo... exelente proyecto.... saludos desde zapopan jalisco
ResponderEliminarAlexfigueroa_1978@hotmail.com
Ya tenia abandonado el blog, aun necesitan el código?
ResponderEliminarpero si es bien fácil de implementar
estimado, excelente proyecto, pero podrias publicar el codigo completo para poder implementarlo por favor?
EliminarPicTrance en esa función tienes value, y nombre, que haces con esos valores?
ResponderEliminarHola, estou com dificuldade para entender essa nota AN1298, estou quase finalizando o projeto. Pode me passar o código completo por favor? muchas gracias!
ResponderEliminaraun te interesa el código?
EliminarPic 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
ResponderEliminarallan47narz@gmail.com
si a alguna persona sabe porfavor me colabra. gracias
aun te interesa el código?
EliminarHola pic trance, te agradeceria que me pasaras el codigo .puchet68@yahoo.com
ResponderEliminaruna disculpa hasta apenas volvi a enrar al blog, aun te interesa el código ?
Eliminaruna 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