Modifications

Sauter à la navigation Sauter à la recherche
2 781 octets ajoutés ,  3 avril 2016 à 17:46
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 ==
 
== Comment Brancher ==
 
Le graphique suivant vous permet d'identifier les différentes broches du senseur.
 
Le graphique suivant vous permet d'identifier les différentes broches du senseur.
   −
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-broches.jpg]]
+
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-broches.jpg|496px]]
    
Que vous pourrez raccorder comme suit:
 
Que vous pourrez raccorder comme suit:
Ligne 48 : Ligne 53 :  
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 1
 
| align="left" | 1
| align="left" | xx
+
| align="left" | Vled<small>''<br />Alimentation de la LED Infrarouge)
| align="left" | yyyy
+
| align="left" | 5V<small>''<br />(via la résistance de 150 Ohms, voir schéma ci-dessous)''</small>
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 2
 
| align="left" | 2
| align="left" | xx
+
| align="left" | LED -
| align="left" | yyyy
+
| align="left" | GND
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 3
 
| align="left" | 3
| align="left" | xx
+
| align="left" | LED<small>''<br />Commande de la LED.''</small>
| align="left" | yyyy
+
| align="left" | Pin #2<small>''<br />Broche digital.''</small>
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 4
 
| align="left" | 4
| align="left" | xx
+
| align="left" | S-GND<small>''<br />Masse (y compris du boîtier)''</small>
| align="left" | yyyy
+
| align="left" | GND
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 5
 
| align="left" | 5
| align="left" | xx
+
| align="left" | Vo<small>''<br />Sortie du senseur''</small>
| align="left" | yyyy
+
| align="left" | Arduino A0 (analogique)
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
 
| align="left" | 6
 
| align="left" | 6
| align="left" | xx
+
| align="left" | Vcc<small>''<br />Alimentation circuit logique du senseur''</small>
| align="left" | yyyy
+
| 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.
 
Au final, vous devriez obtenir un montage comme celui-ci.
Ligne 78 : Ligne 89 :  
== Le code ==
 
== 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 ==
29 917

modifications

Menu de navigation