Projet proto (LCD + TERMINAL + EEPROM + 2 BTN)

Dependencies:   mbed ADXL345_I2C_my

Files at this revision

API Documentation at this revision

Comitter:
RobotManYt
Date:
Fri May 24 18:02:04 2019 +0000
Commit message:
Projet proto;

Changed in this revision

ADXL345_I2C.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.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 04ed5e9a74a4 ADXL345_I2C.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADXL345_I2C.lib	Fri May 24 18:02:04 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/Programmation/code/ADXL345_I2C_my/#d36db669ff1c
diff -r 000000000000 -r 04ed5e9a74a4 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri May 24 18:02:04 2019 +0000
@@ -0,0 +1,103 @@
+//#include "mbed.h"
+#include "ADXL345_I2C.h"
+
+ADXL345_I2C accelerometer(I2C_SDA, I2C_SCL);
+Serial pc(SERIAL_TX, SERIAL_RX);
+Ticker RAM;
+Timer temps;
+
+DigitalIn BTN(USER_BUTTON);
+DigitalIn BTNmode(PC_10);
+ 
+int data = 0, j = 0; 
+
+char X[157][64];
+uint8_t a, b;
+float XYZ[3]; 
+bool appui = false, Mode = false;
+
+void dataWrite(){
+    if(j == 0) pc.printf("Bouton appuye\n\r");
+    if(j < 10000 && appui){
+        X[a][b] = (char)XYZ[0];
+        if(b < 64){ // 
+            b++;    
+        }else{  // Page + 1; 
+            b = 0;
+            a++;    
+        }
+        j++;
+    }else if(appui){
+        pc.printf("Ecriture sur la EEPROM\n\r");
+        for(a = 0; a < 157; a++){
+            char data[66];
+            data[0] = 0;
+            data[1] = a;
+            for(b = 0; b < 64; b++){
+                data[b+2] = X[a][b];
+            }
+            accelerometer.writeEEPROM(data, 66);
+            wait(0.01);
+            pc.printf("%u : Donnee ecrite\n\r", a);
+        }
+        pc.printf("Ecriture fini\n\r");
+        j = 0;
+        RAM.detach();
+    }
+ }
+ 
+ int main() {
+    pc.baud(9600);
+    
+    int readings[3] = {0, 0, 0};
+     
+    pc.printf("\n\rStarting ADXL345 test...\n\r");
+    pc.printf("Device ID is: 0x%02x\n\r", accelerometer.getDeviceID());
+    
+    //******* Initialisation ADXL ********//
+    // These are here to test whether any of the initialization fails. It will print the failure
+    if (accelerometer.setPowerControl(0x00)){
+        return 0;  
+    }
+    wait(.001);
+     
+    if(accelerometer.setDataFormatControl(0x0B)){
+        pc.printf("didn't set data format\n\r");
+        return 0;  
+    }
+    wait(.001);
+     
+    //Measurement mode.
+     
+    if(accelerometer.setPowerControl(MeasurementMode)) {
+        pc.printf("didn't set the power control to measurement\n\r"); 
+        return 0;   
+    } 
+    //****** FIN INITIALISATION ********//
+ 
+    while (1) {
+        //wait(0.1);
+        if(!BTN){
+            appui = true;
+            RAM.attach(&dataWrite, 0.001);     
+        }
+        accelerometer.getOutput(readings);
+        XYZ[0] = readings[0] * 0.004;
+        XYZ[1] = readings[1] * 0.004;
+        XYZ[2] = readings[2] * 0.004;
+
+        accelerometer.LCDprint(XYZ[0], XYZ[1], XYZ[2]);   // À afficher sur LCD
+        //pc.printf("X: %.3fg |   Y: %.3fg        |   Z: %.3fg", XYZ[0],XYZ[1], XYZ[2]);      // Affichage sur un terminal plutot que sur LCD
+    
+        if(!BTNmode){
+             Mode = true;
+             temps.start();
+             pc.printf("Temps(s)    Accel X(g)      Accel Y(g)      Accel Z(g)");
+        }
+        
+        if(Mode){
+            pc.printf("%.3f     %.3f    %.3f    %.3f", temps.read(), XYZ[0], XYZ[1], XYZ[2]);
+        }
+    }
+}
+
diff -r 000000000000 -r 04ed5e9a74a4 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri May 24 18:02:04 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file