Andrea Angelotti
Pulsante capacitivo piattoStampaE-mail
Tutorials -
Mercoledì 23 Febbraio 2011 19:09
Scritto da Andrea Angelotti

Tutti sappiamo cos'è un pulsante, attenzione non parlo di interruttori. ;)

Tutti sappiamo anche cos'è uno schermo capacitivo, ormai quasi tutti gli smart phone ne sono dotati, è una tecnologia che rileva l'input solo da componenti metalliche o dal corpo umano.

Bene, ora pensiamo di poter creare un pulsante capacitivo quasi privo di spessore; "follia!" dite? "Ci vorranno componenti costosissimi e sarà complicatissimo"?

Assolutamente no!! :D
In realtà basta il nostro fidato Arduino (con le librerie CapSense, di cui parleremo più avanti), una resistenza bella grande (da 1M ohm a 50M), un foglio di alluminio (la carta alluminio da cucina andrà benissimo) e qualche filo, nient'altro, la lista della spesa è finita qui.

Come funziona il sistema?

Qui potete trovare un articolo introduttivo di Calamaro, che spiega anche come funzionano le librerie CapSense, e qui le librerie da scaricare e il funzionamento nello specifico.

Per farla breve stiamo creando un rilevatore di carica, uno strumento che rileva la carica elettrica del nostro corpo o di un corpo metallico e ne calcola la quantità che scorre sul foglio di alluminio; questa carica è direttamente proporzionale alla distanza del corpo dall'antenna (il foglio di alluminio), per arrivare ad un valore massimo quando il corpo è a contatto con essa.

Il circuito è semplicissimo, come potete vedere nella foto.

Circuito del pulsante capacitivo

C'è una resistenza (nell'esempio è stata usata da 1M Ohm) tra due piedini (da notare che sono stati usati i piedini analogici in modalità digitale, ma solo per un'esigenza di disposizioni, dato che i piedini devono essere digitali), e da uno di essi (il piedino del sensore vero e proprio) parte un filo che è attaccato ad un foglietto di carta alluminio.
Più grande si sceglie la resistenza, maggiore sarà la distanza di sensibilità del nostro sensore; con resistenze dell'ordine dei 10/20M Ohm basta tenere la mano a 7-8 cm perchè sia rilevata.
Nel mio caso ho scelto una resistenza da 1M Ohm perchè volevo che la mano fosse rilevata ad una bassissima distanza e che funzionasse come un pulsante di contatto.. e poi non avevo resistenze più grosse.. :)

Tutto il resto che vedete nella foto e nel video è folklore aggiunto per mostrarne un'applicazione pratica! ;)
C'è una led bar (in cui funzionano solo i primi 4 led) che indica la vicinanza percepita dal sensore, ed un relè che si attiva quando il "pulsante" viene effettivamente premuto (potete sentire il "clack" del relè in sottofondo).

Ecco il video del suo funzionamento.

http://www.youtube.com/watch?v=ptH__PRoWIU

Ed ecco immancabile il codice che fa funzionare il nostro bellissimo pulsante capacitivo.

/*

* Author: Saki-Kawa

* url: http://saki-tech.tumblr.com

*/

 

#include "CapSense.h"

CapSense cs_19_15 = CapSense(19,15); // Pin19 (Analog5): Riferimento, Pin15 (Analog1): Sensore.

 

void setup() {

// Pin per la ledbar

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

// Pin per il relè (bobina da 5V)

pinMode(7, OUTPUT);

Serial.begin(9600);

}

 

void loop() {

long tot = cs_19_15.capSense(30);

Serial.print(tot);

Serial.println("\t");

 

if(tot < 1000){

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(7, LOW);

digitalWrite(2, HIGH);

}

if(tot > 1000 && tot < 2000){

digitalWrite(4, LOW);

digitalWrite(5, LOW);

digitalWrite(7, LOW);

digitalWrite(2, HIGH);

delay(50);

digitalWrite(3, HIGH);

}

if(tot > 2000 && tot < 3000){

digitalWrite(5, LOW);

digitalWrite(7, LOW);

digitalWrite(2, HIGH);

delay(50);

digitalWrite(3, HIGH);

delay(50);

digitalWrite(4, HIGH);

}

if(tot > 3000){

digitalWrite(2, HIGH);

delay(50);

digitalWrite(3, HIGH);

delay(50);

digitalWrite(4, HIGH);

delay(50);

digitalWrite(5, HIGH);

digitalWrite(7, HIGH);

}

delay(100);

}

NOTA:
In questo esempio il foglio di alluminio è scoperto e direttamente toccabile, ma il sistema funziona, ed è anzi consigliato, coprendolo con del materiale isolante, come carta, cartone o qualunque altra cosa, dovrete solo regolare adeguatamente la portata del vostro sensore con le resistenze.

Immaginate cosa si può fare con questo progetto!
Potete attaccare il foglietto di alluminio al muro e verniciarlo, per nasconderlo totalmente, oppure potete mimetizzarlo dietro un quadro, dentro un libro, potete veramente usarlo in un'infinità di progetti e applicazioni.

 

Gioblu Robotics © 2010 - 2011 · Sitemap · privacy

gioscarab@gmail.com · Via Savona 123 20146 Milano MI · P.I. 06977550968 · Codice fiscale MTL GNN 86S09 F205 F

Gioblu botServer è online dal 10 Aprile 2010 - 129552 Visite - 554883 Pagine visualizzate - 68220 Visitatori unici - 350 utenti attivi