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 88 : Ligne 93 :  
[[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 (0.28 ms, soit 280 microsecondes)  
   −
# Delai avant la mesure analogique (28 ms)
+
#define delayTime 280
int delayTime=280;
     −
# Délai d'impulsion IR sur le senseur
+
// Délai d'impulsion IR sur le senseur.
int delayTime2=40;
+
//    0.32ms actif sur 10ms au total.
float offTime=9680;
+
//
 +
//  Note: 280 + 40 + 9680 = 10000 micro-secondes, soit 10ms
    +
#define delayTime2 40
 +
#define offTime    9680
    
void setup(){
 
void setup(){
Ligne 107 : 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