valve measurement board

Dependencies:   mbed ads1115_test SDFileSystem

Revision:
0:cb9da8306a40
Child:
1:655abe8ab309
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Oct 18 13:51:47 2020 +0000
@@ -0,0 +1,88 @@
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+#include "Adafruit_ADS1015.h"
+
+#define ADS1115_ADDR 0b1001000
+
+#define TEMP_LSB 0.0625f
+
+//Serial pc(USBTX, USBRX, 115200);
+
+I2C i2c(p9, p10);
+
+Adafruit_ADS1115 ads1115(&i2c, ADS1115_ADDR);
+
+SDFileSystem sd(p5, p6, p7, p8, "sd");
+
+SPI TempK(p5, p6, p7);
+
+DigitalOut led1(LED1);
+
+DigitalOut ss1(p19);
+DigitalOut ss2(p20);
+
+Timer timer;
+Timer sd_timer;
+
+FILE *fp;
+
+char file_name[64];
+
+int press_bit1, press_bit2;
+float temp1, temp2;
+
+int main()
+{
+    timer.start();
+    uint16_t data[2];
+    ads1115.setGain(GAIN_TWOTHIRDS);
+    TempK.format(16, 0);
+    TempK.frequency(5000000);
+
+    char file_name_format[] = "/sd/IZU2020_VALVE_MEASUREMENT_%d.dat";
+    int file_number = 1;
+    while(1) {
+        sprintf(file_name, file_name_format, file_number);
+        fp = fopen(file_name, "r");
+        if(fp != NULL) {
+            fclose(fp);
+            file_number++;
+        } else {
+            sprintf(file_name, file_name_format, file_number);
+            break;
+        }
+    }
+    fp = fopen(file_name, "w");
+    sd_timer.start();
+
+    while(1) {
+
+        press_bit1 = ads1115.readADC_SingleEnded(1);
+        press_bit2 = ads1115.readADC_SingleEnded(3);
+
+        ss1 = 0;
+        data[0] = TempK.write(0x00);
+        data[1] = TempK.write(0x00);
+        ss1 = 1;
+        data[0] &= 0xfffc;
+        temp1 = (float)((int16_t)data[0]) * TEMP_LSB;
+
+        ss2 = 0;
+        data[0] = TempK.write(0x00);
+        data[1] = TempK.write(0x00);
+        ss2 = 1;
+        data[0] &= 0xfffc;
+        temp2 = (float)((int16_t)data[0]) * TEMP_LSB;
+
+        //pc.printf("%d\t%d\t%d\t%f\t%f\r\n", timer.read_ms(), press_bit1, press_bit2, temp1, temp2);
+        fprintf(fp, "%d\t%d\t%d\t%f\t%f\r\n", timer.read_ms(), press_bit1, press_bit2, temp1, temp2);
+
+        if(sd_timer.read_ms() > 20*1000) {
+            if(fp) {
+                fclose(fp);
+                fp = fopen(file_name, "a");
+            }
+        }
+    }
+}
\ No newline at end of file