En esta nueva entrada aprenderemos a fabricar nuestros propios sensores capacitivos con tan solo un papel, un lápiz, unos clips y un poco de cable.
¿Cómo funcionan estos sensores?
Se basan en el efecto de la capacidad eléctrica sobre un circuito. La capacidad eléctrica, o capacitancia, es la propiedad que tienen los cuerpos de mantener la carga eléctrica, es decir, la capacidad de almacenar energía. Esta carga eléctrica actúa como una pequeña batería que almacena tensión, por lo que influirá en nuestro circuito. El condensador es el dispositivo más común que sigue este principio.
En el caso del condensador, influyen en la capacidad eléctrica un cierto número de factores físicos, como la forma y distancia entre las placas que forman el condensador o el material dieléctrico (un material muy aislante que se coloca entre las placas). Para calcular la capacidad se utiliza la formula:
Cuando toquemos con nuestro cuerpo uno de los botones que vamos a dibujar, o un pad de la shield, se producirá un cambio en el sensor y se medirá, en nuestro caso, en Arduino. Si quieres saber más sobre la capacidad del cuerpo humano, puedes ver esta página.
¿Qué vamos a hacer?
Haremos un circuito, en el que crearemos los sensores con elementos que encontramos por sorpresa en cualquier cajón de casa, como lapices y clips. Además, crearemos varios proyectos que podréis hacer fácilmente con Mi primer kit de robótica. ¡Pasa a las instrucciones si quieres saber cómo hacerlo!
Para crear los circuitos necesitarás:
Cable, preferiblemente unifilar
Clips
Un lápiz, cuanto más blando mejor
Soldador y estaño (opcional)
Resistencias, valor mayor de 1 MΩ
Cinta adhesiva transparente (opcional)
Pelacable o alicates
Crea los pads con tu lápiz
El grafito que forma la mina del lápiz es conductor de la electricidad, por ello lo podremos utilizar para crear nuestros pads. Para facilitar el contacto del clip con el dibujo, crearemos rectángulos de mayor tamaño que el clip, pero además de eso, siempre podrás crear un botón con la forma que quieras.
Es recomendable utilizar un lápiz con una mina blanda, como por ejemplo, un lápiz 2B. Hay que asegurarse de dejar bastante grafito en el dibujo, para que conduzca más fácilmente, por lo que el dibujo tiene que quedar con un tono negro oscuro. Al tener tanto grafito, el dibujo manchará, si no quieres mancharte puedes utilizar un trozo de cinta adhesiva transparente o pulsar sobre la otra cara, pero ten en cuenta que la sensibilidad se verá reducida.
Crea el circuito
Para conectar el pad que hemos dibujado con Arduino, utilizaremos un clip al que soldaremos un cable. Al soldar los dos elementos juntos, conseguimos que el contacto entre ambos sea óptimo y mejoraremos así el resultado. Si no tienes soldador en casa puedes intentar enrollar el cable en el clip, pero puede ser que el contacto no se realice correctamente y que, por lo tanto, no funcione. En este caso, puedes utilizar directamente un trozo de cable (incluso con el aislante funcionará, pero la medición sera menor).
Para conectar el pad con Arduino, nosotros hemos utilizado una breadboard, pero puedes utilizar otro método, como clemas de conexión o cinta aislante. En primer lugar conectaremos el pin emisor (en nuestro caso el pin 4) a una resistencia de valor bastante alto (utilizamos de 1 MΩ) y el otro extremo lo conectaremos a nuestro pad y al pin Arduino que hayamos escogido (en nuestro caso el pin 6).
Carga el código Arduino
Para conocer si se ha pulsado o no en el pad, utilizaremos un código Arduino basado en la librería Capacitive Sensor de Paul Stoffregen. En esta página de Arduino Playground podéis encontrar más información sobre la librería.
Para comenzar, crearemos las variables necesarias para nuestro programa:
Arduino
1
2
3
4
5
6
7
8
9
10
#include <CapacitiveSensor.h>
CapacitiveSensorcapBtn=CapacitiveSensor(4,6);// 10M resistor between pins 4 & 6, pin 6 is sensor pin, add a wire and or foil
longinitialValue;
intthreshold=200;
intsamples=10;
intpinLed=7;
A continuación, en el setup, inicializaremos la comunicación serie y tomaremos el valor inicial que utilizaremos como comparación junto con la variable threshold para saber si se ha pulsado o no el botón. Es importante no tocar el pad dibujado al inicio del programa para que tome el valor del estado de reposo y se detecte correctamente cuándo se ha tocado.
Arduino
1
2
3
4
5
voidsetup(){
Serial.begin(9600);
initialValue=capBtn.capacitiveSensor(samples);
pinMode(pinLed,OUTPUT);
}
En primer lugar, en el loop calcularemos el valor y comprobaremos si el valor leído es mayor que el threshold más el valor inicial, fijado por programación y medido en setup, respectivamente. En caso que el valor leído, value, sea mayor que esta suma encenderemos un LED y, en caso contrario, lo apagaremos.
Arduino
1
2
3
4
5
6
7
8
9
10
11
12
13
voidloop(){
longvalue=capBtn.capacitiveSensor(samples);
if(value>(initialValue+threshold)){
digitalWrite(pinLed,HIGH);
}else{
digitalWrite(pinLed,LOW);
}
Serial.println(value);// print sensor output
delay(100);// arbitrary delay to limit data to serial port
}
Para calcular que valor de threshold va bien para nuestro sensor, podemos utilizar el monitor serie de Arduino para ver qué valor toma la variable value y escoger un valor adecuado, teniendo en cuenta que el valor inicial más el threshold han de ser menores que el valor leído al pulsar, pero no tan pequeño como para que puedan producirse falsos positivos.
Proyectos en los que se puede utilizar
Piano con Buzzer:
Para construir nuestro piano, utilizaremos la plantilla adjunta en descargas y realizaremos el circuito como hemos hecho para un pad, solo que necesitaremos 7 clips, 7 resistencias y 7 trozos de cable. Además, cargaremos el programa piano_capacitive.ino en nuestra placa ZUM.
Para realizar las conexiones de las teclas del piano, utilizaremos los pines:
Nota
Pin
Do
6
Re
7
Mi
8
Fa
9
Sol
10
La
11
Si
12
En este caso, conectaremos el zumbador al pin 3 y… ¡ya estaremos listos para tocar!
También puedes crear un sistema de acceso, un control para la lámpara de noche o, ¡cualquier cosa que se te ocurra!
Soy Maker y amante del DIY. Estudié Electrónica y Automática y adquirí conocimientos que ahora aprovecho en mi trabajo y hobby, la necesidad de crear, compartir, modificar y mejorar proyectos: El espíritu Maker. Trabaja en el departamento de Innovación y Robótica de bq como documentador.