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


 1 ////////////////////////
 2 // Capteur Capacitif  //
 3 //     MPR121         //
 4 ////////////////////////
 5 
 6 /*
 7 
 8 LOLIN (wemos)D1 mini                                                                           
 9                                _______________________________  Capteur capacitif MPR121
10                              /   _________________             \      _________________
11                             /  /     D1 mini     \              \    |         L  11[ ]|
12                            /  |[ ]RST        TX[ ]|              \   |         E  10[ ]|
13                            |  |[ ]A0  -GPIO  RX[ ]|               \  |         D   9[ ]|
14                            |  |[ ]D0-16    5-D1[X]| SCL----------. \-|[X]3,3V  /   8[ ]|
15                            |  |[ ]D5-14    4-D2[X]| SDA---------. \  |[ ]IRQ   e   7[ ]|
16                            |  |[ ]D6-12    0-D3[ ]|              \ \-|[X]SCL   l   6[ ]|
17                            |  |[ ]D7-13    2-D4[ ]| LED_BUILTIN   \--|[X]SDA   e   5[ ]|
18                            |  |[ ]D8-15     GND[X]|--------------.   |[ ]ADD   c   4[ ]|
19                            \--|[X]3V3        5V[ ]|               \--|[X]GND   t   3[ ]|
20                               |       +---+       |                  |         r   2[ ]|
21                               |_______|USB|_______|                  |         o   1[ ]|
22                                                                      | MPR121  d   0[ ]|
23                                                                      |_________e_______|  
24 
25 Matériel :
26   - Des fils dupont
27   - Un LOLIN (ou Wemos) D1 mini
28   - Capteur capacitif MPR121
29 
30   
31   Schéma de l'Arduino en ASCII-ART CC-By http://busyducks.com/ascii-art-arduinos
32   Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)
33    ___
34   / ___ \
35   |_|   | 
36      /_/
37      _   ___   _
38     |_| |___|_| |_
39          ___|_   _|
40         |___| |_|
41   Les petits Débrouillards - février 2023 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
42 
43   Inspiré de :  https://electropeak.com/learn/interfacing-mpr121-capacitive-touch-sensor-module-with-arduino/
44   Modified by MehranMaleki from Arduino Examples - janvier 2021
45 */
46 
47 #include <Wire.h>
48 #include "Adafruit_MPR121.h"
49 
50 #ifndef _BV
51 #define _BV(bit) (1 << (bit))
52 #endif
53 
54 // Vous pouvez en avoir jusqu'à 4 MPR121 sur un bus i2c mais un seul suffit pour les tests !
55 Adafruit_MPR121 cap = Adafruit_MPR121();
56 
57 // Garde la trace des dernières broches touchés.
58 // Ainsi, nous savons quand les boutons sont 'relâchés'.
59 uint16_t precedentTouche = 0;
60 uint16_t actuelTouche = 0;
61 
62 void setup () {
63   Serial.begin(9600);
64 
65   while (!Serial) { // indispensable pour empêcher un Arduino leonardo/micro de démarrer trop vite !
66     delay(10);
67   }
68 
69   Serial.println("Programme de test du capteur capacitif MPR121 avec la bibliothèque Adafruit MPR121");
70 
71   // L'adresse par défaut est 0x5A, si elle est liée à 3.3V, elle est 0x5B.
72   // Si elle est liée à SDA, c'est 0x5C et si elle est liée à SCL, c'est 0x5D.
73   if (!cap.begin(0x5A)) {
74     Serial.println("Le MPR121 n'a pas été trouvé, vérifiez le cablage ?");
75     while (1);
76   }
77   Serial.println("MPR121 trouvé !");
78 }
79 
80 void loop() {
81   // récupère les broches actuellement touchés
82   actuelTouche = cap.touched();
83 
84   for (uint8_t i = 0; i < 12; i++) {
85     // si *est* touché et *n'était pas* touché avant, alerte !
86     if ((actuelTouche & _BV(i)) && !(precedentTouche & _BV(i)) ) {
87       Serial.print("Broche N° ");Serial.print(i); Serial.print("  touché");
88     }
89     // si elle *était* touchée et qu'elle ne l'est plus, alerte !
90     if (!(actuelTouche & _BV(i)) && (precedentTouche & _BV(i)) ) {
91       Serial.print("Broche N° ");Serial.print(i); Serial.println("relachée");
92     }
93   }
94 
95   // Mémorisation
96   precedentTouche = actuelTouche;
97 
98 }

Pages liées

Commentaires

Draft