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/

Dependencies:   mbed

Committer:
ohtsuka
Date:
Mon Sep 08 01:18:37 2014 +0000
Revision:
6:496f4e967298
Parent:
4:4c01d79dd741
Child:
7:8407141d1f70
????????GND????p5?????

Who changed what in which revision?

UserRevisionLine numberNew 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 6:496f4e967298 5 DigitalOut JPlow(p5); // p6ピンでLowを検出させるために使用。隣同士(p5,p6)のピンをショートさせるとログ出力停止
ohtsuka 3:cb51cc4a041d 6 DigitalIn JP(p6);
ohtsuka 3:cb51cc4a041d 7 LocalFileSystem local("local");
ohtsuka 4:4c01d79dd741 8
ohtsuka 3:cb51cc4a041d 9 Timer t;
nyamfg 0:1a3c5ad01539 10
ohtsuka 4:4c01d79dd741 11 LPS331_I2C lps331(p9, p10, LPS331_I2C_SA0_HIGH); // 気圧センサ
ohtsuka 4:4c01d79dd741 12
nyamfg 0:1a3c5ad01539 13 int main() {
ohtsuka 6:496f4e967298 14 JPlow = 0;
ohtsuka 4:4c01d79dd741 15 JP.mode(PullUp);
ohtsuka 4:4c01d79dd741 16
nyamfg 0:1a3c5ad01539 17 lps331.setResolution(LPS331_I2C_PRESSURE_AVG_512, LPS331_I2C_TEMP_AVG_128);
ohtsuka 4:4c01d79dd741 18 lps331.setDataRate(LPS331_I2C_DATARATE_7HZ); // 7Hz(1秒間に7回更新)
ohtsuka 4:4c01d79dd741 19 lps331.setActive(true); // 動作開始
ohtsuka 3:cb51cc4a041d 20
ohtsuka 4:4c01d79dd741 21 FILE *fp = fopen("/local/data.txt", "a"); // 「追記」でファイルを開く
ohtsuka 4:4c01d79dd741 22 fprintf(fp,"BBsat start. **********\r\n"); // fprintf()は、ファイルに文字を出力
ohtsuka 3:cb51cc4a041d 23 fclose(fp);
nyamfg 0:1a3c5ad01539 24
ohtsuka 3:cb51cc4a041d 25 t.start();
nyamfg 2:70ce034cfcfc 26
ohtsuka 4:4c01d79dd741 27 while(1) {
ohtsuka 4:4c01d79dd741 28 int ms=0; // リセットからの経過時間(単位:ミリ秒(MilliSecond)
ohtsuka 4:4c01d79dd741 29 float pres=lps331.getPressure(); // 気圧
ohtsuka 4:4c01d79dd741 30 float temp=lps331.getTemperature(); // 気温
ohtsuka 3:cb51cc4a041d 31
ohtsuka 4:4c01d79dd741 32 if(JP==0) { // JPが0(GND)だったら、
ohtsuka 4:4c01d79dd741 33 break; //whileのループを終了
ohtsuka 3:cb51cc4a041d 34 }
ohtsuka 3:cb51cc4a041d 35
ohtsuka 4:4c01d79dd741 36 ms = t.read_ms(); //現在時刻を取得
ohtsuka 3:cb51cc4a041d 37
ohtsuka 4:4c01d79dd741 38 FILE *fp = fopen("/local/data.txt", "a");
ohtsuka 4:4c01d79dd741 39 fprintf(fp, "%10d,%6.2f,%4.1f\r\n", ms, pres, temp); // 時刻,気圧,気温を出力
ohtsuka 3:cb51cc4a041d 40 fclose(fp);
ohtsuka 4:4c01d79dd741 41
ohtsuka 4:4c01d79dd741 42 wait(0.05); // LED点滅
ohtsuka 4:4c01d79dd741 43 myled = 1;
ohtsuka 3:cb51cc4a041d 44 wait(0.05);
ohtsuka 4:4c01d79dd741 45 myled = 0;
nyamfg 0:1a3c5ad01539 46 }
nyamfg 0:1a3c5ad01539 47 }