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

Committer:
mbedAustin
Date:
Fri Sep 05 19:17:20 2014 +0000
Revision:
1:888328032581
Parent:
0:2dbce8e35862
Child:
2:225383599b95
Added interrupt driven library and made example more robust

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 1:888328032581 1
mbedAustin 1:888328032581 2 #include"mbed.h"
mbedAustin 1:888328032581 3 #include"Air_Quality.h"
mbedAustin 1:888328032581 4 AirQuality airqualitysensor;
mbedAustin 1:888328032581 5 int current_quality = -1;
mbedAustin 1:888328032581 6 PinName analogPin = A0;
mbedAustin 0:2dbce8e35862 7
mbedAustin 1:888328032581 8 // Interrupt Handler
mbedAustin 1:888328032581 9 void AirQualityInterrupt()
mbedAustin 1:888328032581 10 {
mbedAustin 1:888328032581 11 AnalogIn sensor(analogPin);
mbedAustin 1:888328032581 12 airqualitysensor.last_vol = airqualitysensor.first_vol;
mbedAustin 1:888328032581 13 airqualitysensor.first_vol = sensor.read()*1000;
mbedAustin 1:888328032581 14 airqualitysensor.timer_index = 1;
mbedAustin 1:888328032581 15 }
mbedAustin 0:2dbce8e35862 16
mbedAustin 1:888328032581 17 // Main loop
mbedAustin 1:888328032581 18 int main()
mbedAustin 1:888328032581 19 {
mbedAustin 1:888328032581 20 airqualitysensor.init(analogPin, AirQualityInterrupt);
mbedAustin 1:888328032581 21 while(1) {
mbedAustin 1:888328032581 22 current_quality=airqualitysensor.slope();
mbedAustin 1:888328032581 23 if (current_quality >= 0) { // if a valid data returned.
mbedAustin 1:888328032581 24 if (current_quality == 0)
mbedAustin 1:888328032581 25 printf("High pollution! Force signal active\n\r");
mbedAustin 1:888328032581 26 else if (current_quality == 1)
mbedAustin 1:888328032581 27 printf("High pollution!\n\r");
mbedAustin 1:888328032581 28 else if (current_quality == 2)
mbedAustin 1:888328032581 29 printf("Low pollution!\n\r");
mbedAustin 1:888328032581 30 else if (current_quality == 3)
mbedAustin 1:888328032581 31 printf("Fresh air\n\r");
mbedAustin 1:888328032581 32 }
mbedAustin 0:2dbce8e35862 33 }
mbedAustin 0:2dbce8e35862 34 }