![](/media/cache/profiles/P1080070.JPG.50x50_q85.jpg)
Grove Air quality sensor program
Dependencies: Grove_Air_Quality_Sensor_Library mbed
Connection
VDD → 3.3V or 5V (supply voltage)
GND → GND
SIG → p15 (mbed)
NC → Non connection
Diff: main.cpp
- Revision:
- 1:888328032581
- Parent:
- 0:2dbce8e35862
- Child:
- 2:225383599b95
--- a/main.cpp Fri Sep 05 03:39:31 2014 +0000 +++ b/main.cpp Fri Sep 05 19:17:20 2014 +0000 @@ -1,12 +1,34 @@ -#include "mbed.h" + +#include"mbed.h" +#include"Air_Quality.h" +AirQuality airqualitysensor; +int current_quality = -1; +PinName analogPin = A0; -AnalogIn sensor(A0); +// Interrupt Handler +void AirQualityInterrupt() +{ + AnalogIn sensor(analogPin); + airqualitysensor.last_vol = airqualitysensor.first_vol; + airqualitysensor.first_vol = sensor.read()*1000; + airqualitysensor.timer_index = 1; +} -int main() { - float sensorValue; - while (true) { - sensorValue = sensor.read(); - printf("\r Air Quality score = %3.2f",100 - (sensorValue*100)); - wait(5); +// Main loop +int main() +{ + airqualitysensor.init(analogPin, AirQualityInterrupt); + while(1) { + current_quality=airqualitysensor.slope(); + if (current_quality >= 0) { // if a valid data returned. + if (current_quality == 0) + printf("High pollution! Force signal active\n\r"); + else if (current_quality == 1) + printf("High pollution!\n\r"); + else if (current_quality == 2) + printf("Low pollution!\n\r"); + else if (current_quality == 3) + printf("Fresh air\n\r"); + } } }