Sensore touch Capacitivo con Arduino: CapacitiveSensor

Ti sei mai chiesto se fosse possibile utilizzare un vero e proprio interruttore touch con Arduino?

Certo! Si può! E ad un costo nullo, dato che non devi nemmeno acquistare un sensore!

Costruiamo il sensore

Come prima cosa, dovrai “costruire” il tuo sensore. Ciò di cui hai bisogno è una piccola piastra in materiale metallico su cui salderai un piccolo cavo elettrico. Ad esempio, si può usare una basetta ramata tagliata adeguatamente, oppure un foglio in alluminio piegato su un cartoncino.

2015-03-13 18.09.04

Questo sensore è di tipo Capacitivo. Ciò significa che funziona grazie a una minima corrente elettrica che scorre attraverso il nostro corpo. Il funzionamento è descritto meglio qui.

Schema

schema

 

In una parte ho collegato il LED al pin 12, nell’altra ho collegato il sensore ai pin 2 e 4, con una resistenza da 10 Mohm. Maggiore è il valore di questa resistenza, maggiore sarà la sensibilità del sensore.

Codice

#include 
CapacitiveSensor sensore = CapacitiveSensor(4, 2);
 
 const int led = 12;
 
void setup()
{
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}
 
void loop()
{
  long valore = sensore.capacitiveSensor(30);
  Serial.println(valore);
 
  if (valore > 500)
  {digitalWrite(led, HIGH);}
  else
  {digitalWrite(led, LOW);}
  delay(10);
}

Per questo progetto è necessaria la libreria “CapacitiveSensor”, scaricabile da qui.

Dopo averla inclusa, ho creato un oggetto “CapacitiveSensor” chiamato “sensore” a chui sono associati i Pin 2 e 4, a cui è collegato. Nel loop ho dichiarato una variabile di tipo long “valore” a cui è associato appunto il valore relativo al sensore, che viene stampato nel monitor seriale. Se questo valore è maggiore di 500, significa che staimo toccando il sensore, quindi si accende il led. Al contrario, si spegne. Infine è presente una pausa di 10 ms.

Video