top of page
ESP_EsquemaTactil.png

Els sensors tàctils de l'ESP32

L’ESP32 té integrats 10 sensors tàctils de tipus capacitiu.

El sensor capacitiu pot detectar canvis elèctrics quan apropem el dit:

Si toquem un d’aquests pins, aquest produirà una sortida proporcional a la càrrega elèctrica del dit, perquè el cos humà també té càrrega elèctrica.

Cada sensor (Touch)

està associat a un GPIO:

Touch0  >>  GPIO4

Touch1   >>  GPIO0

Touch2  >>  GPIO2

Touch3  >>  GPIO15

Touch4  >>  GPIO13

Touch5  >>  GPIO12

Touch6  >>  GPIO14

Touch7  >>  GPIO27

Touch8  >>  GPIO33

Touch9  >>  GPIO32

Capacitive.gif

1, 2, 3 ... Provant ...

Per escriure codi per al sensor tàctil, utilitzem la instrucció touchRead (sensor Touch)

Monitoritzem els valors del sensor

 El paràmetre de touchRead pot ser el Touch o el GPIO.

    El funcionament és el mateix en tots dos cassos:

    const int TocaPin = 4;  // GPIO

    const int TocaPin = T0; // Touch

Un cop carregat el programa a la placa, obrim la consola.

El que hauria de passar:

Sense tocar el pin amb el dit, els valors de la sortida del sensor tàctil

són més alts que quan toquem el terminal metal·lic del fil connectat al GPIO.

Els valors són analògics, però podem establir un llindar (valor frontera)

entre contacte i no contacte.

// valors amb que treballarem:

const int TocaPin = 4;  // GPIO associat a Touch0  

void setup ()   
{ 
  // no cal inicialitzar el pin

  Serial.begin (115200);  // inicialització de la comunicació sèrie
}

void loop ()    

  int ValorSensor = touchRead (TocaPin);   // lectura de l'entrada 
  Serial.print ("Valor del sensor = ");  // imprimeix un text

  Serial.println (ValorSensor);  // imprimeix la lectura del sensor 
  delay (100);  // petita pausa per comoditat de la lectura 

CapacitiuSerie.png
Serial2.png
Hand.png

El sensor tàctil com a botó

En el nostre cas, per exemple …

Sense tocar el cable, el valor de la sortida del sensor és superior a 60.

En tocar-lo, la sortida està entre 20-40.

Digital_01.png
AlTextura

T0 (GPIO4)

Hand.png

paper d'alumini

o qualsevol superficie conductora

Així, podem definir un llindar de, per exemple, 45:

• Encendrem el LED si el llindar és inferior a 45 (contacte)

• L’apagarem si el llindar és superior o igual a 45 (no contacte)

If llindar < 45 → led ON

If llindar 45 → led OFF

(Else)

const int TocaPin T0;  // sensor Touch0, associat a GPIO4

const int LedPin = 5;

const int Llindar = 45;  // valor frontera establert

void setup ()   
{ 
  // no cal inicialitzar el sensor

  pinMode (LedPin, OUTPUT); 
}

void loop ()    

  int ValorSensor = touchRead (TocaPin);   // lectura de l'entrada

 

  if (ValorSensor < Llindar

  { digitalWrite (LedPin, HIGH); }

  else  // si no és menor, serà major o igual

  { digitalWrite (LedPin, LOW); }


  delay (30);  // petita pausa per estabilitzar 

bottom of page