0% ont trouvé ce document utile (0 vote)
54 vues8 pages

TP3 - Arduino

Le document présente un TP sur les capteurs numériques utilisant Arduino, détaillant leur fonctionnement et des applications pratiques. Il couvre divers types de capteurs, tels que les capteurs TOR, DHT11, MQ2, MQ135 et HC-SR04, avec des instructions pour réaliser des projets spécifiques. Chaque section inclut des exemples de code et des conseils pour l'installation des bibliothèques nécessaires.

Transféré par

pape gora thiam
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues8 pages

TP3 - Arduino

Le document présente un TP sur les capteurs numériques utilisant Arduino, détaillant leur fonctionnement et des applications pratiques. Il couvre divers types de capteurs, tels que les capteurs TOR, DHT11, MQ2, MQ135 et HC-SR04, avec des instructions pour réaliser des projets spécifiques. Chaque section inclut des exemples de code et des conseils pour l'installation des bibliothèques nécessaires.

Transféré par

pape gora thiam
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO

__________________________________________________________________________________________________

TP3 – Capteurs numériques

Connaissance du mode de fonctionnement des capteurs numériques. Lire la valeur des signaux
numériques reçues sur les broches d’entrées et sorties numériques de la carte Arduino. Installer et
exploiter les bibliothèques de fabricants afin de traiter les données de capteurs.

A. Capteurs TOR
Un capteur TOR (Tout ou Rien) permet de détecter la présence ou non d’un phénomène physique. Ces
capteurs sont appelés aussi capteur logique car ne génère à leurs sorties que deux valeurs possibles : 0
(niveau bas) ou 1 (niveau haut).
1. Capteur d’inclinaison à bille
Ce type de capteur intègre une bille qui bascule selon son orientation : cette bille métallique à l'intérieur
du tube ouvre ou ferme le contact.

• Pratique
Réaliser un système capable d’allumer une LED en cas de détection d’une inclinaison par le biais du
capteur à bille.

2. Capteur à effet de Hall


Un capteur à Effet Hall permet de détecter si un aimant est à proximité. Il est très utile pour
constituer un capteur sans contact et peut aussi servir comme capteurs de position, encodeur,

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

détection de rotation. Le module ci-dessous renvoie un signal HIGH si un aimant est à


proximité.

• Pratique
Concevoir un détecteur de champ magnétique qui émet un son via le buzzer lorsqu’il détecte la
présence d’un aimant.

3. Détecteur de fumée
Les capteurs de la famille MQx sont des capteurs de gaz. Le procédé chimique qui permet la mesure est
basé sur la tension entre deux électrodes séparées par le gaz ambiant. On peut noter la présence d'une
résistance qui chauffe le gaz pour mesurer correctement, ce qui explique pourquoi le capteur est chaud
lorsqu'il est branché.
Le capteur MQ2
Module comportant un capteur MQ2 permettant de détecter plusieurs types de gaz : le LPG,
Isobutane, le propane, le méthane, l'hydrogène, l'alcool et la fumée. Une sortie numérique (DO)
est également disponible, son seuil de déclenchement est réglable via un potentiomètre.

• Pratique
Réaliser un système détection de fumée consistant à déterminer la présence de la fumée par le
biais du capteur MQ2 puis d’activer le buzzer. Deux LED seront également utilisées : une rouge
pour indiquer la détection de fumée, une verte dans le cas contraire.

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

NB : pour créer de la fumée, allumer un bout de papier enroulée puis le placier à proximité du capteur.

B. Capteur de température et d’humidité DHT11


Le DHT11 est un capteur qui génère un signal numérique en sortie codant une valeur de température et
d’humidité mesurée en temps réel.

DHT11 utilise une communication simplifiée à 1 bus pour le contrôle et l’échange de données. La trame
est constituée de 5 octets (40 bits) :

Humidité = 00110101,00000000 = 53%RH


Température = 00011000, 00000000 = 24 °C
Checksum = 00110101 + 00000000 + 00011000 + 00000000 = 01001101 (correcte)

• Pratique
Ecrire un programme capable de lire la température et l’humidité mesurée par le capteur DHT11
puis d’afficher ces mesures.
Installer la bibliothèque DHT sensor library
DHT sensor library est une bibliothèque proposée par Adafruit pour le contrôle et le traitement des
données du capteur DHT11.
Pour l’installer, aller sur le menu Outils, puis cliquer sur Gérer les bibliothèques. Une nouvelle fenêtre
va s’ouvrir, saisir sur la barre de recherche le mot DHT11. Sélectionner la bibliothèque DHT proposée
par Adafruit et cliquer sur le bouton Installer.
______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

Ensuite sur la nouvelle fenêtre qui apparait, cliquer sur Install all.
Montage électronique

Bout de code sur l’utilisation de le bibliothèque DHT11


(1) Paramétrage
// Importer la bibliothèque DHT
#include "DHT.h"

// Indiquer le numéro de broche et le type de capteur DHT


#define DHTPIN 2
#define DHTTYPE DHT11

// Créer un objet de type DHT


DHT dht(DHTPIN, DHTTYPE);

(2) Initialisation dans la fonction setup()

[Link]();

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

(3) Lecture des mesures dans la fonction loop()


// Lire la valeur de l'humidité
float humidite = [Link]();

// Lire la valeur de la temperature


float temperature = [Link]();

// Vérifier si la lecture a échouée


if (isnan(humidite) || isnan(temperature)) {
[Link]("Echec de lecture depuis le capteur DHT11");
return;
}

C. Capteur MQ135 ou capteur de la qualité de l'air


Le capteur MQ135 est sensible au CO2, à l’alcool, au Benzène, à l’oxyde d’azote NOx et à
l’ammoniac NH3. On peut donc appeler la mesure "qualité de l'air" car tous ces gaz sont nocifs
à forte dose, mais on ne peut pas différencier les gaz entre eux. Toutefois, la concentration en
CO2 dans l’air est bien plus élevée que celle de ces autres gaz, on peut donc considérer ce
capteur comme un capteur de CO2 dans la plupart des cas usuels.

Le graphique indique la concentration des gaz en ppm (partie par million) en fonction du rapport de
résistance du capteur (𝑅𝑠/𝑅0). 𝑅𝑠 est la résistance du capteur en fonction de la concentration du gaz.
𝑅0 est la résistance du capteur à une concentration connue sans la présence de gaz.
• Pratique
Installer la bibliothèque MQ135
Cette bibliothèque permet à toute carte compatible Arduino de s'interfacer facilement avec le capteur de
qualité de l'air MQ135 et de calculer les concentrations de CO2 corrigées en fonction de la température
et de l'humidité.
NB : c’est la sortie analogique AO du capteur qui sera utilisée pour déterminer la concentration CO2
corrigée en fonction de la température et de l’humidité. Pour ce faire, un capteur DHT11 sera utilisé.
Pour installer la bibliothèque, aller sur le gestionnaire des bibliothèques puis saisir sur la barre de
recherche MQ135. Choisir la bibliothèque proposée par Phoenix1747.
Détails : [Link]

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

NB : il existe une autre bibliothèque nommée MQUnifiedsensor qui est utilisable pour l’ensemble des
capteurs de la famille MQx. Cependant sont usage nécessite de fournir plusieurs paramètres de
fonctionnement du capteur.
Détails : [Link]
Montage électronique

(1) Tester le code suivant afin de vérifier si le capteur marche bien. Pour ce faire réaliser le montage
ci-dessous puis téléverser le code. Patienter quelques minutes, le temps que le capteur se réchauffe
puis ouvrir le moniteur série et observer les données affichées.
(2) Pour produire du CO2, allumer un bout de papier enroulée puis le placier à proximité du capteur.
(3) Modifier le programme afin d’afficher que la valeur de la concentration corrigée. Ensuite observer
l’évolution de cette concentration sous forme courbe à l’aide du Traceur série.

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

#include <MQ135.h>
#include <DHT.h>

#define PIN_MQ135 A2
#define DHTPIN 2
#define DHTTYPE DHT11

MQ135 mq135_sensor(PIN_MQ135);
DHT dht(DHTPIN, DHTTYPE);

float temperature, humidity;

void setup() {
[Link](9600);
[Link]();
}

void loop() {
humidity = [Link]();
temperature = [Link]();

if (isnan(humidity) || isnan(temperature)) {
[Link](F("Failed to read from DHT sensor!"));
return;
}

float rzero = mq135_sensor.getRZero();


float correctedRZero = mq135_sensor.getCorrectedRZero(temperature, humidity);
float resistance = mq135_sensor.getResistance();
float ppm = mq135_sensor.getPPM();
float correctedPPM = mq135_sensor.getCorrectedPPM(temperature, humidity);

[Link]("MQ135 RZero: ");


[Link](rzero);
[Link]("\t Corrected RZero: ");
[Link](correctedRZero);
[Link]("\t Resistance: ");
[Link](resistance);
[Link]("\t PPM: ");
[Link](ppm);
[Link]("ppm");
[Link]("\t Corrected PPM: ");
[Link](correctedPPM);
[Link]("ppm");

delay(300);
}

D. Capteur ultrason HC-SR04


Le capteur à ultrason permet une mesure d’un objet situé à une distance allant de 2cm à 4m et fourni
une mesure avec une précision de 3mm. Le principe de fonctionnement est le suivant : (1) un signal de
déclenchement (trigger) est émis pendant 10µs, (2) le module se met à l’écoute d’un signal de retour,
(3) le temps entre l’émission et la réception est le temps nécessaire au signal pour faire l’aller et le retour
vers l’obstacle.

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique
Arduino TP3 – Capteurs numériques | Dr Ousmane SADIO
__________________________________________________________________________________________________

Le chronogramme est illustré ci-dessous. Il vous suffit de fournir une courte impulsion de 10us au trigger
input pour démarrer la télémétrie, puis le module enverra une rafale d'ultrasons de 8 cycles à 40 kHz et
d’écouter son écho. La largeur d'impulsion d'écho est proportionnelle à la distance de l'objet.
𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑜𝑏𝑠𝑡𝑎𝑐𝑙𝑒 = 𝑑𝑢𝑟é𝑒 𝑒𝑐ℎ𝑜 × 𝑣𝑖𝑡𝑒𝑠𝑠𝑒 𝑑𝑢 𝑠𝑜𝑛 / 2
La vitesse du son est de la vitesse est d'environ 340 m/s.
• Pratique
Ecrire un programme capable de déterminer puis d’afficher la distance d’un obstacle.

Bout de code sur l’utilisation du capteur HC-SR04


(1) Paramétrage dans la fonction setup()
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

(3) Lecture de la distance dans la fonction loop()


// Remise à zéro du trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Activer le trigger pendant 10 microsecondes
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Determiner la durée de l’echo
duration = pulseIn(echoPin, HIGH);
// Calculer la distance
distance = duration * 0.034 / 2;

______________________________________________________________________________
UVS 2021 – 2022 | Licence 2 Robotique

Vous aimerez peut-être aussi