Arduino Bouton sans bouton ( capteur capacitif )

8859

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.

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. Mon code capacitive sensor.

On se base sur la librairie capacitive sensor disponible ici ou sur le github

Sources : http://www.arduino.org/learning/reference/capacitive

Niveau câblage : – pin 2 et pin 4 ou on connecte une résistance ( 100kΩ ) – pin 8 led de test

 

#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 
}

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.

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