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