Différences entre les pages « Fichier:Tutoriel de course SuperTuxKart depuis minetest Balises1et2Meshport.png » et « Item:Capteur Capacitif MPR121 »

(Tutoriel_de_course_SuperTuxKart_depuis_minetest_Balises1et2Meshport)
 
(Page créée avec « {{Item |Main_Picture=Item-Capteur_Capacitif_MPR121_mpr121.jpg |Description=Le mpr121 est capteur tactile capacitif disposant de 12 broche capacitives |Categories=Outils |... »)
 
Ligne 1 : Ligne 1 :
Tutoriel_de_course_SuperTuxKart_depuis_minetest_Balises1et2Meshport
+
{{Item
 +
|Main_Picture=Item-Capteur_Capacitif_MPR121_mpr121.jpg
 +
|Description=Le mpr121 est capteur tactile  capacitif disposant de 12 broche capacitives
 +
|Categories=Outils
 +
|Cost=1
 +
|Currency=EUR (€)
 +
|ItemLongDescription=== 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
 +
 
 +
<br />
 +
 
 +
== 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 ==
 +
{{#annotatedImageLight:Fichier:Item-Capteur Capacitif MPR121 CapteurcapacitifMPR121 bb.png|0=729px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Capteur tactile capacitif MPR121|align=center|src=https://www.wikidebrouillard.org/images/5/5c/Item-Capteur_Capacitif_MPR121_CapteurcapacitifMPR121_bb.png|href=./Fichier:Item-Capteur Capacitif MPR121 CapteurcapacitifMPR121 bb.png|resource=./Fichier:Item-Capteur Capacitif MPR121 CapteurcapacitifMPR121 bb.png|caption=Capteur tactile capacitif MPR121|size=729px}}<br />
 +
 
 +
== Code minimal ==
 +
<br />
 +
{| class="wikitable" width="617" cellspacing="0" cellpadding="2"
 +
| width="98" height="17" bgcolor="#999999" |
 +
| width="199" bgcolor="#999999" |
 +
| width="308" bgcolor="#999999" |MPR121
 +
|-
 +
| rowspan="2" width="98" bgcolor="#999999" |Avant le Setup
 +
| width="199" bgcolor="#999999" |Importation de la bibliothèque
 +
| width="308" |#include <Wire.h>
 +
 
 +
<nowiki>#</nowiki>include "Adafruit_MPR121.h"
 +
|-
 +
| width="199" bgcolor="#999999" |Création de l’objet
 +
| width="308" |Adafruit_MPR121 capteur = Adafruit_MPR121();
 +
 
 +
 
 +
// Déclaration de variable
 +
 
 +
uint16_t actuelleTouche = 0;
 +
|-
 +
| width="98" height="17" bgcolor="#999999" |Dans le Setup
 +
| width="199" bgcolor="#999999" |Démarrage de l’objet
 +
| width="308" |if (!capteur.begin(0x5A)) {
 +
 
 +
while (1);
 +
 
 +
}
 +
|-
 +
| width="98" height="17" bgcolor="#999999" |Dans le Loop
 +
| width="199" bgcolor="#999999" |Utilisation
 +
| width="308" |actuelleTouche = capteur.touched();<br />
 +
|}
 +
 
 +
 
 +
== Exemple ==
 +
<br /><syntaxhighlight lang="arduino" line="1">
 +
////////////////////////
 +
// 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;
 +
 
 +
}
 +
 
 +
</syntaxhighlight><br />
 +
}}
 +
{{Tuto Status
 +
|Complete=Draft
 +
}}

Version actuelle datée du 10 février 2023 à 18:48


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

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel10 février 2023 à 18:22Vignette pour la version du 10 février 2023 à 18:221 206 × 736 (510 Kio)PierreJ (discussion | contributions)Tutoriel_de_course_SuperTuxKart_depuis_minetest_Balises1et2Meshport
  • Vous ne pouvez pas remplacer ce fichier.

La page suivante utilise ce fichier :