Modifications

Sauter à la navigation Sauter à la recherche
3 794 octets ajoutés ,  3 avril 2016 à 17:46
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 ==
29 917

modifications

Menu de navigation