Bouton piézoélectrique sur Arduino

Matériel

Image

Bouton piézoélectrique avec Arduino Nano

Fonctionnement

Un bouton piézoélectrique n’envoie qu’une brève impulsion lorsqu’on appuie dessus. La durée de cette impulsion est très variable, mais vaut en moyenne 75 ms. Elle peut durer jusqu’à 400 ms voire plus si l’utilisateur appuie longtemps ou quelques millisecondes si l’utilisateur donne une pichenette.

On peut donc détecter les pressions de l’utilisateur, mais pas leur durée.

Cet interrupteur est sensible aux vibrations.

Câblage

Le bouton que j’ai testé n’a que deux fils que l’on câble comme un bouton mécanique standard, c’est-à-dire avec une résistance de tirage vers le haut (pullup). Pour simplifier le câblage, on peut utiliser une pullup interne de l’Arduino.

La polarité est sans importance.

Code

Le code sur GitHub montre trois façons d’utiliser ce bouton avec un Arduino :

  • simple-piezo-switch-001.ino n’est pas utilisable en tant que tel. Il montre juste que le switch envoie une impulsion et qu’il va falloir être un peu plus malin que ça pour l’utiliser.
  • simple-piezo-switch-002.ino montre comment faire du polling pour lire le bouton.
  • simple-piezo-switch-003.ino montre comment utiliser les interruptions.

https://github.com/NicHub/ouilogique-Arduino/tree/master/piezo-switch

Note

Cet interrupteur est étanche IP68 (6 = étanche à la poussière, 8 = résiste à l’immersion prolongée). J’ai fait un bref test dans un verre d’eau et il fonctionnait, même lorsqu’il était immergé.