Touche tactile capacitif sans hardware

Salut à tous,

Après quelques essais, je n'en suis pas beaucoup plus loin!

J'ai utilisé ton code Skywodd. Mais je n'arrive pas à le faire fonctionne sans résistance externe.
Le programme semble bloquer et n'envoi presque rien sur le moniteur série. Il envoi de temps en temps une valeur qui ne correspond à rien.

J'ai fait un essai en ne lisant que l'entrée 9 et avec une résistance:

const uint16_t THRESHOLD = 50; /* Seuil de détection */
void setup() {
  Serial.begin(115200);   /* Initialise le port série à 115200 bauds */
  /* Aucune initialisation requise des broches "tactiles",
   * la fonction touch_measure() se charge de tout ;)*/
}
void loop() {
  /* Pour la broche  D9 (1 touche) */
  for (uint8_t i = 9; i < 10; ++i){
    if(touch_measure(i) > THRESHOLD){ /* Test si la "touche" a été appuyé ou non */
      Serial.print(touch_measure(i));
      Serial.println();
    }
  }
  delay(100);  /* Délai no-flood */
}

Voici le résultat que j'obtiens quand je touche l'entrée:

212
47
55
7
54
109
194
47

Ça fonctionne mais ce que je ne comprends pas pourquoi j'ai un 7? Le minimum devrait être 50 non?

Lorsque je fais le test sans résistance, j'obtiens un peu n'importe quoi! La carte envoi beaucoup de valeurs mais il n'y a aucune différence si je touche l'entrée ou pas.

Bête question de débutant: ne manque-t-il pas les accolades dans le code après le if ?

for (uint8_t i = 2; i < 12; ++i){
 
    /* Test si la "touche" a été appuyé ou non */
    if(touch_measure(i) > THRESHOLD)
      Serial.print('1');
    else
      Serial.print('0');
 
    //Serial.println(touch_measure(i), DEC);
 
    /* Sépare chaque bits */
    Serial.print(' ');
  }

Mes excuses pour le retard de ma réponse!

Merci d'avance pour votre aide.