Différences entre versions de « SENSEUR-PARTICULE-GP2Y1010AU0F »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(22 versions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :
  
 
La qualité du senseur "photosensible" influence directement la sensibilité de la mesure tandis que la longueur d'onde de la source lumineuse permettra de mesurer des particules plus ou moins fine.
 
La qualité du senseur "photosensible" influence directement la sensibilité de la mesure tandis que la longueur d'onde de la source lumineuse permettra de mesurer des particules plus ou moins fine.
Pour fixer l'idée de ce principe: un aveugle a plus de chance de rater une orange (= particule fine) en face de lui s'il fait des mouvements amples (1.5m de large) avec sa canne.... alors qu'il n'aurait aucun problème à la détecter (la percuter) s'il faisait des mouvements de 30 cm cm avec sa canne (qui serait alors plus rapide).  
+
Pour fixer l'idée de ce principe: un aveugle a plus de chance de rater une orange (= particule fine) en face de lui s'il fait des mouvements amples (1.5m de large) avec sa canne.... alors qu'il n'aurait aucun problème à la détecter (la percuter) s'il faisait des mouvements de 30 cm avec sa canne (qui serait alors plus rapide).  
  
Ce senseur Sharp GP2Y1010AU0F utilise une lumière infrarouge. L'émetteur et le senseur sont placés diagonalement l'un par rapport à l'autre. Le senseur infrarouge mesure la quantité de lumière reflétée par les poussières et fumées.
+
'''Ce senseur Sharp GP2Y1010AU0F utilise une lumière infrarouge. L'émetteur et le senseur sont placés diagonalement l'un par rapport à l'autre. Le senseur infrarouge mesure la quantité de lumière reflétée par les poussières et fumées.'''
  
 
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-01.jpg]]
 
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-01.jpg]]
Ligne 33 : Ligne 33 :
 
* Modifier Rs peut profondément altérer les résultats... à modifier avec précaution.
 
* Modifier Rs peut profondément altérer les résultats... à modifier avec précaution.
 
* [http://df.mchobby.be/datasheet/gp2y1010au_e.pdf Fiche technique du senseur Sharp GP2Y1010AU0F] (pdf)
 
* [http://df.mchobby.be/datasheet/gp2y1010au_e.pdf Fiche technique du senseur Sharp GP2Y1010AU0F] (pdf)
 +
 +
=== Tension de sortie / densité ===
 +
Le graphique suivant affiche l'évolution de la tension de sortie en fonction de la densité de poussière/particule.
 +
 +
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-tech-00.jpg]]
 +
 +
== Comment Brancher ==
 +
Le graphique suivant vous permet d'identifier les différentes broches du senseur.
 +
 +
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-broches.jpg|496px]]
 +
 +
Que vous pourrez raccorder comme suit:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Broche senseur
 +
| align="center" | Identification
 +
| align="center" | Broche Arduino
 +
|- style="font-size: 90%"
 +
| align="left" | 1
 +
| align="left" | Vled<small>''<br />Alimentation de la LED Infrarouge)
 +
| align="left" | 5V<small>''<br />(via la résistance de 150 Ohms, voir schéma ci-dessous)''</small>
 +
|- style="font-size: 90%"
 +
| align="left" | 2
 +
| align="left" | LED -
 +
| align="left" | GND
 +
|- style="font-size: 90%"
 +
| align="left" | 3
 +
| align="left" | LED<small>''<br />Commande de la LED.''</small>
 +
| align="left" | Pin #2<small>''<br />Broche digital.''</small>
 +
|- style="font-size: 90%"
 +
| align="left" | 4
 +
| align="left" | S-GND<small>''<br />Masse (y compris du boîtier)''</small>
 +
| align="left" | GND
 +
|- style="font-size: 90%"
 +
| align="left" | 5
 +
| align="left" | Vo<small>''<br />Sortie du senseur''</small>
 +
| align="left" | Arduino A0 (analogique)
 +
|- style="font-size: 90%"
 +
| align="left" | 6
 +
| align="left" | Vcc<small>''<br />Alimentation circuit logique du senseur''</small>
 +
| align="left" | 5V
 +
|}
 +
 +
'''N'oubliez pas''' de monter {{underline|la capacité et la résistance}} comme indiqué que le schéma ci-dessous. De sorte, la LED disposera de suffisant d'énergie (fournie par la capacité) lorsque la commande d'impulsion d'Arduino arrivera sur la broche 3 du senseur.
 +
 +
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-09.jpg]]
 +
 +
Comme vous pouvez le constater sur le schéma ci-dessus, la LED Infrarouge est pilotée par un transistor de puissance déjà inclus dans le boîtier du senseur. Nous pouvons donc utiliser directement une broche Arduino (PIN 2) pour commander la LED Infrarouge.
 +
 +
Au final, vous devriez obtenir un montage comme celui-ci.
 +
 +
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-10.jpg]]
 +
 +
== Le code ==
 +
 +
Le graphique suivant (repris de la fiche technique Sharp) indique que l'échantillonnage (la mesure) se fait 28ms après le début de la mesure.
 +
 +
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-Code-Pulse.jpg]]
 +
 +
<nowiki>#define dustPin  A0 // Lecture analogique du senseur (A0)
 +
#define ledPower 2  // Commande de la LED IR du senseur (digital 2)
 +
 +
// Delai avant la mesure analogique (0.28 ms, soit 280 microsecondes)
 +
 +
#define delayTime 280
 +
 +
// Délai d'impulsion IR sur le senseur.
 +
//    0.32ms actif sur 10ms au total.
 +
//
 +
//  Note: 280 + 40 + 9680 = 10000 micro-secondes, soit 10ms
 +
 +
#define delayTime2 40
 +
#define offTime    9680
 +
 +
void setup(){
 +
    Serial.begin(9600);
 +
    pinMode(ledPower,OUTPUT);
 +
    pinMode(dustPin, INPUT);
 +
}
 +
 +
void loop(){
 +
    float dustVal=0; // Valeur retournée par le senseur
 +
   
 +
    // Activation de la LED IR (en passant au niveau bas)
 +
    digitalWrite(ledPower,LOW);
 +
    // Attendre 0.28ms (280 micro secondes) avant lecture analogique
 +
    delayMicroseconds(delayTime);
 +
    dustVal=analogRead(dustPin);
 +
 +
    // Attendre encore 40 microseconde pour atteindre
 +
    // 320 microsecondes (soit 0.32ms). Il est temps d'éteindre
 +
    // la LED IT
 +
    delayMicroseconds(delayTime2);
 +
    digitalWrite(ledPower,HIGH);
 +
 +
    // Attendre la fin du cycle de 10ms
 +
    // (soit 10000 microsecondes au total) 
 +
    delayMicroseconds(offTime);
 +
 +
 +
    // pause de 1 seconde entre chaque capture
 +
    delay(1000);
 +
 +
    // Transformation de la lecture analogique + affichage
 +
    if (dustVal>36.455)
 +
        Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
 +
}</nowiki>
  
 
== Où acheter ==
 
== Où acheter ==

Version actuelle datée du 3 avril 2016 à 17:46


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

Le PM2.5 est un senseur de particule (poussière et fumée) analogique avec une tension de sortie de 0.5V par 0.1mg/m³.

 

Il existe de nombreux senseurs différents dont le prix varie de quelques euros à plus de 100 euro (détecteur avec Laser).

L'air dont ont désire mesurer la teneur en particule passe dans un boîtier contenant un émetteur de lumière et un senseur "photo-sensible".

La qualité du senseur "photosensible" influence directement la sensibilité de la mesure tandis que la longueur d'onde de la source lumineuse permettra de mesurer des particules plus ou moins fine. Pour fixer l'idée de ce principe: un aveugle a plus de chance de rater une orange (= particule fine) en face de lui s'il fait des mouvements amples (1.5m de large) avec sa canne.... alors qu'il n'aurait aucun problème à la détecter (la percuter) s'il faisait des mouvements de 30 cm avec sa canne (qui serait alors plus rapide).

Ce senseur Sharp GP2Y1010AU0F utilise une lumière infrarouge. L'émetteur et le senseur sont placés diagonalement l'un par rapport à l'autre. Le senseur infrarouge mesure la quantité de lumière reflétée par les poussières et fumées.

 

Ce senseur permet de détecter les poussières dans l'air et des particules très fines comme la fumée de cigarette (dixit Sharp). Il est même possible de faire la distinction entre la fumée et la poussière domestique en détectant des motifs d'impulsion sur la tension de sortie (pulse pattern of output voltage)

Les applications typiques de ce senseur sont:

  • conditionnement d'air,
  • contrôle de la qualité de l'air,
  • purification d'air

Détails techniques

  • Compacte: le senseur sharp à les dimensions suivantes: 46 x 30 x 17.6mm
  • Basse consommation: max 20mA
  • La présence de poussière peut être détecté par photométrie d'une seule impulsion.
  • Commande de la LED infrarouge par impulsion (cycle de 10ms avec largeur d'impulsion de 0.32ms)
  • Le senseur est équipé d'une résistance variable (Rs) permettant d'ajuster la sensibilité du circuit d'amplification.
  • Modifier Rs peut profondément altérer les résultats... à modifier avec précaution.
  • Fiche technique du senseur Sharp GP2Y1010AU0F (pdf)

Tension de sortie / densité

Le graphique suivant affiche l'évolution de la tension de sortie en fonction de la densité de poussière/particule.

 

Comment Brancher

Le graphique suivant vous permet d'identifier les différentes broches du senseur.

 

Que vous pourrez raccorder comme suit:

Broche senseur Identification Broche Arduino
1 Vled
Alimentation de la LED Infrarouge)
5V
(via la résistance de 150 Ohms, voir schéma ci-dessous)
2 LED - GND
3 LED
Commande de la LED.
Pin #2
Broche digital.
4 S-GND
Masse (y compris du boîtier)
GND
5 Vo
Sortie du senseur
Arduino A0 (analogique)
6 Vcc
Alimentation circuit logique du senseur
5V

N'oubliez pas de monter la capacité et la résistance comme indiqué que le schéma ci-dessous. De sorte, la LED disposera de suffisant d'énergie (fournie par la capacité) lorsque la commande d'impulsion d'Arduino arrivera sur la broche 3 du senseur.

 

Comme vous pouvez le constater sur le schéma ci-dessus, la LED Infrarouge est pilotée par un transistor de puissance déjà inclus dans le boîtier du senseur. Nous pouvons donc utiliser directement une broche Arduino (PIN 2) pour commander la LED Infrarouge.

Au final, vous devriez obtenir un montage comme celui-ci.

 

Le code

Le graphique suivant (repris de la fiche technique Sharp) indique que l'échantillonnage (la mesure) se fait 28ms après le début de la mesure.

 

#define dustPin  A0 // Lecture analogique du senseur (A0)
#define ledPower 2  // Commande de la LED IR du senseur (digital 2)

// Delai avant la mesure analogique (0.28 ms, soit 280 microsecondes) 

#define delayTime 280

// Délai d'impulsion IR sur le senseur.
//     0.32ms actif sur 10ms au total.
//
//  Note: 280 + 40 + 9680 = 10000 micro-secondes, soit 10ms 

#define delayTime2 40 
#define offTime    9680

void setup(){
    Serial.begin(9600);
    pinMode(ledPower,OUTPUT);
    pinMode(dustPin, INPUT);
}

void loop(){
    float dustVal=0; // Valeur retournée par le senseur
    
    // Activation de la LED IR (en passant au niveau bas)
    digitalWrite(ledPower,LOW);
    // Attendre 0.28ms (280 micro secondes) avant lecture analogique 
    delayMicroseconds(delayTime);
    dustVal=analogRead(dustPin); 

    // Attendre encore 40 microseconde pour atteindre
    // 320 microsecondes (soit 0.32ms). Il est temps d'éteindre
    // la LED IT
    delayMicroseconds(delayTime2);
    digitalWrite(ledPower,HIGH);

    // Attendre la fin du cycle de 10ms 
    // (soit 10000 microsecondes au total)   
    delayMicroseconds(offTime);


    // pause de 1 seconde entre chaque capture
    delay(1000);

    // Transformation de la lecture analogique + affichage
    if (dustVal>36.455)
        Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
}

Où acheter