Test program for testing the ADXL345 Brake Outbeard
Dependencies: ADXL345 TextLCD mbed
main.cpp@0:6b905abf1374, 2014-03-31 (annotated)
- Committer:
- Tuxitheone
- Date:
- Mon Mar 31 19:09:14 2014 +0000
- Revision:
- 0:6b905abf1374
Test program for testing the ADXL345 brake outboard.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Tuxitheone | 0:6b905abf1374 | 1 | #include "mbed.h" |
Tuxitheone | 0:6b905abf1374 | 2 | #include "ADXL345.h" |
Tuxitheone | 0:6b905abf1374 | 3 | #include "TextLCD.h" |
Tuxitheone | 0:6b905abf1374 | 4 | |
Tuxitheone | 0:6b905abf1374 | 5 | ADXL345 accelerometer(p5, p6, p7, p8); // (SDA, SDO, SCL, CS); |
Tuxitheone | 0:6b905abf1374 | 6 | Serial pc(USBTX, USBRX); //For raw data |
Tuxitheone | 0:6b905abf1374 | 7 | TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD16x2); // rs, e, d4-d7 |
Tuxitheone | 0:6b905abf1374 | 8 | |
Tuxitheone | 0:6b905abf1374 | 9 | float x,y,z; |
Tuxitheone | 0:6b905abf1374 | 10 | |
Tuxitheone | 0:6b905abf1374 | 11 | |
Tuxitheone | 0:6b905abf1374 | 12 | int main() |
Tuxitheone | 0:6b905abf1374 | 13 | { |
Tuxitheone | 0:6b905abf1374 | 14 | |
Tuxitheone | 0:6b905abf1374 | 15 | int readings[3] = {0, 0, 0}; |
Tuxitheone | 0:6b905abf1374 | 16 | |
Tuxitheone | 0:6b905abf1374 | 17 | lcd.cls(); |
Tuxitheone | 0:6b905abf1374 | 18 | lcd.printf("Starting ADXL345 test...\n"); |
Tuxitheone | 0:6b905abf1374 | 19 | lcd.printf("Device ID is: 0x%02x\n", accelerometer.getDevId()); |
Tuxitheone | 0:6b905abf1374 | 20 | pc.printf("Starting ADXL345 test...\n"); |
Tuxitheone | 0:6b905abf1374 | 21 | pc.printf("Device ID is: 0x%02x\n", accelerometer.getDevId()); |
Tuxitheone | 0:6b905abf1374 | 22 | |
Tuxitheone | 0:6b905abf1374 | 23 | //Go into standby mode to configure the device. |
Tuxitheone | 0:6b905abf1374 | 24 | accelerometer.setPowerControl(0x00); |
Tuxitheone | 0:6b905abf1374 | 25 | |
Tuxitheone | 0:6b905abf1374 | 26 | //Full resolution, +/-4g, 3.9mg/LSB. |
Tuxitheone | 0:6b905abf1374 | 27 | accelerometer.setDataFormatControl(0x0B); |
Tuxitheone | 0:6b905abf1374 | 28 | |
Tuxitheone | 0:6b905abf1374 | 29 | //3.2kHz data rate. |
Tuxitheone | 0:6b905abf1374 | 30 | accelerometer.setDataRate(ADXL345_3200HZ); |
Tuxitheone | 0:6b905abf1374 | 31 | |
Tuxitheone | 0:6b905abf1374 | 32 | //Measurement mode. |
Tuxitheone | 0:6b905abf1374 | 33 | accelerometer.setPowerControl(0x08); |
Tuxitheone | 0:6b905abf1374 | 34 | |
Tuxitheone | 0:6b905abf1374 | 35 | while (1) { |
Tuxitheone | 0:6b905abf1374 | 36 | |
Tuxitheone | 0:6b905abf1374 | 37 | wait(0.1); //Intaval |
Tuxitheone | 0:6b905abf1374 | 38 | |
Tuxitheone | 0:6b905abf1374 | 39 | accelerometer.getOutput(readings); |
Tuxitheone | 0:6b905abf1374 | 40 | |
Tuxitheone | 0:6b905abf1374 | 41 | x=(int16_t)readings[0]; |
Tuxitheone | 0:6b905abf1374 | 42 | x=x*4e-3; |
Tuxitheone | 0:6b905abf1374 | 43 | y=(int16_t)readings[1]; |
Tuxitheone | 0:6b905abf1374 | 44 | y=y*4e-3; |
Tuxitheone | 0:6b905abf1374 | 45 | z=(int16_t)readings[2]; |
Tuxitheone | 0:6b905abf1374 | 46 | z=z*4e-3; |
Tuxitheone | 0:6b905abf1374 | 47 | |
Tuxitheone | 0:6b905abf1374 | 48 | //13-bit, sign extended values. |
Tuxitheone | 0:6b905abf1374 | 49 | lcd.cls(); |
Tuxitheone | 0:6b905abf1374 | 50 | lcd.printf("%.1f, %.1f, %.1f\n", x,y,z); //Convertet to G |
Tuxitheone | 0:6b905abf1374 | 51 | lcd.printf(" X Y Z "); |
Tuxitheone | 0:6b905abf1374 | 52 | pc.printf("%i, %i, %i\n\r", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]); //Raw data |
Tuxitheone | 0:6b905abf1374 | 53 | |
Tuxitheone | 0:6b905abf1374 | 54 | } |
Tuxitheone | 0:6b905abf1374 | 55 | |
Tuxitheone | 0:6b905abf1374 | 56 | } |