Code minimal des capteurs pour Arduino : Différence entre versions

 
(6 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 2 : Ligne 2 :
 
|Main_Picture=Group-Initiation_à_Arduino_arduino.jpg
 
|Main_Picture=Group-Initiation_à_Arduino_arduino.jpg
 
|Licences=Attribution (CC-BY)
 
|Licences=Attribution (CC-BY)
|Description=Ici nous faisons la liste de tous les capteurs pour Arduino décrit dans wikidebrouillard
+
|Description=Ici nous faisons la liste de tous les capteurs pour Arduino décrit dans wikidebrouillard.
 +
Voir aussi ici : https://blog.f8asb.com/2015/11/01/capteurs-et-actionneurs-arduino-les-codes-sources/
 
|Disciplines scientifiques=Arduino, Computing
 
|Disciplines scientifiques=Arduino, Computing
 
|Difficulty=Technical
 
|Difficulty=Technical
Ligne 9 : Ligne 10 :
 
}}
 
}}
 
{{Introduction
 
{{Introduction
|Introduction=Utiliser un capteur c'est parfois un peu technique, alors on a créé "Le code minimal".  
+
|Introduction=Utiliser un capteur c'est parfois un peu technique, alors, comme pour [[Code minimal des actionneurs pour Arduino|les actionneurs]], on a créé "Le code minimal".  
  
 
C'est le code minimal pour utiliser un capteur avec le logiciel Arduino et une carte compatible (Arduino UNO, Wemos D1 mini, etc.).
 
C'est le code minimal pour utiliser un capteur avec le logiciel Arduino et une carte compatible (Arduino UNO, Wemos D1 mini, etc.).
Ligne 46 : Ligne 47 :
 
}}{{ItemList
 
}}{{ItemList
 
|Item=Capteur Mi Flora
 
|Item=Capteur Mi Flora
 +
}}{{ItemList
 +
|Item=Microphone MAX9814
 
}}
 
}}
 
}}
 
}}
Ligne 68 : Ligne 71 :
 
<br />
 
<br />
 
}}
 
}}
{{Tuto Step}}
+
{{Tuto Step
 +
|Step_Title=Comment utiliser un bouton poussoir ?
 +
|Step_Content=Un bouton poussoir est un composant qui ouvre (le courant ne passe plus) ou ferme (le courant passe) un circuit électrique.
 +
 
 +
 
 +
{| class="wikitable" cellspacing="0" border="0"
 +
| height="17" bgcolor="#999999" align="left" |
 +
| valign="middle" bgcolor="#999999" align="center" |
 +
| bgcolor="#999999" align="center" |Bouton poussoir
 +
|-
 +
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
 +
| valign="middle" align="left" |
 +
|-
 +
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet
 +
| valign="middle" align="left" |
 +
|-
 +
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
 +
| valign="middle" align="left" |pinMode(num_broche,INPUT_PULLUP) ;
 +
|-
 +
| valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
 +
| valign="middle" bgcolor="#999999" align="center" |Utilisation
 +
| valign="middle" align="left" |int val_bouton = digitalRead(num_broche);<br />
 +
|}<br /><syntaxhighlight lang="arduino" line="1">
 +
////////////////////////
 +
//  *Code Minimal*  //
 +
//    -Le Bouton-    //
 +
////////////////////////
 +
/*Les programmes "Code Minimal" des petits débrouillards sont conçu pour
 +
permettre la prise en main rapide d'un composant électronique.
 +
A retrouver sur https://www.wikidebrouillard.org
 +
 
 +
-Le Bouton-
 +
 
 +
Matériel :
 +
- un D1 mini
 +
- un bouton
 +
 
 +
le bouton branché à la broche D3 du D1 mini
 +
car la broche D3 possède une résistance de pullup interne
 +
Une résistance de pullup c'est lorsque la broche est branchée a une résistance reliée au niveau haut de la carte(HIGH)
 +
dans le D1 mini il y a donc une résistance de 10Kohm qui relie la broche D3 au +3,3V
 +
D3---^/\/v---+3V3
 +
 +
  ___
 +
/ ___ \
 +
|_|  | |
 +
    /_/
 +
    _  ___  _
 +
    |_| |___|_| |_
 +
        ___|_  _|
 +
        |___| |_|
 +
Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 +
*/
 +
 
 +
// Déclaration des variables constantes
 +
const int brocheBouton = D3; // Broche où est connectée le bouton
 +
const int brocheLed =  D4;  // Broche D4, où la led interne au wemos est connectée
 +
 
 +
// Boucle d'initialisation
 +
void setup() {
 +
  pinMode(brocheLed, OUTPUT);  // Initialisation de la broche de la led en sortie
 +
 
 +
  pinMode(brocheBouton, INPUT_PULLUP); // Initialisation de la broche du bouton en entrée et activation du pull-up interne
 +
}
 +
 
 +
//Boucle principale
 +
void loop() {
 +
// Lecture de l'état du bouton et stockage dans la variable etatBouton
 +
// Déclaration de variable d'état locale (dite locale car déclarée dans la boucle "loop").
 +
  bool etatBouton = digitalRead(brocheBouton); //// Variable permettant de récupérer l'état du bouton
 +
 
 +
  // Si le bouton est appuyé, on éteins la led
 +
  if (etatBouton == HIGH) {
 +
    // extinction de la led
 +
    digitalWrite(brocheLed, HIGH);
 +
  } else {
 +
    // sinon allumage de la led
 +
    digitalWrite(brocheLed, LOW);
 +
  }
 +
}
 +
</syntaxhighlight><br />
 +
|Step_Picture_00=Item-Bouton_poussoir_Boutonpoussoir2_bb.jpg
 +
|Step_Picture_01=Item-Bouton_poussoir_boutonpoussoir.jpg
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Utiliser le capteur BME 280 (pression, humidité et température)
 +
|Step_Content===Bibliothèque : ==
 +
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque Grove BME280 (présente dans le gestionnaire de bibliothèques arduino)
 +
 
 +
plus d'infos pour [https://www.wikidebrouillard.org/wiki/Importer_des_biblioth%C3%A8ques_dans_l%27interface_Arduino Importer des bibliothèques dans l'interface Arduino]{{#annotatedImageLight:Fichier:Item-BME280 Capture decran du 2020-12-11 14-37-37.png|0=828px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/9/94/Item-BME280_Capture_decran_du_2020-12-11_14-37-37.png|href=./Fichier:Item-BME280 Capture decran du 2020-12-11 14-37-37.png|resource=./Fichier:Item-BME280 Capture decran du 2020-12-11 14-37-37.png|caption=|size=828px}}La bibliothèque est disponible ici : https://github.com/Seeed-Studio/Grove_BME280
 +
==Câblage : ==
 +
{{#annotatedImageLight:Fichier:Item-BME280 Capture decran du 2020-12-11 14-42-46.png|0=400px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-BME280 Capture decran du 2020-12-11 14-42-46.png|align=center|src=https://www.wikidebrouillard.org/images/3/33/Item-BME280_Capture_decran_du_2020-12-11_14-42-46.png|href=./Fichier:Item-BME280 Capture decran du 2020-12-11 14-42-46.png|resource=./Fichier:Item-BME280 Capture decran du 2020-12-11 14-42-46.png|caption=|size=400px}}
 +
 
 +
 
 +
==Le code minimal : ==
 +
{| class="wikitable" cellspacing="0" border="0"
 +
| height="17" bgcolor="#999999" align="left" |
 +
| valign="middle" bgcolor="#999999" align="center" |
 +
| bgcolor="#999999" align="center" |BME280
 +
|-
 +
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
 +
| valign="middle" align="left" |#include "Seeed_BME280.h"
 +
<nowiki>#</nowiki>include <Wire.h>
 +
|-
 +
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet
 +
| valign="middle" align="left" |BME280 bme280; // je crée l'objet "bme280" (qui est un BME280)
 +
|-
 +
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
 +
| valign="middle" align="left" |bme280.init(); // ou bme280.init(0x76); ou bme280.init(0x77);
 +
|-
 +
| valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
 +
| valign="middle" bgcolor="#999999" align="center" |Utilisation
 +
| valign="middle" align="left" |bme280.getTemperature()
 +
|}
 +
==Autres fonctionnalités==
 +
{| class="wikitable"
 +
|+
 +
! colspan="2" |Fonction
 +
|-
 +
|bme280.getPressure()
 +
|Récupère la pression en pascal
 +
|-
 +
|bme280.getHumidity()
 +
|Récupère l'humidité en %
 +
|}<br />
 +
==Exemple : ==
 +
<syntaxhighlight lang="arduino" line="1" start="1">
 +
#include "Seeed_BMP280.h" // import de la bibliothèque BMP280
 +
#include <Wire.h> // Import de la bibliothèque I2C
 +
BMP280 bmp280; // création de l'objet
 +
void setup()
 +
{
 +
Serial.begin(9600); //initialisation de la liaison série
 +
bmp280.init(); //initialisation du capteur
 +
}
 +
void loop()
 +
 +
float temp = bmp280.getTemperature(); //récupération de la température
 +
Serial.print("Température : "); // affichage de la température dans le terminal série
 +
Serial.println(temp);
 +
}
 +
</syntaxhighlight><br />
 +
|Step_Picture_00=Item-BME280_Bmp280.jpg
 +
|Step_Picture_01=Item-BME280_Capture_decran_du_2020-12-11_14-42-46.png
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Utiliser le microphone MAX9814
 +
|Step_Content===Câblage : ==
 +
Notez que la broche gain est connectée à la broche tension (Vdd) (câble jaune sur le schéma).{{#annotatedImageLight:Fichier:Item-microphone MAX9814.png|0=1094px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=câblage Microphone MAX9814|align=center|src=https://www.wikidebrouillard.org/images/9/9d/Item-microphone_MAX9814.png|href=./Fichier:Item-microphone MAX9814.png|resource=./Fichier:Item-microphone MAX9814.png|caption=câblage Microphone MAX9814|size=1094px}}
 +
 
 +
 
 +
==Le code minimal : ==
 +
{| class="wikitable" cellspacing="0" border="0"
 +
| height="17" bgcolor="#999999" align="left" |
 +
| valign="middle" bgcolor="#999999" align="center" |
 +
| bgcolor="#999999" align="center" |MAX9814
 +
|-
 +
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |pas de bibliothèque
 +
| valign="middle" align="left" |
 +
|-
 +
| valign="middle" bgcolor="#999999" align="center" |Création d'une variable
 +
| valign="middle" align="left" |int valeurCapteur; // On prépare une variable pour stocker les valeurs du capteur
 +
|-
 +
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
 +
| valign="middle" align="left" |Serial.begin(9600); // on démarre la communication série
 +
|-
 +
| valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
 +
| valign="middle" bgcolor="#999999" align="center" |Utilisation
 +
| valign="middle" align="left" |valeurCapteur = analogRead(A0); // On lit la valuer mesurée par le capteur sur la broche A0
 +
Serial.println(valeurCapteur);  // On publie sur le moniteur série la valeur récupérée
 +
|}<br />
 +
==Exemple : ==
 +
<syntaxhighlight lang="arduino" line="1">
 +
/////////////////
 +
// Microphone  //
 +
//  MAX9814    //
 +
/////////////////
 +
 
 +
/*
 +
* Un programme pour tester le fonctionnement du microphone MAX9814
 +
* Il utilise le traceur série pour visualiser les signaux récupérés
 +
* pour utiliser le traceur série : cliquez sur Outils/Traceur série
 +
  ___
 +
/ ___ \
 +
|_|  | |
 +
    /_/
 +
    _  ___  _
 +
    |_| |___|_| |_
 +
        ___|_  _|
 +
        |___| |_|
 +
Les petits Débrouillards - Novembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 +
*/
 +
 
 +
int valeurCapteur; // On prépare une variable pour stocker les valeurs du capteur
 +
 
 +
void setup() {
 +
  // on démarre la communication série
 +
  Serial.begin(9600);
 +
}
 +
 
 +
void loop() {
 +
  // On lit la valeur mesurée par le capteur sur la broche A0
 +
  valeurCapteur = analogRead(A0);
 +
  // On publie sur le traceur série la valeur récupérée
 +
  Serial.println(valeurCapteur);
 +
  }
 +
</syntaxhighlight>
 +
|Step_Picture_00=Item-microphone_MAX9814_max9814.jpg
 +
|Step_Picture_01=Item-microphone_MAX9814.png
 +
}}
 
{{Notes}}
 
{{Notes}}
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Published
 
|Complete=Published
 
}}
 
}}

Version actuelle datée du 17 octobre 2024 à 18:36

Auteur avatarAntony Le Goïc-Auffret | Dernière modification 17/10/2024 par Antonydbzh

Group-Initiation à Arduino arduino.jpg

Introduction

Utiliser un capteur c'est parfois un peu technique, alors, comme pour les actionneurs, on a créé "Le code minimal".

C'est le code minimal pour utiliser un capteur avec le logiciel Arduino et une carte compatible (Arduino UNO, Wemos D1 mini, etc.).

Étape 1 - Mais au fait, c'est quoi un capteur ?

Il existe deux catégories de capteurs :

  • Les capteurs Analogiques
  • Les capteurs Numériques

Les capteurs Analogiques :

Ils renvoient du courant à l'Arduino.

Ils sont reliés aux broches Analogiques de la carte qui sont capables de transformer le courant en information (un signal numérique).


Les capteurs Numériques :

Il renvoient un 1 ou un 0 à l'Arduino


Étape 2 - Comment utiliser un bouton poussoir ?

Un bouton poussoir est un composant qui ouvre (le courant ne passe plus) ou ferme (le courant passe) un circuit électrique.


Bouton poussoir
Avant le Setup Importation de la bibliothèque
Création de l’objet
Dans le Setup Démarrage de l’objet pinMode(num_broche,INPUT_PULLUP) ;
Dans le Loop Utilisation int val_bouton = digitalRead(num_broche);

 1 ////////////////////////
 2 //   *Code Minimal*   //
 3 //     -Le Bouton-    //
 4 ////////////////////////
 5 /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour 
 6 permettre la prise en main rapide d'un composant électronique.
 7 A retrouver sur https://www.wikidebrouillard.org
 8 
 9 -Le Bouton-
10 
11 Matériel :
12 - un D1 mini
13 - un bouton
14 
15 le bouton branché à la broche D3 du D1 mini 
16 car la broche D3 possède une résistance de pullup interne
17 Une résistance de pullup c'est lorsque la broche est branchée a une résistance reliée au niveau haut de la carte(HIGH)
18 dans le D1 mini il y a donc une résistance de 10Kohm qui relie la broche D3 au +3,3V
19  D3---^/\/v---+3V3
20  
21    ___
22  / ___ \
23 |_|   | |
24      /_/ 
25      _   ___   _ 
26     |_| |___|_| |_
27          ___|_   _|
28         |___| |_|
29 Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
30 */
31 
32 // Déclaration des variables constantes
33 const int brocheBouton = D3; // Broche où est connectée le bouton 
34 const int brocheLed =  D4;   // Broche D4, où la led interne au wemos est connectée
35 
36 // Boucle d'initialisation
37 void setup() {
38   pinMode(brocheLed, OUTPUT);  // Initialisation de la broche de la led en sortie
39 
40   pinMode(brocheBouton, INPUT_PULLUP); // Initialisation de la broche du bouton en entrée et activation du pull-up interne
41 }
42 
43 //Boucle principale
44 void loop() {
45 // Lecture de l'état du bouton et stockage dans la variable etatBouton
46 // Déclaration de variable d'état locale (dite locale car déclarée dans la boucle "loop").
47    bool etatBouton = digitalRead(brocheBouton); //// Variable permettant de récupérer l'état du bouton
48 
49   // Si le bouton est appuyé, on éteins la led
50   if (etatBouton == HIGH) {
51     // extinction de la led
52     digitalWrite(brocheLed, HIGH);
53   } else {
54     // sinon allumage de la led
55     digitalWrite(brocheLed, LOW);
56   }
57 }



Étape 3 - Utiliser le capteur BME 280 (pression, humidité et température)

Bibliothèque :

Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque Grove BME280 (présente dans le gestionnaire de bibliothèques arduino)

plus d'infos pour Importer des bibliothèques dans l'interface Arduino
Item-BME280 Capture decran du 2020-12-11 14-37-37.png
La bibliothèque est disponible ici : https://github.com/Seeed-Studio/Grove_BME280

Câblage :

Item-BME280 Capture decran du 2020-12-11 14-42-46.png


Le code minimal :

BME280
Avant le Setup Importation de la bibliothèque #include "Seeed_BME280.h"

#include <Wire.h>

Création de l’objet BME280 bme280; // je crée l'objet "bme280" (qui est un BME280)
Dans le Setup Démarrage de l’objet bme280.init(); // ou bme280.init(0x76); ou bme280.init(0x77);
Dans le Loop Utilisation bme280.getTemperature()

Autres fonctionnalités

Fonction
bme280.getPressure() Récupère la pression en pascal
bme280.getHumidity() Récupère l'humidité en %

Exemple :

 1 #include "Seeed_BMP280.h" // import de la bibliothèque BMP280
 2 #include <Wire.h> // Import de la bibliothèque I2C 
 3 BMP280 bmp280; // création de l'objet
 4 void setup()
 5 {
 6  Serial.begin(9600); //initialisation de la liaison série
 7  bmp280.init(); //initialisation du capteur
 8 }
 9 void loop()
10 {  
11  float temp = bmp280.getTemperature(); //récupération de la température
12  Serial.print("Température : "); // affichage de la température dans le terminal série
13  Serial.println(temp);
14 }



Étape 4 - Utiliser le microphone MAX9814

Câblage :

Notez que la broche gain est connectée à la broche tension (Vdd) (câble jaune sur le schéma).
câblage Microphone MAX9814


Le code minimal :

MAX9814
Avant le Setup pas de bibliothèque
Création d'une variable int valeurCapteur; // On prépare une variable pour stocker les valeurs du capteur
Dans le Setup Démarrage de l’objet Serial.begin(9600); // on démarre la communication série
Dans le Loop Utilisation valeurCapteur = analogRead(A0); // On lit la valuer mesurée par le capteur sur la broche A0

Serial.println(valeurCapteur); // On publie sur le moniteur série la valeur récupérée


Exemple :

 1 /////////////////
 2 // Microphone  //
 3 //  MAX9814    //
 4 /////////////////
 5 
 6 /*
 7  * Un programme pour tester le fonctionnement du microphone MAX9814
 8  * Il utilise le traceur série pour visualiser les signaux récupérés
 9  * pour utiliser le traceur série : cliquez sur Outils/Traceur série
10    ___
11  / ___ \
12 |_|   | |
13      /_/ 
14      _   ___   _ 
15     |_| |___|_| |_
16          ___|_   _|
17         |___| |_|
18 Les petits Débrouillards - Novembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
19 */
20 
21 int valeurCapteur; // On prépare une variable pour stocker les valeurs du capteur
22 
23 void setup() {
24   // on démarre la communication série
25   Serial.begin(9600);
26 }
27 
28 void loop() {
29   // On lit la valeur mesurée par le capteur sur la broche A0
30   valeurCapteur = analogRead(A0);
31   // On publie sur le traceur série la valeur récupérée
32   Serial.println(valeurCapteur);
33   }




Dernière modification 17/10/2024 par user:Antonydbzh.

Commentaires

Published