for textbook v4.4

Dependencies:   Grove_Air_Quality_Sensor_Library mbed

Connection

VDD → 3.3V or 5V (supply voltage)

GND → GND

SIG → p15 (mbed)

NC → Non connection

Revision:
1:888328032581
Parent:
0:2dbce8e35862
Child:
2:225383599b95
diff -r 2dbce8e35862 -r 888328032581 main.cpp
--- 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");
+        }
     }
 }