Item:Capteur Capacitif MPR121


Item-Capteur Capacitif MPR121 mpr121.jpg

Capteur Capacitif MPR121

Le mpr121 est capteur tactile capacitif disposant de 12 broche capacitives

1EUR (€)


Description longue

Caractéristiques

Ce module de haute précision possède 12 boutons tactiles et supporte la communication I2C.

Il peut être facilement interfacé avec n'importe quel microcontrôleur.


Il n'y a pas de régulateur sur la carte, donc la tension d'alimentation doit être comprise entre 1.7 et 3.6VDC.


Il comporte 18 broches :


6 broches à gauche :

  •    VCC : Alimentation du module - 3.3V
  •    IRQ : Sortie d'interruption
  •    SCL : Entrée horloge série pour le protocole I2C
  •    SDA : Entrée/sortie de données série pour le protocole I2C
  •    ADD : Adresse d'ajustement pour le protocole I2C
  •    GND : Masse

12 broches sur la droite :

  •    0-11 : Boutons tactiles


Bibliothèque

Il peut s'utiliser avec plusieurs bibliothèques. A partir du gestionnaire de bibliothèque, ajoutez la bibliothèque Adafruit MPR121

Câblage

Capteur tactile capacitif MPR121

Code minimal


MPR121
Avant le Setup Importation de la bibliothèque #include <Wire.h>

#include "Adafruit_MPR121.h"

Création de l’objet Adafruit_MPR121 capteur = Adafruit_MPR121();


// Déclaration de variable

uint16_t actuelleTouche = 0;

Dans le Setup Démarrage de l’objet if (!capteur.begin(0x5A)) {

while (1);

}

Dans le Loop Utilisation actuelleTouche = capteur.touched();


Exemple


////////////////////////
// Capteur Capacitif  //
//     MPR121         //
////////////////////////

/*

LOLIN (wemos)D1 mini                                                                           
                               _______________________________  Capteur capacitif MPR121
                             /   _________________             \      _________________
                            /  /     D1 mini     \              \    |         L  11[ ]|
                           /  |[ ]RST        TX[ ]|              \   |         E  10[ ]|
                           |  |[ ]A0  -GPIO  RX[ ]|               \  |         D   9[ ]|
                           |  |[ ]D0-16    5-D1[X]| SCL----------. \-|[X]3,3V  /   8[ ]|
                           |  |[ ]D5-14    4-D2[X]| SDA---------. \  |[ ]IRQ   e   7[ ]|
                           |  |[ ]D6-12    0-D3[ ]|              \ \-|[X]SCL   l   6[ ]|
                           |  |[ ]D7-13    2-D4[ ]| LED_BUILTIN   \--|[X]SDA   e   5[ ]|
                           |  |[ ]D8-15     GND[X]|--------------.   |[ ]ADD   c   4[ ]|
                           \--|[X]3V3        5V[ ]|               \--|[X]GND   t   3[ ]|
                              |       +---+       |                  |         r   2[ ]|
                              |_______|USB|_______|                  |         o   1[ ]|
                                                                     | MPR121  d   0[ ]|
                                                                     |_________e_______|  

Matériel :
  - Des fils dupont
  - Un LOLIN (ou Wemos) D1 mini
  - Capteur capacitif MPR121

  
  Schéma de l'Arduino en ASCII-ART CC-By http://busyducks.com/ascii-art-arduinos
  Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)
   ___
  / ___ \
  |_|   | 
     /_/
     _   ___   _
    |_| |___|_| |_
         ___|_   _|
        |___| |_|
  Les petits Débrouillards - février 2023 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/

  Inspiré de :  https://electropeak.com/learn/interfacing-mpr121-capacitive-touch-sensor-module-with-arduino/
  Modified by MehranMaleki from Arduino Examples - janvier 2021
*/

#include <Wire.h>
#include "Adafruit_MPR121.h"

#ifndef _BV
#define _BV(bit) (1 << (bit))
#endif

// Vous pouvez en avoir jusqu'à 4 MPR121 sur un bus i2c mais un seul suffit pour les tests !
Adafruit_MPR121 cap = Adafruit_MPR121();

// Garde la trace des dernières broches touchés.
// Ainsi, nous savons quand les boutons sont 'relâchés'.
uint16_t precedentTouche = 0;
uint16_t actuelTouche = 0;

void setup () {
  Serial.begin(9600);

  while (!Serial) { // indispensable pour empêcher un Arduino leonardo/micro de démarrer trop vite !
    delay(10);
  }

  Serial.println("Programme de test du capteur capacitif MPR121 avec la bibliothèque Adafruit MPR121");

  // L'adresse par défaut est 0x5A, si elle est liée à 3.3V, elle est 0x5B.
  // Si elle est liée à SDA, c'est 0x5C et si elle est liée à SCL, c'est 0x5D.
  if (!cap.begin(0x5A)) {
    Serial.println("Le MPR121 n'a pas été trouvé, vérifiez le cablage ?");
    while (1);
  }
  Serial.println("MPR121 trouvé !");
}

void loop() {
  // récupère les broches actuellement touchés
  actuelTouche = cap.touched();

  for (uint8_t i = 0; i < 12; i++) {
    // si *est* touché et *n'était pas* touché avant, alerte !
    if ((actuelTouche & _BV(i)) && !(precedentTouche & _BV(i)) ) {
      Serial.print("Broche N° ");Serial.print(i); Serial.print("  touché");
    }
    // si elle *était* touchée et qu'elle ne l'est plus, alerte !
    if (!(actuelTouche & _BV(i)) && (precedentTouche & _BV(i)) ) {
      Serial.print("Broche N° ");Serial.print(i); Serial.println("relachée");
    }
  }

  // Mémorisation
  precedentTouche = actuelTouche;

}

Pages liées

Commentaires

Draft