gavin beardall
/
humidity1
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