Le mpr121 est capteur tactile capacitif disposant de 12 broche capacitives
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 :
12 broches sur la droite :
Il peut s'utiliser avec plusieurs bibliothèques. A partir du gestionnaire de bibliothèque, ajoutez la bibliothèque Adafruit MPR121
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();
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(); |
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 }
Item-Capteur_Capacitif_MPR121_mpr121.jpg Draft
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #