Parcourir le wiki

Draft  +
1  +
EUR (€)  +
Le mpr121 est capteur tactile capacitif disposant de 12 broche capacitives  +
<nowiki>== Caractéristiques ==<br== 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

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

n class="o">!</span><span class="p">(</span><span class="n">actuelTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="o">&&</span> <span class="p">(</span><span class="n">precedentTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">91 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Broche N° "</span><span class="p">);</span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"relachée"</span><span class="p">);</span><br /><span class="lineno">92 </span> <span class="p">}</span><br /><span class="lineno">93 </span> <span class="p">}</span><br /><span class="lineno">94 </span><br /><span class="lineno">95 </span> <span class="c1">// Mémorisation</span><br /><span class="lineno">96 </span> <span class="n">precedentTouche</span> <span class="o">=</span> <span class="n">actuelTouche</span><span class="p">;</span><br /><span class="lineno">97 </span><br /><span class="lineno">98 </span><span class="p">}</span><br /></pre></div><br/></nowiki>  
Item-Capteur_Capacitif_MPR121_mpr121.jpg  +
Date de modification« Date de modification (Modification date) » est une propriété prédéfinie qui correspond à la date de la dernière modification d’un sujet et est fournie par MédiaWiki Sémantique.
16:48:18, 10 février 2023  +
⧼cs-comments⧽Cette propriété est une propriété spéciale dans ce wiki.
0  +
Créateur de la pageCette propriété est une propriété spéciale dans ce wiki.
I did itCette propriété est une propriété spéciale dans ce wiki.
0  +
FavorisCette propriété est une propriété spéciale dans ce wiki.
0  +
 
Aucune propriété ne pointe vers cette page.