This program is for Cansat made with BreadBoard which have pressure sensor LPS331. This program is based on http://mbed.org/users/nyamfg/code/LPS331_HelloWorld/
main.cpp@4:4c01d79dd741, 2014-07-24 (annotated)
- Committer:
- ohtsuka
- Date:
- Thu Jul 24 01:10:38 2014 +0000
- Revision:
- 4:4c01d79dd741
- Parent:
- 3:cb51cc4a041d
- Child:
- 5:f2944e456618
- Child:
- 6:496f4e967298
??????????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyamfg | 0:1a3c5ad01539 | 1 | #include "mbed.h" |
nyamfg | 0:1a3c5ad01539 | 2 | #include "LPS331_I2C.h" |
nyamfg | 0:1a3c5ad01539 | 3 | |
ohtsuka | 4:4c01d79dd741 | 4 | DigitalOut myled(LED1); |
ohtsuka | 3:cb51cc4a041d | 5 | DigitalIn JP(p6); |
ohtsuka | 3:cb51cc4a041d | 6 | LocalFileSystem local("local"); |
ohtsuka | 4:4c01d79dd741 | 7 | |
ohtsuka | 3:cb51cc4a041d | 8 | Timer t; |
nyamfg | 0:1a3c5ad01539 | 9 | |
ohtsuka | 4:4c01d79dd741 | 10 | LPS331_I2C lps331(p9, p10, LPS331_I2C_SA0_HIGH); // 気圧センサ |
ohtsuka | 4:4c01d79dd741 | 11 | |
nyamfg | 0:1a3c5ad01539 | 12 | int main() { |
ohtsuka | 3:cb51cc4a041d | 13 | |
ohtsuka | 4:4c01d79dd741 | 14 | JP.mode(PullUp); |
ohtsuka | 4:4c01d79dd741 | 15 | |
nyamfg | 0:1a3c5ad01539 | 16 | lps331.setResolution(LPS331_I2C_PRESSURE_AVG_512, LPS331_I2C_TEMP_AVG_128); |
ohtsuka | 4:4c01d79dd741 | 17 | lps331.setDataRate(LPS331_I2C_DATARATE_7HZ); // 7Hz(1秒間に7回更新) |
ohtsuka | 4:4c01d79dd741 | 18 | lps331.setActive(true); // 動作開始 |
ohtsuka | 3:cb51cc4a041d | 19 | |
ohtsuka | 4:4c01d79dd741 | 20 | FILE *fp = fopen("/local/data.txt", "a"); // 「追記」でファイルを開く |
ohtsuka | 4:4c01d79dd741 | 21 | fprintf(fp,"BBsat start. **********\r\n"); // fprintf()は、ファイルに文字を出力 |
ohtsuka | 3:cb51cc4a041d | 22 | fclose(fp); |
nyamfg | 0:1a3c5ad01539 | 23 | |
ohtsuka | 3:cb51cc4a041d | 24 | t.start(); |
nyamfg | 2:70ce034cfcfc | 25 | |
ohtsuka | 4:4c01d79dd741 | 26 | while(1) { |
ohtsuka | 4:4c01d79dd741 | 27 | int ms=0; // リセットからの経過時間(単位:ミリ秒(MilliSecond) |
ohtsuka | 4:4c01d79dd741 | 28 | float pres=lps331.getPressure(); // 気圧 |
ohtsuka | 4:4c01d79dd741 | 29 | float temp=lps331.getTemperature(); // 気温 |
ohtsuka | 3:cb51cc4a041d | 30 | |
ohtsuka | 4:4c01d79dd741 | 31 | if(JP==0) { // JPが0(GND)だったら、 |
ohtsuka | 4:4c01d79dd741 | 32 | break; //whileのループを終了 |
ohtsuka | 3:cb51cc4a041d | 33 | } |
ohtsuka | 3:cb51cc4a041d | 34 | |
ohtsuka | 4:4c01d79dd741 | 35 | ms = t.read_ms(); //現在時刻を取得 |
ohtsuka | 3:cb51cc4a041d | 36 | |
ohtsuka | 4:4c01d79dd741 | 37 | FILE *fp = fopen("/local/data.txt", "a"); |
ohtsuka | 4:4c01d79dd741 | 38 | fprintf(fp, "%10d,%6.2f,%4.1f\r\n", ms, pres, temp); // 時刻,気圧,気温を出力 |
ohtsuka | 3:cb51cc4a041d | 39 | fclose(fp); |
ohtsuka | 4:4c01d79dd741 | 40 | |
ohtsuka | 4:4c01d79dd741 | 41 | wait(0.05); // LED点滅 |
ohtsuka | 4:4c01d79dd741 | 42 | myled = 1; |
ohtsuka | 3:cb51cc4a041d | 43 | wait(0.05); |
ohtsuka | 4:4c01d79dd741 | 44 | myled = 0; |
nyamfg | 0:1a3c5ad01539 | 45 | } |
nyamfg | 0:1a3c5ad01539 | 46 | } |