.

Dependencies:   SHT3XA mbed LIS3DH mbed-rtos USBDevice

Files at this revision

API Documentation at this revision

Comitter:
diogo966
Date:
Sun Dec 16 11:21:09 2018 +0000
Parent:
0:941291e23892
Commit message:
.

Changed in this revision

LIS3DH.lib Show annotated file Show diff for this revision Revisions of this file
SHT3XA.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 941291e23892 -r 323175fe9443 LIS3DH.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LIS3DH.lib	Sun Dec 16 11:21:09 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/diogo966/code/LIS3DH/#0175958d825d
diff -r 941291e23892 -r 323175fe9443 SHT3XA.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SHT3XA.lib	Sun Dec 16 11:21:09 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/teams/ClosedCube/code/SHT3XA/#8045a06a3e82
diff -r 941291e23892 -r 323175fe9443 main.cpp
--- a/main.cpp	Thu Aug 03 13:27:41 2017 +0000
+++ b/main.cpp	Sun Dec 16 11:21:09 2018 +0000
@@ -1,24 +1,171 @@
 #include "mbed.h"
 #include "USBSerial.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "math.h"
+#include "SHT3XA.h"
+#include "rtos.h"
 
-// Virtual USB Serial port
+I2C i2c(PB_9,PB_8);
+SHT3XA sht31a(PA_4);
+int Acel_Buffer[4];
+float Acel_value=0;
+int ddx = 1;
+char ccc;
+
 USBSerial usb_serial;
+DigitalOut led(LED3);
+DigitalOut led2(LED4);
+
+Thread thread;
+
+//GPS_Coordenates[80];
+// addr
+#define WRITE_ADDR 0x52
+#define READ_ADDR 0x53
+//   LIS3DH ID
+#define I_AM_LIS3DH         0x33
 
-DigitalOut led(LED1);
+//  Register's definition
+#define LIS3DH_STATUS_REG_AUX  0x07
+#define LIS3DH_OUT_ADC1_L      0x08
+#define LIS3DH_OUT_ADC1_H      0x09
+#define LIS3DH_OUT_ADC2_L      0x0a
+#define LIS3DH_OUT_ADC2_H      0x0b
+#define LIS3DH_OUT_ADC3_L      0x0c
+#define LIS3DH_OUT_ADC3_H      0x0d
+#define LIS3DH_INT_COUNTER_REG 0x0e
+#define LIS3DH_WHO_AM_I        0x0f
+#define LIS3DH_TEMP_CFG_REG    0x1f
+#define LIS3DH_CTRL_REG1       0x20
+#define LIS3DH_CTRL_REG2       0x21
+#define LIS3DH_CTRL_REG3       0x22
+#define LIS3DH_CTRL_REG4       0x23
+#define LIS3DH_CTRL_REG5       0x24
+#define LIS3DH_CTRL_REG6       0x25
+#define LIS3DH_REFERENCE       0x26
+#define LIS3DH_STATUS_REG2     0x27
+#define LIS3DH_OUT_X_H         0x29
+#define LIS3DH_OUT_Y_H         0x2b
+#define LIS3DH_OUT_Z_H         0x2d
+#define LIS3DH_FIFO_CTRL_REG   0x2e
+#define LIS3DH_FIFO_SRC_REG    0x2f
+#define LIS3DH_INT1_CFG        0x30
+#define LIS3DH_INT1_SOURCE     0x31
+#define LIS3DH_INT1_THS        0x32
+#define LIS3DH_INT1_DURATION   0x33
+#define LIS3DH_CLICK_CFG       0x38
+#define LIS3DH_CLICK_SRC       0x39
+#define LIS3DH_CLICK_THS       0x3a
+#define LIS3DH_TIME_LIMIT      0x3b
+#define LIS3DH_TIME_LATENCY    0x3c
+#define LIS3DH_TIME_WINDOW     0x3d
 
-int main(void)
-{
-    int i = 0;
+// definition for Nomalization
+#define LIS3DH_SENSITIVITY_2G  (0.001F)
+#define LIS3DH_SENSITIVITY_4G  (0.002F)
+#define LIS3DH_SENSITIVITY_8G  (0.004F)
+#define LIS3DH_SENSITIVITY_16G (0.012F)
+
+
+#define GRAVITY (9.80665F)
 
-    // Print on STDIO
-    printf("USBDevice Serial started\r\n");
-
-    while(1) {
+void main_thread(){
+    char dbf[2],addr,data[6];
+    float dt[3],acc[2][3],a,b,c,d;
+    int xx=0;
+    addr = WRITE_ADDR;
+    dbf[0] = LIS3DH_WHO_AM_I;
+    i2c.write(addr, dbf, 1);
+    i2c.read(addr | 1, dbf, 1);
+    led2=1;
+    if(dbf[0] == I_AM_LIS3DH) {
+       
+        //
+        while(1){
+        for(int i=0; i<12;i++) {
+            
+            dbf[0] = LIS3DH_CTRL_REG1;
+            dbf[1] = 0x27; //ORIGINAL 0x7f
+            i2c.write(addr , dbf , 2);
+//======================================================//
+            dbf[0] = LIS3DH_OUT_X_H | 0x80;
+            //dbf[1] = 0xff; 
+            i2c.write(addr, dbf, 1);
+            
+            dbf[0] = LIS3DH_OUT_Y_H | 0x80;
+            i2c.write(addr, dbf, 1);
+            
+            dbf[0] = LIS3DH_OUT_Z_H | 0x80;
+            i2c.write(addr, dbf, 1);
+            
+            i2c.read(addr | 1, data, 6);
+            dt[0] = float(short((data[1]<<8) | data[0])) *LIS3DH_SENSITIVITY_16G  / 15 * GRAVITY;
+            dt[1] = float(short((data[3]<<8) | data[2])) *LIS3DH_SENSITIVITY_16G  / 15 * GRAVITY;
+            dt[2] = float(short((data[5]<<8) | data[4])) *LIS3DH_SENSITIVITY_16G  / 15 * GRAVITY;
+            
+            acc[xx][0] = dt[0];
+            acc[xx][1] = dt[1];
+            acc[xx][2] = dt[2];
+            if (xx == 0){
+                xx=1;
+                }
+            else{
+                xx =0;
+                }
+            a = (acc[1][0]-acc[0][0])*(acc[1][0]-acc[0][0]);
+            b = (acc[1][1]-acc[0][1])*(acc[1][1]-acc[0][1]);
+            c = (acc[1][2]-acc[0][2])*(acc[1][2]-acc[0][2]);
+            d = sqrt(a+b+c);
+            wait(5);
+            //usb_serial.printf("x -> %f y -> %f z -> %f\r\n",dt[0],dt[1],dt[2]);
+            usb_serial.printf("Acelaration -> %f\r\n",d);
+            
+            if (d < 0.5){
+                Acel_value++;
+                }
+            else{
+                Acel_value = 0;
+                
+                }
+                
+            if (Acel_value == 4){
+                    while(1){
+                    led2=0;
+                    wait(0.5);
+                    led2 = 1;
+                    }
+                }
+            
+            led = 0;
+            wait(0.5);
+            led = 1;
+            wait(5);
+            
+            usb_serial.printf("Temperature -> %f\r\n",sht31a.readTempC());
+            if (sht31a.readTempC() > 35){
+                while(1){
+                    led2=0;
+                    wait(0.5);
+                    led2 = 1;
+                    }
+                }
+            
+            led = 0;
+            wait(0.5);
+            led = 1;
 
-        // Print on Virtual USB Serial port
-        usb_serial.printf("I am a virtual serial port: %d\r\n", i++);
+
+        }
+    }
+   } 
+    
+    }
 
-        led = !led;
-        wait(0.1);
-    }
+
+
+int main() {
+    
+  thread.start(main_thread);   
+    
 }
diff -r 941291e23892 -r 323175fe9443 mbed-os.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os.lib	Sun Dec 16 11:21:09 2018 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/mbed-os.git/#4e222952d757e378d5a591ca7fd143dcda24fc7e
diff -r 941291e23892 -r 323175fe9443 mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Sun Dec 16 11:21:09 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed-rtos/#5713cbbdb706