Descrición:

O seu funcionamento baséase na medición da variación da capacitancia. Ao achegarse ou poñerse en contacto o sensor e un dedo prodúcese unha acumulación de carga eléctrica que pode ser detectada, xerando un sinal dixital cando supera certo valor. O sensor e o corpo humano actúan coma un condensador.
Podes adquirir un sensor táctil capacitivo comercial por moi pouco prezo, e tamén hai a posibilidade de fabricarte un ti mesmo con papel de aluminio, cartolina, cable e unha resistencia de 100 KΩ ou máis.

Montaxe:
1. Sensor comercial
Alimentación: Vcc a 5V e GND a GND- Datos: SIG nun pin dixital de arduino (D9 neste exemplo)
2. Sensor caseiro
Papel de aluminio- Cartolina
- 1 cable dupont
- pegamento de barra e cinta illante
- Unha resistencia de 1 MΩ ou máis
Fabrica o sensor pegando un pouco de papel de aluminio sobre un anaco de cartolina. Pela un cable dupont por un lado e pono en contacto co papel de aluminio e suxéitao cun pouco de cinta illante.
Despois conecta a resistencia entre dous pins dixitais. Neste exemplo eliximos os pins 2 e 4. O cable do sensor irá conectado no pin 2, tal e como aparece na imaxe.
Canto máis alto sexa o valor da resistencia, máis capaz será o sensor de detectar un obxecto a distancia (por exemplo, 10MΩ). Se non precisas moita sensibilidade podes usar unha resistencia de 100kΩ)

Programa:
1. Sensor comercial
Prográmase da mesma maneira que un pulsador. No seguinte exemplo imos acender un LED conectado no pin 13 xunto cunha resistencia de 220Ω (para facer a proba tamén pode valer o propio LED da placa arduino).
// Declaración de variables:
const int led = 13; // Pin 13 asignado a un LED
const int sensor = 2; // Pin 2 asignado ao sensor táctil
int estado = 0; // Variable na que apuntamos o estado do sensor
// Configuración:
void setup(){
pinMode(led, OUTPUT); // Configuramos o LED como saída
}
// Programa:
void loop() {
estado=digitalRead(sensor); // Lemos o estado do pulsador (0 ou 1) e gardámolo na variable "estado"
digitalWrite(led,estado); // Transmitimos ese valor ao LED
}
2. Sensor caseiro
Temos que incluír a librería CapacitiveSensor. Búscaa no repositorio. O primeiro que imos facer é visualizar na consola os valores que dá o sensor cando prememos e cando non. Tendo en conta eses valores lidos establecemos o valor “rango”, a partir do cal imos ordenar que se acenda o led conectado no pin 13. (O que visualizamos na consola é un valor promedio das lecturas do sensor)
//Librerías
#include <CapacitiveSensor.h> //https://github.com/PaulStoffregen/CapacitiveSensor
//Parámetros
bool autocal = 0;
const int numReadings = 20;
long readings [numReadings];
int readIndex = 0;
long total = 0;
const int sensitivity = 1000; // Sensibilidade
const int thresh = 200;
const int csStep = 10000;
int led = 13;
int rango= 70; // Axustar este rango segundo a lectura na consola
CapacitiveSensor cs = CapacitiveSensor(4, 2); // Sensor conectado no pin 2
// Configuración
void setup() {
Serial.begin(9600);
Serial.println(F("Iniciando o sensor"));
if (autocal == 0) {
cs.set_CS_AutocaL_Millis(0xFFFFFFFF);
}
promedio();
pinMode(led,OUTPUT);
}
// LOOP
void loop() {
Serial.println(promedio()); // obtemos a lectura do sensor coa función promedio()
if(promedio() > rango){
digitalWrite(led,HIGH);
}
else {
digitalWrite(13,LOW);
}
delay(10);
}
// Función promedio
long promedio() {
long media; // Realiza a media das lecturas do sensor
total = total - readings[readIndex]; // restamos a última lectura
readings[readIndex] = cs.capacitiveSensor(sensitivity); // lectura do sensor
total = total + readings[readIndex]; // engadimo o valor ao total
readIndex = readIndex + 1; // índice
if (readIndex >= numReadings) {
readIndex = 0;
}
media = total/numReadings; // calculamos a media
return media;
}
Propostas:
- Fai probas para determinar a que distancia mínima somos capaces de activar o sensor táctil.
- Proba cubrir o sensor con diferentes materiais non condutores de pouco espesor e verifica se somos capaces de acender o LED con cada un deles.