🛠 Toucher capacitif : touchRead sans composant
Objectifs
Utiliser le périphérique de toucher capacitif (CTSU) du RA4M1 : 14 broches de la carte peuvent servir de capteur tactile capacitif, lues par un simple touchRead de la bibliothèque officielle CapacitiveTouch. Vous allez calibrer un seuil en regardant les valeurs réelles, puis déclencher un affichage sur la matrice LED — un bouton sans bouton, sans résistance ni fil autre qu'un bout de conducteur.
Matériel
- 1 Arduino UNO R4 WiFi + câble USB-C
- 1 fil de connexion nu (le « pad » : un bout de fil, une plaque de cuivre, du papier aluminium collé)
- Optionnel : un second fil pour comparer deux zones tactiles.
Code complet
#include <CapacitiveTouch.h>
const uint8_t PAD = A1; // une broche compatible toucher
const int SEUIL = 100; // à calibrer avec le Moniteur série !
void setup {
Serial.begin(115200);
}
void loop {
int v = touchRead(PAD); // ~0 au repos, monte franchement au toucher
Serial.println(v);
if (v > SEUIL) {
MatrixSmiley; // votre fonction d'affichage (voir tuto matrice)
}
delay(20);
}
Vérification attendue
Au repos, touchRead affiche une valeur basse et stable ; dès que le doigt touche le fil nu (ou la carte à proximité d'une broche concernée), la valeur grimpe nettement au-delà du seuil. Affinez le seuil à mi-chemin entre vos deux mesures : c'est LA bonne méthode de calibration, identique à celle d'un capteur analogique.
Erreurs fréquentes
- Choisir une broche non compatible toucher :
touchReadrenvoie alors une valeur figée — consultez le schéma officiel avant. - Seuil pris « au pif » à 50 ou 500 : sans mesure préalable, le capteur ne déclenche jamais ou déclenche en permanence (humidité, câble long qui agit comme antenne).
- Câble tactile trop long sans doigt ni isolation : un fil de 30 cm qui capte le 50 Hz fait danser la valeur ; gardez le pad court ou entourez-le d'adhésif.
- Confondre avec une lecture analogique :
touchReadne mesure pas une tension, mais la variation de capacité du doigt ; un diviseur de tension sur la broche est inutile. - Oublier
#include <CapacitiveTouch.h>: la bibliothèque n'est pas incluse par défaut dans tous les squelettes.
Autres tutoriels pour cette carte
- Premier Blink sur la UNO R4 WiFi : la première UNO 32 bits
- Apprivoiser la matrice LED 12x8 intégrée
- Se connecter au WiFi et lire l'heure NTP (WiFiS3)
- Inclinomètre sur la matrice : l'IMU LSM6DSV16X en I²C
- Serveur web embarqué : piloter la matrice depuis le navigateur
- Horloge persistante : RTC à pile + resynchronisation NTP
Exemples de code pour cette carte
clignotante.inoArduinobouton-poussoir.inoArduinodac-analogique.inoArduinoentree-analogique.inoArduinopwm-respiration.inoArduinoservo-balayage.inoArduino