Lire l'entrée d'un capteur piézo

Bonjour à tous je me suis procuré un capteur piézo , j'aimerais l'utiliser en tant qu'input pour capter les vibrations dessus. Je ne sais pas vraiment si c'est possible de l'utiliser tel que. J'aimerais vos conseils merci beaucoup. Dans le Moniteur je ne vois pas de variation de son état lorsque je l'utilise. Or en tant qu'output il produit un son donc il fonctionne bien!

const int piezo  = 2;  
int etat=0;  

  void setup() {
  Serial.begin(9600);
  pinMode(piezo, INPUT); 

}

void loop() {
  etat = analogRead(piezo);
  Serial.println(etat);

}

Ici, une résistance de 1MOhms est ajoutée, un exemple de code est fourni aussi (la led peut être celle de la carte Arduino, selon le modèle).

const int ledPin = 13;      // LED connected to digital pin 13
const int knockSensor = A0; // the piezo is connected to analog pin 0
const int threshold = 100;  // threshold value to decide when the detected sound is a knock or not

int sensorReading = 0;      // variable to store the value read from the sensor pin
int ledState = LOW;         // variable used to store the last LED status, to toggle the light

void setup() {
  pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT
  Serial.begin(9600);       // use the serial port
}

void loop() {
  // read the sensor and store it in the variable sensorReading:
  sensorReading = analogRead(knockSensor);

  // if the sensor reading is greater than the threshold:
  if (sensorReading >= threshold) {
    // toggle the status of the ledPin:
    ledState = !ledState;
    // update the LED pin itself:
    digitalWrite(ledPin, ledState);
    // send the string "Knock!" back to the computer, followed by newline
    Serial.println("Knock!");
  }
  delay(100);  // delay to avoid overloading the serial port buffer
}

Merci beaucoup

Bonjour après quelques essaie je me suis rendu compte que la valeur lue par l'analogRead du capteur piezo ne fait qu'augmenter avec le temps

22:34:28.128 -> 310
22:34:28.229 -> 310
22:34:28.332 -> 312
22:34:28.434 -> 312
22:34:28.536 -> 313
22:34:28.638 -> 313
22:34:28.740 -> 313
22:34:28.842 -> 313
22:34:28.944 -> 312
22:34:29.046 -> 312
22:34:29.148 -> 312
22:34:29.249 -> 313
22:34:29.350 -> 314
22:34:29.452 -> 315
22:34:29.554 -> 315
22:34:29.656 -> 316
22:34:29.757 -> 316
22:34:29.859 -> 316
22:34:29.961 -> 316
22:34:30.062 -> 317
22:34:30.130 -> 317
22:34:30.231 -> 318
22:34:30.333 -> 318
22:34:30.435 -> 319
22:34:30.537 -> 319
22:34:30.639 -> 319
22:34:30.740 -> 319
22:34:30.841 -> 319
22:34:30.943 -> 320
22:34:31.045 -> 320
22:34:31.145 -> 320
22:34:31.246 -> 320
22:34:31.348 -> 321
22:34:31.450 -> 321
22:34:31.551 -> 321
22:34:31.653 -> 321
22:34:31.754 -> 322
22:34:31.853 -> 322

Ma résistance est de 2,2k omhs du piezo vers le pin A0 est ce que cela joue ?

On choisit une forte valeur de R (1 MegaOhm) car un choc sur le piezzo produit un pic de haute tension, qui peut claquer le micro contrôleur.

Je reviens vers vous après avoir acheté une résistance adéquat 1MOhm , le problème resurgit après quelques minutes d'utilisation du piézo, est ce que le micro contrôleur est claqué donc ?

Bonsoir

Avez vous essayer un autre port analogique ?

Sur la page https://www.arduino.cc/en/tutorial/knock

Il parle de la mettre en parallèle

De plus, connectez une résistance de 1 mégohm en parallèle à l'élément piézo pour limiter la tension et le courant produits par le piézoélectrique et pour protéger l'entrée analogique.

mais le schéma ne correspondent pas, le " Fritzing" si :

avec la résistance en parallèle tout fonctionne mieux , cependant le capteur est devenu pas assez sensible , il faut que je tape assez fort dessus. Comment puis-je faire ?

augmenter progressivement la résistance 2,2MOhm, 4,7MOhm...sans se faire d'illusion , ces capteurs ne sont pas forcément adaptés au but recherché .... qui reste encore peu défini :

j'aimerais l'utiliser en tant qu'input pour capter les vibrations

Quel types de vibrations ?

Par exemple poser le capteur sur une surface tel qu'une planche de bois et capter quand on tape sur la planche.
Si c'est pas adapté avez vous une idée de quelque chose d eplus adapté ?
Merci

pour ce type de vibration (liée à une percussion) ce capteur est sans doute exploitable

Nestati:
Par exemple poser le capteur sur une surface

Alors déjà poser c'est pas la solution.
Pour capter les vibrations alors que le capteur est modérément adapté à la fonction il faut que la liaison entre le capteur et la surface soit un peut plus rigide. De plus il faut que la surface du capteur puisse se déformer puisque c'est sa déformation qui créé la tension.
Intuitivement je dirais que pour optimiser il faudrait que le capteur soit monté sur un anneau collé sur la surface avec éventuellement une petite masse collé en son centre sur l'extérieur pour amplifier la vibration. J'ai pas essayé donc je peux me tromper.