BMP085を入れました

Dependencies:   BMP085_2 SDFileSystem mbed

Committer:
yattu0914
Date:
Thu Aug 01 11:18:50 2013 +0000
Revision:
6:3cc5c120fbe3
Parent:
5:9cfdae50349e
Child:
7:ba3fa64f04e9
?????????????????; ; ????????????????I2C?????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yattu0914 0:2c21bfd10524 1 #include "mbed.h"
yattu0914 5:9cfdae50349e 2 #include "BMP085.h"
yattu0914 6:3cc5c120fbe3 3 #include "ADXL345_I2C.h"
yattu0914 6:3cc5c120fbe3 4
yattu0914 1:6dc59f48b649 5
yattu0914 6:3cc5c120fbe3 6 //SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
yattu0914 0:2c21bfd10524 7 Serial xbee(p13,p14); // tx, rx
yattu0914 1:6dc59f48b649 8 /*Timeout dater;*/
yattu0914 4:5872b6ac17e5 9 //LocalFileSystem local("local");
yattu0914 3:37b076ff27a9 10 Timer timer;
yattu0914 0:2c21bfd10524 11
yattu0914 0:2c21bfd10524 12 AnalogIn temp_in(p20);
yattu0914 0:2c21bfd10524 13 AnalogIn acc_x(p17);
yattu0914 0:2c21bfd10524 14 AnalogIn acc_y(p18);
yattu0914 0:2c21bfd10524 15 AnalogIn acc_z(p19);
yattu0914 0:2c21bfd10524 16 AnalogIn v_out(p16);
yattu0914 0:2c21bfd10524 17 AnalogIn light_in(p15);
yattu0914 4:5872b6ac17e5 18 BMP085 bmp085(p28, p27);
yattu0914 6:3cc5c120fbe3 19 ADXL345_I2C accelerometer(p9, p10);
yattu0914 6:3cc5c120fbe3 20 Serial pc(USBTX, USBRX);
yattu0914 4:5872b6ac17e5 21
yattu0914 0:2c21bfd10524 22
yattu0914 0:2c21bfd10524 23 int main() {
yattu0914 0:2c21bfd10524 24
yattu0914 0:2c21bfd10524 25 float r_temp, temp;
yattu0914 5:9cfdae50349e 26 float vo,ax,ay,az, light,P,t;
yattu0914 1:6dc59f48b649 27
yattu0914 5:9cfdae50349e 28 FILE* fp = NULL;
yattu0914 6:3cc5c120fbe3 29 // fp = fopen("/local/CanSat.txt", "a");
yattu0914 1:6dc59f48b649 30 unsigned count = 0;
yattu0914 6:3cc5c120fbe3 31
yattu0914 6:3cc5c120fbe3 32
yattu0914 6:3cc5c120fbe3 33 int readings[3] = {0, 0, 0};
yattu0914 6:3cc5c120fbe3 34
yattu0914 6:3cc5c120fbe3 35
yattu0914 6:3cc5c120fbe3 36 // These are here to test whether any of the initialization fails. It will print the failure
yattu0914 6:3cc5c120fbe3 37 if (accelerometer.setPowerControl(0x00)){
yattu0914 6:3cc5c120fbe3 38 xbee.printf("didn't intitialize power control\n");
yattu0914 6:3cc5c120fbe3 39 return 0;
yattu0914 6:3cc5c120fbe3 40 }
yattu0914 6:3cc5c120fbe3 41 //Full resolution, +/-16g, 4mg/LSB.
yattu0914 6:3cc5c120fbe3 42 wait(.001);
yattu0914 6:3cc5c120fbe3 43
yattu0914 6:3cc5c120fbe3 44 if(accelerometer.setDataFormatControl(0x0B)){
yattu0914 6:3cc5c120fbe3 45 xbee.printf("didn't set data format\n");
yattu0914 6:3cc5c120fbe3 46 return 0; }
yattu0914 6:3cc5c120fbe3 47 wait(.001);
yattu0914 6:3cc5c120fbe3 48
yattu0914 6:3cc5c120fbe3 49 //3.2kHz data rate.
yattu0914 6:3cc5c120fbe3 50 if(accelerometer.setDataRate(ADXL345_3200HZ)){
yattu0914 6:3cc5c120fbe3 51 xbee.printf("didn't set data rate\n");
yattu0914 6:3cc5c120fbe3 52 return 0;
yattu0914 6:3cc5c120fbe3 53 }
yattu0914 6:3cc5c120fbe3 54 wait(.001);
yattu0914 6:3cc5c120fbe3 55
yattu0914 6:3cc5c120fbe3 56 //Measurement mode.
yattu0914 6:3cc5c120fbe3 57
yattu0914 6:3cc5c120fbe3 58 if(accelerometer.setPowerControl(MeasurementMode)) {
yattu0914 6:3cc5c120fbe3 59 xbee.printf("didn't set the power control to measurement\n");
yattu0914 6:3cc5c120fbe3 60 return 0;
yattu0914 6:3cc5c120fbe3 61 }
yattu0914 6:3cc5c120fbe3 62
yattu0914 4:5872b6ac17e5 63
yattu0914 4:5872b6ac17e5 64 //time_t epoch = 0;
yattu0914 0:2c21bfd10524 65
yattu0914 4:5872b6ac17e5 66 //fprintf(fp, "E %d \r", epoch);
yattu0914 3:37b076ff27a9 67 timer.start();
yattu0914 4:5872b6ac17e5 68
yattu0914 2:e093c70066d0 69 while(1){
yattu0914 3:37b076ff27a9 70 //epoch = time(NULL);
yattu0914 3:37b076ff27a9 71 float seconds = timer.read();
yattu0914 2:e093c70066d0 72 temp = temp_in;
yattu0914 2:e093c70066d0 73 vo = v_out/10*33;
yattu0914 2:e093c70066d0 74 ax = acc_x/10;
yattu0914 2:e093c70066d0 75 ay = acc_y/10;
yattu0914 2:e093c70066d0 76 az = acc_z/10;
yattu0914 2:e093c70066d0 77 light = light_in/10*33;
yattu0914 2:e093c70066d0 78 r_temp = temp_in * 3.3 * 100 ;
yattu0914 4:5872b6ac17e5 79 bmp085.update();
yattu0914 4:5872b6ac17e5 80 P = bmp085.get_pressure();
yattu0914 4:5872b6ac17e5 81 t = bmp085.get_temperature();
yattu0914 6:3cc5c120fbe3 82
yattu0914 4:5872b6ac17e5 83
yattu0914 4:5872b6ac17e5 84 if (fp != NULL) {
yattu0914 4:5872b6ac17e5 85 fprintf(fp, "S %f ", seconds);
yattu0914 4:5872b6ac17e5 86 fprintf(fp, "T %5.2f ",r_temp);
yattu0914 4:5872b6ac17e5 87 fprintf(fp, "H %5.2f ",(vo*8-6)/25);
yattu0914 4:5872b6ac17e5 88 fprintf(fp, "X %5.2f ",(ax*33-1.65)/0.66);
yattu0914 4:5872b6ac17e5 89 fprintf(fp, "Y %5.2f ",(ay*33-1.65)/0.66);
yattu0914 4:5872b6ac17e5 90 fprintf(fp, "Z %5.2f ",(az*33-1.65)/0.66);
yattu0914 4:5872b6ac17e5 91 fprintf(fp, "L %5.2f ",light);
yattu0914 4:5872b6ac17e5 92 fprintf(fp, "P %6.2f ", P);
yattu0914 4:5872b6ac17e5 93 fprintf(fp, "t %6.2f ", t);
yattu0914 6:3cc5c120fbe3 94 accelerometer.getOutput(readings);
yattu0914 6:3cc5c120fbe3 95 fprintf(fp,"%+4.2f, %+4.2f, %+4.2f",
yattu0914 6:3cc5c120fbe3 96 (float((int16_t)readings[0]+18)/256),
yattu0914 6:3cc5c120fbe3 97 (float((int16_t)readings[1]-4 )/256),
yattu0914 6:3cc5c120fbe3 98 (float((int16_t)readings[2]+22)/256));
yattu0914 6:3cc5c120fbe3 99
yattu0914 5:9cfdae50349e 100 fprintf(fp,"\n\r");
yattu0914 6:3cc5c120fbe3 101 // fclose(fp);
yattu0914 4:5872b6ac17e5 102 }//if
yattu0914 1:6dc59f48b649 103
yattu0914 5:9cfdae50349e 104 if (count % 10 == 0) {
yattu0914 3:37b076ff27a9 105 xbee.printf("S %f ", seconds);
yattu0914 2:e093c70066d0 106 xbee.printf("T %5.2f ",r_temp);
yattu0914 2:e093c70066d0 107 xbee.printf("H %5.2f ",((vo*8-6)/25));
yattu0914 6:3cc5c120fbe3 108 // xbee.printf("X %5.2f ",(ax*33-1.65)/0.66);
yattu0914 6:3cc5c120fbe3 109 // xbee.printf("Y %5.2f ",(ay*33-1.65)/0.66);
yattu0914 6:3cc5c120fbe3 110 // xbee.printf("Z %5.2f ",(az*33-1.65)/0.66);
yattu0914 6:3cc5c120fbe3 111 accelerometer.getOutput(readings);
yattu0914 6:3cc5c120fbe3 112 xbee.printf("X %+4.2f, Y %+4.2f, Z %+4.2f",
yattu0914 6:3cc5c120fbe3 113 (float((int16_t)readings[0]+18)/256),
yattu0914 6:3cc5c120fbe3 114 (float((int16_t)readings[1]-4 )/256),
yattu0914 6:3cc5c120fbe3 115 (float((int16_t)readings[2]+22)/256));
yattu0914 2:e093c70066d0 116 xbee.printf("L %5.2f",light);
yattu0914 4:5872b6ac17e5 117 xbee.printf("P %6.2f ", P);
yattu0914 4:5872b6ac17e5 118 xbee.printf("t %6.2f ", t);
yattu0914 2:e093c70066d0 119 xbee.printf("\n\r");
yattu0914 2:e093c70066d0 120 }//if
yattu0914 1:6dc59f48b649 121
yattu0914 2:e093c70066d0 122 ++count;
yattu0914 5:9cfdae50349e 123 wait(0.1);
yattu0914 2:e093c70066d0 124 }//while
yattu0914 5:9cfdae50349e 125 fclose(fp);
yattu0914 1:6dc59f48b649 126 }