MPR121 | ||
Avant le Setup | Importation de la bibliothèque | #include #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(); |
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
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 }
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #