Nucleo_L432_OLED_ADC

Dependencies:   Adafruit_GFX mbed

Revision:
5:e4f8eaef10c6
Parent:
4:573208af69ba
--- a/main.cpp	Thu Oct 27 13:35:03 2016 +0000
+++ b/main.cpp	Fri Jun 02 00:27:26 2017 +0000
@@ -1,21 +1,18 @@
 #include "mbed.h"
-#include "Adafruit_SSD1306.h"
+//#include "Adafruit_SSD1306.h"
 //------------------------------------
 // Hyperterminal configuration
 // 9600 bauds, 8-bit data, no parity
 //------------------------------------
+// SSD1306 OLED AND Nucleo L432KC
 
-// SSD1306 OLED AND Nucleo L432KC
-// 2016.10.23
-// 2016.10.23 changed
-#define offset_voltage 1570
-#define sensitivity 330
-Serial pc(SERIAL_TX, SERIAL_RX);
-
-DigitalOut myled(LED3);
-AnalogIn adc1(A0);
-AnalogIn adc2(A1);
-AnalogIn adc3(A5);
+#define Number 2048
+#define XS 0.3235
+#define YS 0.3235
+#define ZS 0.3200
+#define XB 1.5675
+#define YB 1.5465
+#define ZB 1.6100
 
 #define DO A4
 #define DI A6
@@ -23,17 +20,27 @@
 #define DC D11
 #define RST D7
 
-class SPIPreInit : public SPI
-{
-public:
-    SPIPreInit(PinName mosi, PinName miso, PinName clk) : SPI(mosi,miso,clk) {
-        format(8,3);
-        frequency(2000000);
-    };
-};
+Serial pc(SERIAL_TX, SERIAL_RX);
+DigitalOut myled(LED3);
+AnalogIn adc1(A0);
+AnalogIn adc2(A1);
+AnalogIn adc3(A5);
+float xa[Number],ya[Number],za[Number];
+
+
 
-SPIPreInit mySpi(DI,NC,DO);
-Adafruit_SSD1306_Spi oled(mySpi,DC,RST,CS,64,128);
+//
+//class SPIPreInit : public SPI
+//{
+//public:
+//    SPIPreInit(PinName mosi, PinName miso, PinName clk) : SPI(mosi,miso,clk) {
+//        format(8,3);
+//        frequency(2000000);
+//    };
+//};
+//
+//SPIPreInit mySpi(DI,NC,DO);
+//Adafruit_SSD1306_Spi oled(mySpi,DC,RST,CS,64,128);
 
 
 
@@ -42,25 +49,38 @@
     int x=0;
 
 
-    oled.clearDisplay();
-    oled.setTextSize(2);
+//    oled.clearDisplay();
+//    oled.setTextSize(2);
+
     while(1) {
-        x++;
-        oled.printf("X %2.2lf g\r\n",double(adc1.read()*3300-offset_voltage)/sensitivity);
-        oled.printf("Y %2.2lf g\r\n",double(adc2.read()*3300-offset_voltage)/sensitivity);
-        oled.printf("Z %2.2lf g\r\n",double(adc3.read()*3300-offset_voltage)/sensitivity);
+
+//        oled.printf("X %2.2lf g\r\n",double(adc1.read()*3300-offset_voltage)/sensitivity);
+//        oled.printf("Y %2.2lf g\r\n",double(adc2.read()*3300-offset_voltage)/sensitivity);
+//        oled.printf("Z %2.2lf g\r\n",double(adc3.read()*3300-offset_voltage)/sensitivity);
+//        oled.display();
+
+        wait_us(500);
+
+        xa[x]=adc1.read()*3300/1000;
+        ya[x]=adc2.read()*3300/1000;
+        za[x]=adc3.read()*3300/1000;
 
-        oled.display();
-        wait(0.5);
+        x++;
+        myled = !myled;
+
+        if(x>=Number) {
 
-        pc.printf("X %2.3f V\r\n", adc1.read()*3300/1000);
-        pc.printf("Y %2.3f V\r\n", adc2.read()*3300/1000);
-        pc.printf("Z %2.3f V\r\n", adc3.read()*3300/1000);
+            myled = !myled;
+            int c=0;
+            while(c++<1) {
 
-//  myled = !myled;
-        if(x>0) {
-            oled.setTextCursor(0,0);
-            oled.clearDisplay();
+                pc.printf("X %2.3f g\r\n", (xa[c]-XB)/XS);
+                pc.printf("Y %2.3f g\r\n", (ya[c]-YB)/YS);
+                pc.printf("Z %2.3f g\r\n", (za[c]-ZB)/ZS);
+                pc.printf("-----------------\r\n");
+
+                wait(2);
+            }
             x=0;
         }
     }