* Demonstrate the evaluation of BOSCH BMA020 acceleration sensor * View the values on LCD and in a special LabView App * Use of Demoboard from ELV (Best.-Nr. 91521) * Datasheets and Labview app: [[http://mbed.org/users/kriedel/notebook/sensorapplications/]]

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
kriedel
Date:
Wed Mar 16 11:17:05 2011 +0000
Commit message:

Changed in this revision

TextLCD_ST7036.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 865c8c06113f TextLCD_ST7036.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD_ST7036.lib	Wed Mar 16 11:17:05 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/kriedel/code/TextLCD_ST7036/#815abe961826
diff -r 000000000000 -r 865c8c06113f main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Mar 16 11:17:05 2011 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+
+I2C i2c(p9, p10);
+Serial pc(USBTX, USBRX); // tx, rx
+
+//LCD EA DOGM162x-A
+TextLCD lcd(p15, p16, p17, p18, p19, p21); // rs, e, d4-d7
+ 
+BusOut leds(LED1, LED2, LED3, LED4);
+
+int i;
+
+int main() {
+
+    char address;
+    short xvalue;
+    short yvalue;
+    short zvalue;
+    float f_xvalue,f_yvalue;
+        
+    char data[6];
+    
+    lcd.printf("Bosch BMA020\nAccelerometer");
+    
+    wait (2);
+    lcd.cls();
+        
+    while(1) {
+        
+        address = 0x70;             // write address
+        data[0] = 0x02;             // register address
+        i2c.write(address, data, 1);
+        address = 0x71;             // read address, read 6 bytes automatically
+        i2c.read(address, data, 6); 
+        
+        xvalue=data[0]>>6;
+        xvalue+=(short)data[1]<<2;
+        
+        yvalue=data[2]>>6;
+        yvalue+=(short)data[3]<<2;
+
+        zvalue=data[4]>>6;
+        zvalue+=(short)data[5]<<2;
+
+        pc.printf("%4d%4d%4d\n", xvalue, yvalue, zvalue); // write to serial port (9600 Baud)
+        
+        xvalue<<=6;
+        xvalue/=64;
+        f_xvalue=xvalue;
+        f_xvalue*=0.004;   
+        
+        yvalue<<=6;
+        yvalue/=64;
+        f_yvalue=yvalue;
+        f_yvalue*=0.004;     
+                                
+        lcd.locate(0,0);
+        lcd.printf("X=%+1.2f Y=%+1.2f", f_xvalue, f_yvalue);
+                
+        lcd.locate(0,1);
+        lcd.printf("                ");
+        if (data[1]<16)                     // visualize x value like spirit level device
+        {
+            lcd.locate(15-data[1],1);
+            lcd.printf("O");
+        }
+        
+        
+       
+        
+        if (data[2]&&0x01) leds = 1 << data[3]+2; // neue Daten?
+
+        wait (0.1);
+    }
+}
diff -r 000000000000 -r 865c8c06113f mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Mar 16 11:17:05 2011 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e