Modifications

Sauter à la navigation Sauter à la recherche
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 ==
Ligne 85 : Ligne 90 :     
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.
 
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]]
 
[[Fichier:SENSEUR-PARTICULE-GP2Y1010AU0F-Code-Pulse.jpg]]
   −
  <nowiki>int dustPin=A0; # Lecture analogique du senseur (A0)
+
  <nowiki>#define dustPin A0 // Lecture analogique du senseur (A0)
float dustVal=0; # Valeur retournée par le senseur
+
#define ledPower 2 // Commande de la LED IR du senseur (digital 2)
int ledPower=2; # Commande de la LED IR du senseur (digital 2)
     −
# Delai avant la mesure analogique (28 ms)  
+
// Delai avant la mesure analogique (0.28 ms, soit 280 microsecondes)  
int delayTime=280;
     −
# Délai d'impulsion IR sur le senseur
+
#define delayTime 280
int delayTime2=40;
  −
float offTime=9680;
      +
// 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(){
 
void setup(){
Ligne 106 : Ligne 115 :     
void loop(){
 
void loop(){
     // ledPower is any digital pin on the arduino connected to Pin 3 on the sensor
+
    float dustVal=0; // Valeur retournée par le senseur
     digitalWrite(ledPower,LOW); 
+
   
 +
     // Activation de la LED IR (en passant au niveau bas)
 +
     digitalWrite(ledPower,LOW);
 +
    // Attendre 0.28ms (280 micro secondes) avant lecture analogique
 
     delayMicroseconds(delayTime);
 
     delayMicroseconds(delayTime);
     dustVal=analogRead(dustPin); 
+
     dustVal=analogRead(dustPin);  
 +
 
 +
    // Attendre encore 40 microseconde pour atteindre
 +
    // 320 microsecondes (soit 0.32ms). Il est temps d'éteindre
 +
    // la LED IT
 
     delayMicroseconds(delayTime2);
 
     delayMicroseconds(delayTime2);
     digitalWrite(ledPower,HIGH); 
+
     digitalWrite(ledPower,HIGH);
 +
 
 +
    // Attendre la fin du cycle de 10ms
 +
    // (soit 10000 microsecondes au total) 
 
     delayMicroseconds(offTime);
 
     delayMicroseconds(offTime);
 +
 +
 +
    // pause de 1 seconde entre chaque capture
 
     delay(1000);
 
     delay(1000);
 +
 +
    // Transformation de la lecture analogique + affichage
 
     if (dustVal>36.455)
 
     if (dustVal>36.455)
 
         Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
 
         Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
    }</nowiki>
+
}</nowiki>
    
== Où acheter ==
 
== Où acheter ==
29 917

modifications

Menu de navigation