Aujourd’hui on fabrique un bouton sans bouton ! On va créer un capteur capacitif avec presque rien et tout cela pour notre feu tricolore en projet final.
Matériel
Il nous faut 1 led avec sa résistance pour montrer visuellement que notre capteur fonctionne et surtout pour faire notre “bouton” il nous faut un fil et une résistance ( 100kΩ , 10MΩ recommandé) .
J’ai juste modifié le code de base et ajouté la led pour visualiser l’appui sur le “bouton” hors console du moniteur série.
On se base sur la librairie capacitive sensor disponible ici ou sur le github
Code
#include <CapacitiveSensor.h >
/*
* CapitiveSense Library Demo Sketch
* Paul Badger 2008
* Uses a high value resistor e.g. 10 megohm between send pin and receive pin
* Resistor effects sensitivity, experiment with values, 50 kilohm - 50 megohm. Larger resistor values yield larger sensor values.
* Receive pin is the sensor pin - try different amounts of foil/metal on this pin
* Best results are obtained if sensor foil and wire is covered with an insulator such as paper or plastic sheet
*/
CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);
// 10 megohm resistor between pins 4 & 2, pin 2 is sensor pin, add wire, foil
void setup()
{
//retroetgeek ajout pin led
pinMode(8,OUTPUT);
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
// turn off autocalibrate on channel 1 - just as an example
Serial.begin(9600);
}
void loop()
{
long start = millis();
long total1 = cs_4_2.capacitiveSensor(30);
Serial.print(millis() - start); // check on performance in milliseconds
Serial.print("\t"); // tab character for debug window spacing
Serial.print(total1); // print sensor output 1
Serial.print("\r\n");
// retroetgeek Ajout controle bouton appui
if(total1 >50 ){
digitalWrite(8,HIGH);
}
else{
digitalWrite(8,LOW);
}
delay(10); // arbitrary delay to limit data to serial port
}Explication du code
Comment fonctionne le programme, on défini les pin entre lesquels on récupère l’information avec “CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);”.
On initialise dans la partie setup le pin 8 de notre led comme output, le serial et notre capteur capacitif est mis à off au niveau de l’autocalibration
Dans la boucle loop du programme d’exemple il y a une affectation des variable start avec le temps ( millis ) et une affectation de total1 avec la valeur qui passe dans notre fil capteur capacitif ( cs_4_2.capacitiveSensor(30); )
A la suite plusieurs print au niveau du port série nous fait remonter le temps entre chaque mesure et la valeur obtenue sur notre fil capteur.
J’ai rajouté un contrôle pour allumer ma led si la valeur obtenue dans le fil est supérieur a 50, sinon on éteint la led
Poussez le programme dans votre arduino et ouvrez la console moniteur série pour voir ce qu’il se passe quand vous touchez le fil qu’il soit dénudé ou non et vous verrez une fluctuation de la valeur obtenue.
Voila vous avez crée votre “bouton” sans bouton !
Mais vous pouvez expérimenter au niveau de la sensibilité du capteur, vous pouvez modifier la valeur de la résistance, rajouter un condensateur.
Je vous invite à aller consulter la référence de la librairie http://www.arduino.org/learning/reference/capacitive
Nous avons notre bouton que je vais utiliser pour le feu tricolore, il est facilement réalisable avec un bouchon et de l’aluminium.
Télécharger le code capacitive sensor.
📌 FAQ – Utiliser un capteur capacitif avec Arduino
Q : Qu’est-ce qu’un capteur capacitif ?
R : Un capteur capacitif détecte la présence ou la proximité d’un objet conducteur (comme un doigt humain) sans contact physique. Il fonctionne en mesurant les variations de capacité électrique causées par la présence de l’objet.
Q : Quel est l’intérêt d’un “bouton sans bouton” ?
R : Il permet de créer une interface tactile invisible ou étanche, parfaite pour des environnements humides, des objets design, ou des projets où l’esthétique est importante. Aucun bouton physique à presser, juste un contact léger avec la surface.
Q : Quel matériel faut-il pour ce projet ?
R :
Une carte Arduino (Uno, Nano, etc.)
Une résistance (entre 1 MΩ et 50 MΩ, typiquement 10 MΩ)
Un fil conducteur ou surface métallique (ex : pièce, vis, feuille d’alu)
La bibliothèque CapacitiveSensor.h
Q : Comment fonctionne la bibliothèque CapacitiveSensor ?
R : Elle permet de mesurer le temps que met une broche à se charger via une résistance. Plus le temps est long, plus la capacité détectée est élevée, signalant un “toucher”.
Q : Peut-on ajuster la sensibilité ?
R : Oui, en modifiant la valeur de la résistance, la longueur du fil ou les paramètres du code. Une résistance plus élevée ou un fil plus long augmente la sensibilité.
Q : Peut-on intégrer ce système dans des meubles ou objets imprimés en 3D ?
R : Tout à fait. Le capteur capacitif peut être caché sous du bois, du plastique ou même du verre, tant que le matériau n’est pas conducteur.
🔗 À découvrir aussi sur Retro&Geek
👉 Utiliser un écran LCD 16×2 avec Arduino
Affichez les états du capteur tactile en temps réel pour enrichir l’interaction.
👉 Arduino – Créer une télécommande infrarouge
Explorez d’autres modes d’interaction sans contact.
👉 Arduino – Capteur infrarouge VS1838B
Un autre moyen de détourner les boutons traditionnels avec une télécommande classique.
👉 Arduino – Contrôler un servomoteur
Ajoutez du mouvement à votre projet tactile.
N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne twitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel, me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel ,à partager les projets que vous aimeriez créer etc…
Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.
Merci les RetroGeeker et RetroGeekeuse



