Tutorial de Arduino: sensores táctiles capacitivos
¡Hola a todos!
Este instructivo es un tutorial que lo guiará en el uso de los sensores táctiles capacitivos con Arduino. Un sensor capacitivo es un tipo de sensor táctil que requiere poca o ninguna fuerza para activarse.
En este Instructable sobre detección táctil capacitiva, te mostraré:
- Cómo funcionan los sensores capacitivos
- Cómo usarlos con un Arduino
- Cómo implementarlos en 3 proyectos Arduino, que se incluyen en este Instructable
- Cómo usar la biblioteca CapSense, que se usa en los dos primeros proyectos. También he incluido el código de demostración y su explicación para la biblioteca CapSense ...
Las habilidades requeridas para estos proyectos son mínimas:
- Conocimientos básicos de electrónica y arduino.
- Soldadura (opcional)
¡Comencemos por conocer primero de qué se trata esta detección táctil capacitiva!
Paso 1: Acerca de la biblioteca CapSense y la detección capacitiva ...

Para la mayoría de los proyectos relacionados con la detección capacitiva, utilicé la biblioteca CapSense. El parque infantil Arduino tiene una buena explicación de la biblioteca Capsense. Sin embargo, si eres un novato en Arduino, estoy bastante seguro de que entenderás solo la mitad de lo que está escrito allí. Por lo tanto, aquí tengo una explicación simplificada ...
Detección capacitiva:
La detección táctil capacitiva es una forma de detección táctil humana, que requiere poca o ninguna fuerza para activarse. Se puede usar para sentir el contacto humano a través de más de un cuarto de pulgada de plástico, madera, cerámica u otro material aislante (sin embargo, ningún tipo de metal), lo que permite que el sensor quede completamente oculto visualmente.
¿Por qué el tacto capacitivo?
- Cada sensor táctil requiere solo un cable conectado a él.
- Puede ocultarse debajo de cualquier material no metálico.
- Se puede usar fácilmente en lugar de un botón.
- Puede detectar una mano a unas pocas pulgadas de distancia, si es necesario.
- Muy barato
¿Como funciona?
La placa del sensor y su cuerpo forman un condensador. Sabemos que un condensador almacena carga. Cuanto más capacitancia, más carga puede almacenar.
La capacitancia de este sensor táctil capacitivo depende de qué tan cerca esté su mano de la placa.
¿Qué hace el Arduino?
Básicamente, el arduino mide cuánto tiempo tarda el condensador (es decir, el sensor táctil) en cargarse, dándole una estimación de la capacitancia.
La capacitancia puede ser muy pequeña, sin embargo, el Arduino lo mide con precisión.
Una forma de usar el toque capacitivo en un proyecto es usar la biblioteca CapSense. Para la biblioteca Capsense, el arduino usa un pin de envío y se requiere cualquier número de pines de recepción. Un pin de recepción está conectado al pin de envío a través de una resistencia de valor medio a alto.
Aquí hay algunas pautas para las resistencias, pero asegúrese de experimentar para obtener la respuesta deseada.
- Use una resistencia de 1 megaohmio (o menos, tal vez) para activar el toque absoluto.
- Con una resistencia de 10 megaohmios, el sensor comenzará a responder a 4-6 pulgadas de distancia.
- Con una resistencia de 40 megaohmios, el sensor comenzará a responder a 12-24 pulgadas de distancia (dependiendo del tamaño de la lámina). Los tamaños de resistencia comunes generalmente terminan en 10 megaohmios, por lo que es posible que tenga que soldar cuatro resistencias de 10 megaohmios de extremo a extremo. Una compensación con resistencias más grandes es que la mayor sensibilidad del sensor significa que es más lenta.
* Estas pautas de valor de resistencia son solo para usar la biblioteca CapSense. El último proyecto no usa esta biblioteca.
Resumen: los sensores táctiles capacitivos requieren poca o ninguna fuerza para activarse. La biblioteca CapSense se puede utilizar para hacer múltiples sensores táctiles con Arduino.
Paso 2: Código de demostración de la biblioteca CapSense ...

Aquí hay una explicación del código de demostración para la biblioteca CapSense.
CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2);
Puede reemplazar 'cs_4_2' con cualquier otro nombre. '4' es el pin de envío, '2' es el pin de recepción.
configuración nula () {La configuración se ejecuta solo una vez.
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // apague la calibración automática en el canal 1, solo como ejemplo
Serial.begin (9600);}Comienza la comunicación en serie a 9600 baudios ...
largo total1 = cs_4_2.capacitiveSensor (30);
La declaración anterior se declara en 'void loop ()'. Cuando se usa una resistencia de 1M, total1 será menor o aproximadamente diez. Cuando se toca, se convierte en más de 60 ...
Serial.println (total1);
Envía el valor de total1 a la ventana Serie de la computadora ...
Se explican las partes importantes del código. Este no es el código completo; el completo está en el archivo adjunto a continuación. Omita el paso si cree que el código es fácil.
Archivos adjuntos
CapacitiveSensorSketch.pde Descargar
Paso 3: Proyectos con toque capacitivo y Arduino ...



Ahora que tiene una idea de qué es el tacto capacitivo (si leyó el paso anterior), veamos qué podemos hacer con él. En este instructable te mostraré 3 proyectos que incorporan toque capacitivo.
Luz operada al tacto:
Un proyecto básico que lo ayudará a comprender las ideas del tacto capacitivo y a implementarlo en otros proyectos. El uso de un relé y soldadura es opcional, pero se requiere si desea operar aparatos de alto voltaje.
Interruptor del sensor de proximidad:
Acercar su mano a este interruptor encenderá o apagará un led. Agregar un relé y soldar le permitirá operar dispositivos de alto voltaje, aunque es opcional.
Rastreador de manos sin contacto 3D:
Rastrea la posición de su mano en 3 dimensiones. Se puede usar para innumerables aplicaciones, sin embargo, he incluido proyectos que son simples y fáciles de hackear, por lo que puede usarlo para su propio propósito. No requiere soldadura .
Paso 4: toque de luz controlada: - Materiales necesarios ...




Este es un proyecto muy barato y fácil. Da una buena idea de cómo funciona el tacto capacitivo y cómo se puede implementar en varias otras aplicaciones. Este proyecto simple utiliza un sensor táctil capacitivo, que enciende y apaga un LED, o incluso electrodomésticos de alto voltaje, al tocar un trozo de papel de aluminio.
Tiempo : <1 hora, +1 hora para relé de soldadura (opcional)
Costo : pocos centavos, ~ 1 $ por un relevo (excluido Arduino)
Dificultad : Muy Muy Fácil.
Materiales : (disponible en RadioShack)
- Junta Arduino
- Resistencia de 500K a 1M
- Resistencia de 220ohm
- Cualquier color LED
- Frustrar
- Cable pasa corriente
- Relé (opcional)
- Enchufe de red (macho y hembra) (opcional)
Paso 5: toque de luz controlada: - el circuito



El circuito es simple. ¡Quiero decir tan simple que ni siquiera necesitarás una placa de prueba!
Tenga en cuenta que he usado un Arduino Mega, porque ahora es el único que tengo. Si está utilizando un Uno, conecte el LED a cualquier otro pin conveniente. Sin embargo, debe hacer un pequeño cambio en el código más adelante. Mira el siguiente paso.
Sigue las fotos del circuito.
- Conecté el led y la resistencia de 220ohm en serie a través del pin 42 y tierra.
- He usado el pin 4 como pin de envío y el pin 2 como pin de recepción en el Arduino.
- Hay una resistencia de 1M a través de estos pines. La lámina está conectada al pin de recepción, es decir, el pin 2.
Paso 6: toque de luz controlada: - Código Arduino ...


Ahora a la parte de programación. El código utiliza la biblioteca CapSense (descargar aquí), que se encarga de la detección capacitiva. Si no está familiarizado con el proceso de instalación de una biblioteca, consulte este increíble tutorial:
Instalación de una biblioteca Arduino - Learn.SFE
El código es simple y fácil de entender. Simplemente copie este código y péguelo en una ventana de Arduino en blanco. Cambie el pin led si es necesario. Luego sube ...
#include int led = 42; // cambia '42' a cualquier pin deseado ... largo tiempo = 0; int estado = ALTO; booleano sí; booleano anterior = falso; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Resistencia de 10M entre los pines 4 y 2, el pin 2 es el pin del sensor, agregue un cable o una lámina si lo desea // Para agregar más sensores ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Resistencia de 10 M entre los pines 4 y 6, el pin 6 es el pin del sensor, agregue un cable o una lámina // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Resistencia de 10M entre los pines 4 y 8, el pin 8 es el pin del sensor, agregue un cable o una configuración de vacío de lámina () {cs_4_2. set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrar el sensor ... pinMode (led, OUTPUT); } void loop () {long total1 = cs_4_2. sensor capacitivo (30); if (total1> 60) {yes = true;} else {yes = false;} // para alternar el estado del estado if (yes == true && previous == false && millis () - time> debounce) {if ( estado == BAJO) {estado = ALTO; } estado más = BAJO; tiempo = millis (); } digitalWrite (led, estado); anterior = sí; Serie println (millis () -time); retraso (10); }
Paso 7: toque de luz controlada: - Agregar un relé ...












Entonces tienes un LED con control táctil. ¿Y qué? Puede hacer que el proyecto sea un poco más útil controlando los dispositivos como luces y ventiladores con el tacto. Y afortunadamente, solo necesita agregar un relé al Arduino para hacer esto.
¿Qué es un relé?
Un relé es un interruptor accionado eléctricamente. Por lo general, los relés usan un electroimán para operar mecánicamente un interruptor aislado. Su función principal es utilizar un voltaje pequeño para encender / apagar un voltaje alto o una corriente alta por separado. Es útil para controlar electrodomésticos con pequeños circuitos o microcontroladores.
Para obtener más información sobre los relés, consulte este excelente Instructable: cómo funcionan los interruptores electrónicos para noobs: relés y transistores
El circuito:
El Arduino no puede suministrar suficiente corriente para operar un relé, por lo tanto, necesitaría un transistor BC547. El transistor amplifica la corriente del Arduino para activar el relé. Para obtener ayuda en la comprensión, consulte este útil video: Cómo controlar los relés con Arduino
He proporcionado el diagrama del circuito para el transistor y el relé. También hay un diagrama de tablero de Fritzing para ayudarlo a comprender las conexiones.
Después de eso, prepare el enchufe macho como se muestra en las imágenes de arriba ...
Paso 8: toque de luz controlada: - Hacer una caja para el relé ...








Usé una caja de plástico de 5 * 2 * 2 pulgadas para alojar el relé y los cables. Puede ser un poco demasiado grande, pero lo suficientemente bueno para la demostración. Mi intención principal era mantener los cables de alto voltaje separados del Arduino y de mi cuerpo.
Prepara la caja:
Corte un agujero cuadrado de la tapa de la caja para que se ajuste al enchufe hembra. Haga agujeros para los tornillos y luego ajuste el tapón. Pegue el relé al fondo de la caja.
Haz conexiones:
El circuito que involucra alto voltaje es muy simple. Siga las imágenes y sus etiquetas, o los siguientes pasos:
- Relé COM a un terminal de la red eléctrica.
- Relé NO a un terminal del aparato.
- El otro terminal de la red eléctrica al segundo terminal del aparato.
Paso 9: Luz controlada táctil: - Agregue el sensor táctil y Arduino ...




Pegue un trozo de papel de aluminio en la caja con cinta adhesiva como se muestra arriba. Esto está conectado al pin de recepción del Arduino (pin 2 en mi caso). El "pin led", o pin 42 en mi caso, está conectado al transistor.
Paso 10: toque de luz controlada: - ¡Terminado!


Conecte el enchufe macho a la toma de corriente y enchufe el aparato que desea controlar a la caja. Enciende tu Arduino con una batería.
Ahí lo tienes: ¡tu propia luz táctil controlada! Puede usar más relés y sensores táctiles para controlar más electrodomésticos, o incorporarlo en un sistema de automatización del hogar. Por ahora lo uso para controlar la lámpara de mi escritorio, y funciona bastante bien.
Aquí hay un video que muestra el funcionamiento del interruptor táctil ...
También tengo un video que muestra el prototipo funcionando ...
Espero que no te importe la explosión al final: P .....
Paso 11: Interruptor de luz de detección de proximidad



Acercar la mano al interruptor o simplemente mover la mano hacia él encenderá o apagará una luz. En realidad, es muy similar a la "Luz controlada táctil" en los pasos anteriores. De hecho, este último se puede modificar fácilmente para hacer que este interruptor de luz de detección de proximidad ...
Tiempo : total <1 hora, +1 hora para soldadura opcional
Costo : ~ 1 $, excluyendo Arduino
Dificultad : fácil
Materiales necesarios:
- Resistencia 5.6M
- Resistencia de 220ohm
- Cualquier color LED
- Frustrar
- Cable pasa corriente
- Relé (opcional)
- Enchufe de red (macho y hembra) (opcional)
Paso 12: Interruptor de luz de detección de proximidad: - el circuito ...




El circuito es simple, es solo una modificación de la "Luz Controlada Táctil". De hecho, lo único que tiene que cambiar es una resistencia; esta vez tienes que usar una resistencia de ~ 5M en los pines 2 y 4 del arduino.
Paso 13: Interruptor de luz de detección de proximidad: - el código ...

Aquí el código es similar a la "Luz controlada táctil". Solo tiene que cambiar el tiempo de rebote en el código y ajustar algunos otros valores con prueba y error ...
Copie este código y péguelo en la ventana de Arduino ...
#include int led = 42; // cambia '42' a cualquier pin deseado ... largo tiempo = 0; int estado = ALTO; booleano sí; booleano anterior = falso; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Resistencia de 10M entre los pines 4 y 2, el pin 2 es el pin del sensor, agregue un cable o una lámina si lo desea // Para agregar más sensores ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Resistencia de 10 M entre los pines 4 y 6, el pin 6 es el pin del sensor, agregue un cable o una lámina // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Resistencia de 10M entre los pines 4 y 8, el pin 8 es el pin del sensor, agrega un cable o una configuración de vacío de lámina () {cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrar el sensor ... pinMode (led, OUTPUT); } void loop () {long total1 = cs_4_2.capacitiveSensor (30); if (total1> 60) {yes = true;} else {yes = false;} // para alternar el estado del estado if (yes == true && previous == false && millis () - time> debounce) {if ( estado == BAJO) {estado = ALTO; } estado más = BAJO; tiempo = millis (); } digitalWrite (led, estado); anterior = sí; Serial .println (millis () - tiempo); retraso (10); }
Paso 14: Control de dispositivos de alto voltaje ...



Para controlar aparatos de alto voltaje, se requiere un relé. Siga las mismas instrucciones para configurar el relé que en el proyecto anterior ...
Paso 7: Agregar un relé
Paso 15: controlador 3D sin contacto



Este controlador 3D rastreará la posición de su mano en 3 dimensiones. Se basa en la detección táctil capacitiva. Al igual que el proyecto anterior, el interruptor de luz de detección de proximidad, el sensor táctil podrá detectar su mano desde unas pocas pulgadas de distancia.
Este proyecto está inspirado en el impresionante controlador 3D de bricolaje instructable de kylemcdonald. Eche un vistazo a su Instructable también para tener una idea de este controlador 3D ...
Hay muchas cosas que puede hacer con este controlador 3D, por ejemplo, como un mouse de computadora, para controlar una escena de animación 3D, controlar cubos LED y mucho más. Pero, por supuesto, no son tan fáciles y baratos de hacer.
Por lo tanto, tengo un proyecto simple pero genial apto para principiantes: un LED RGB controlado por 3D Tracker. Básicamente, puede controlar el color de un LED moviendo la mano en diferentes posiciones. ¿No lo entendiste? Continúe con el siguiente paso para obtener más ...
Paso 16: Cómo funciona y materiales ...




Este controlador 3D tiene 3 sensores táctiles, que responden desde unas pocas pulgadas de distancia. Al juzgar la distancia desde cada sensor, Arduino puede calcular las coordenadas x, y y z de su mano.
El LED RGB tiene 3 colores: rojo, verde y azul. El brillo de cada color depende de las coordenadas respectivas de la mano. Por ejemplo, cuanto menor sea la coordenada x (cuanto más cerca esté mi mano del sensor derecho), más brillante será el color rojo del LED rgb.
Tiempo : 1 - 1.5 horas
Costo : <$ 1, excluyendo Arduino ...
Dificultad : fácil.
Materiales necesarios:
- Papel de aluminio
- Arduino Board (recomiendo el Uno)
- Resistencias de 10k ohmios x3
- Resistencias de 220kohm x3
- Resistencias de 220 ohmios x3
- Cable
- LED RGB
Paso 17: Preparación de los sensores táctiles ...







Necesitamos tres piezas separadas de papel de aluminio, con unas dimensiones de aproximadamente 8 * 8 pulgadas. Una pieza de papel de aluminio está pegada en una base gruesa de espuma de poliestireno (termocol). Las ranuras se hacen en la espuma de poliestireno en 2 lados adyacentes de la lámina, como se muestra en las imágenes de arriba.
Las otras dos piezas de papel de aluminio están pegadas en la placa de montaje (que es cartón blanco).
Estas dos piezas de placa de montaje se insertan en las ranuras de la espuma de poliestireno, perpendiculares entre sí y con la espuma de poliestireno, como se muestra en las imágenes de arriba.
Para que todo sea resistente, utilicé una pequeña pieza rectangular de tabla de montaje para sostener las dos tablas de montaje con la lámina. Las imágenes de arriba y sus etiquetas definitivamente ayudarán mucho.
Paso 18: El circuito ...



Conecte un cable a cada sensor táctil con cinta aislante. Luego, monte el circuito en una placa de pruebas, con la ayuda del diseño de la placa de pruebas Fritzing anterior.
Paso 19: cargue el código ...
El código se proporciona en el archivo adjunto a continuación. Simplemente haga clic y copie y pegue el código en la ventana de código de Arduino.
Antes de presionar cargar, asegúrese de realizar cambios en los pines, si es necesario.
Calibración de los sensores táctiles ..
Después de cargar el código, abra el Monitor de serie, con el Arduino todavía conectado. Verá que aparecen muchas líneas de valores, y cada línea tiene 3 valores que representan cada sensor táctil. Toque cualquier sensor táctil (debe saber cuál está tocando) y vea su valor correspondiente en el Monitor de serie.
Verá esta línea en el código antes de anular la configuración () {
int maxval = 20;
Cambie 20 al valor que obtuvo después de tocar uno de los sensores.
Luego sube el código una vez más. Moviendo su mano dentro del controlador 3D producirá una variedad de colores.
Nota importante: El siguiente código solo funciona para placas compatibles con Arduino Uno (y probablemente Leonardo). Probé el Mega y no funcionó, porque tiene 'PUERTOS' muy diferentes (incluso al principio me resultó difícil de entender, esto es para los tipos más experimentados) ...
Resumen: cargue el código, ajuste la variable "maxval" y cargue nuevamente. Se recomienda usar un Arduino Uno o un clon.Archivos adjuntos
_3d_controller.ino Descargar
Paso 20: Conclusión ...

Esos son solo 3 proyectos que puedes hacer con Touch capacitivo. Esperemos que te den una idea sólida sobre el uso de sensores táctiles para crear cosas increíbles. No se limite a detenerse aquí: las cosas que puede hacer con la detección táctil capacitiva son infinitas: teclados táctiles, almohadillas de seguimiento, mouse de computadora sin contacto, reloj con control táctil son solo algunas de las innumerables ideas que se me ocurren.
Ir más lejos.....
Podrías hacer más con los proyectos que he mostrado. Por ejemplo, utilizando la idea del primer proyecto, haga una placa de interruptor táctil para controlar varias luces y ventiladores en una habitación. O quizás incorporarlo en un proyecto de domótica.
Con la idea de la luz de detección de proximidad, intente hacer una lámpara de escritorio automática que detecte su presencia.
Con el controlador 3D, intente hacer un mouse 3D con un Arduino Leonardo. O utilice un programa de procesamiento para comunicarse con el controlador 3D.
Otros tutoriales y más ...
playground.arduino.cc/Main/CapSense
Tutorial Hackaday
Aquí hay un gran video (aunque no es mío), solo un simple tutorial táctil capacitivo, que también he cubierto. Sin embargo, un video puede aclarar las cosas ...
Paso 21: Comente y exprese sus opiniones ...
Con su ayuda ciertamente puedo mejorar este Instructable.