17 de maig 2015

Sensors capacitius


Els sensors capacitius són sensors de proximitat, estan formats per una superfície conductora. En apropar-se una altra superfície conductora (p. e. el cos humà) totes dues superfícies actuen com armadures d'un condensador.





Quan s'envia un pols a un condensador, aquest el reté durant un temps abans de deixar-lo continuar pel circuit, provocant un retard.
La capacitat d'aquest condensador i per tant el retard d'un pols elèctric a través d'ell, variarà entre d'altres, en funció de la distància entre totes dues armadures (la superfície del sensor i el nostre cos).


Amb Arduino podem fer un sensor capacitiu creant un circuit tancat entre dos pins digitals: un pin de sortida (emissor) pel qual s'emeten polsos, que retornen a través d'un pin d'entrada (receptor) passant a través d'una superfície conductora qualsevol, com paper d'alumini.


La sensibilitat del sensor depén del tamany d'aquesta superfície conductora i del valor de la resistència del circuit, que podem controlar afegint un resistor, el valor del qual ha de ser alt (entre 100 k i 50 M).

Si utilitzem un valor menor d'1 MΩ el sensor només detectarà el dit quan hi hagi contacte físic. Amb 10 MΩ detectarà el dit a 5-10 cm de distància, i amb 40 MΩ el detectarà a 30-60 cm (en funció de les dimensions de la superfície conductora, com més gran sigui, major sensibilitat del sensor).
Com més gran sigui la sensibilitat del sensor, més lenta serà la seva resposta.

Programació dels sensors capacitius

La llibreria CapacitiveSensor transforma dos pins digitals d'Arduino en un sensor capacitiu: conté les instruccions de generació dels polsos i de lectura dels retards. 
Les principals instruccions d'aquesta llibreria són:

CapacitiveSensor (pin emissor, pin receptor);
defineix un sensor capacitiu entre els dos pins especificats, és a dir, emet polsos pel pin emissor, que retornen pel pin receptor.

nomdelsensor.capacitiveSensor (numLectures);
llegeix les dades provinents del sensor tants cops com s'especifiqui, i retorna un valor mitjana, el qual depen de la proximitat del dit a la superfície conductora del sensor. Aquest valor el podem monitoritzar mitjançant el monitor serial de l'IDE.



Programa per monitoritzar els valors provinents del sensor:
/* Teclat Capacitiu. Sensor Capacitiu - monitorització de dades */

#include <CapacitiveSensor.h>  //Llibreria que cal incloure

// definició del sensor (tecla) entre els pins 2 i 3:
CapacitiveSensor Tecla = CapacitiveSensor(2,3);

void setup()
{
  Tecla.set_CS_AutocaL_Millis(0xFFFFFFFF);  // inicialització del sensor  
  Serial.begin(9600);  // inicialització de la comunicació sèrie a 9600 bps  
}

void loop()
{
  long nota =  Tecla.capacitiveSensor(30);  // desa la dada del sensor com a valor d'una variable  
  Serial.println (nota);  // monitoització del valor de la variable
  delay (500);  // pausa de mig segon abans de prendre una nova lectura
}

Programa per generar una nota musical en funció d'un sensor capacitiu:
/* Teclat 01  - Sensor Capacitiu. 
Ús de la funció tone per emetre la nota Do per un altaveu durant 2 segons */

// definició de valors:
int altaveu = 10;  // pin digital al qual està connectat l'altaveu
int frequencia = 261.63;  // freqüència en Hz de la nota musical que ha de sonar
int durada = 2000;  // temps en ms durant el qual ha de sonar la nota

void setup()
{
  pinMode (altaveu,OUTPUT);  // configuració del pin de l'altaveu 
}

void loop()
{
  // emet pel pin de l'altaveu un senyal ...
  tone (altaveu, frequencia, durada);  // ... amb la freqüència i durant el temps definits
  noTone (altaveu);  // silenci
}

Projecte amb sensors capacitius: teclat tàctil TSC·digital (veure bloc del projecte)

Cap comentari:

Publica un comentari a l'entrada