Dependencies:   mbed

main.cpp

Committer:
gbeardall
Date:
2011-08-25
Revision:
1:bdb889fd3bef
Parent:
0:dba2bcefd284
Child:
2:5628e75c533e

File content as of revision 1:bdb889fd3bef:

/*
 * humidity1
 *
 */

#include "mbed.h"

DigitalOut myled(LED1);

AnalogIn hum(p20);
AnalogIn ref(p19);

int main() {
    float av0 = 0.0;
    float alpha = 0.5;

    printf("humidity1\n\r");

    while(1) {
    
        // read many times to remove noise
        int n = 1000;
        float h = 0.0;
        float r = 0.0;
        float v = 0.0;
        for(int i=0; i<n; ++i) {
            float h1, r1;
            h1 = hum.read();
            r1 = ref.read();
            h += h1;
            r += r1;
            v += 5.0*h1/r1; // convert to 5v reference
        }
        h /= n;
        r /= n;
        v /= n;
        
        // EMA
        float av = av0 + alpha*(v-av0);
        av0 = av;
        
        // scale to humidity%
        float m = (av-0.8)/3.0*100.0;
                
        printf("h=%1.4f r=%1.4f %1.4fv %1.4fv %3.1f%%\n\r", h, r, v, av, m );
    
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.8);
        
    } // while
    
} // main