**reverse engineering : SHARP GP2Y1010** Afin de mettre au point notre propre détecteur de particules fines, nous avons commencé par une phase de reverse engineering sur 2 capteurs low-cost du marché : le SHARP GP2Y1010 et le SHINYEI PPD42NS. Ci-dessous les photos du Sharp désossé avec légendes. {{ :wiki:projets:plume_sharp_all.png?400 |plume_sharp_all}} {{ :wiki:projets:plume_sharp_scattered.jpg?400 |plume_sharp_scattered}} {{ :wiki:projets:plume_sharp_circuit.jpg?400 |plume_sharp_circuit}} {{ :wiki:projets:plume_sharp_casing.jpg?400 |plume_sharp_casing}} {{ :wiki:projets:plume_sharp_optics.jpg?400 |plume_sharp_optics}} Le faisceau collimaté de l'émetteur est diffusé par les particules fines. Le flux diffusé par les particules situées dans la champ optique collimaté du récepteur à un certain angle constitue la mesure. 
En pratique, ce flux est très faible. Il est le paramètre contraignant le dispositif. /* Interface to Sharp GP2Y1010AU0F Particle Sensor Program by Christopher Nafis Written April 2012 http://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf http://sensorapp.net/?p=479 Sharp pin 1 (V-LED) => 5V (connected to 150ohm resister) Sharp pin 2 (LED-GND) => Arduino GND pin Sharp pin 3 (LED) => Arduino pin 2 Sharp pin 4 (S-GND) => Arduino GND pin Sharp pin 5 (Vo) => Arduino A0 pin Sharp pin 6 (Vcc) => 5V */ #include #include #include int dustPin=0; int ledPower=2; int delayTime=280; int delayTime2=40; float offTime=9680; int dustVal=0; int i=0; float ppm=0; void setup(){ Serial.begin(9600); pinMode(ledPower,OUTPUT); i=0; ppm =0; } void loop(){ i=i+1; digitalWrite(ledPower,LOW); // power on the LED delayMicroseconds(delayTime); dustVal=analogRead(dustPin); // read the dust value ppm = ppm+dustVal; delayMicroseconds(delayTime2); digitalWrite(ledPower,HIGH); // turn the LED off delayMicroseconds(offTime); } **reverse engineering : SHINYEI PPD42NS** {{ :wiki:projets:plume_shinyei_all.jpg?400 |plume_shinyei_all}} {{ :wiki:projets:plume_shinyei_scattered.png?400 |plume_shinyei_scattered (aqicn.org)}}