Descrición:
Un sensor táctil capacitivo ten o mesmo comportamento que un pulsador, pero pode ser activado con moi pouca presión ou a moi pouca distancia (a 1-5mm do sensor). Iso faino interesante para algunhas aplicacións, por exemplo para colocar o sensor debaixo de materiais non condutores coma o plástico, papel ou cristal, sempre e cando teñan pouco grosor.
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.