Visualitzadors. Pantalles OLED vs LCD
A més del monitor sèrie, que obliga a tenir obert l'IDE, podem mostrar informació amb altres dispositius, com les pantalles:
Visualitzadors. Pantalles OLED vs LCD
A més del monitor sèrie, que obliga a tenir obert l'IDE, podem mostrar informació amb altres dispositius, com les pantalles:
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
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
}
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.
T0 (GPIO4)
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
}