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 == |