megan gimple / Mbed 2 deprecated gimple_A5_Accel

Dependencies:   mbed MMA8452Q SDSD

Committer:
mgimple
Date:
Tue Nov 16 15:24:46 2021 +0000
Revision:
1:bee807884a79
Parent:
0:d1f1b7e3b561
Child:
2:8e2c44115ce0
Analysis/Reaction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mgimple 0:d1f1b7e3b561 1 //Example Code for Accelerometer
mgimple 0:d1f1b7e3b561 2 //Can be used as a starting point for Assignment #5
mgimple 0:d1f1b7e3b561 3 //Stephen Licht
mgimple 0:d1f1b7e3b561 4 //Created 11/9/2021
mgimple 0:d1f1b7e3b561 5
mgimple 0:d1f1b7e3b561 6 #include "mbed.h"
mgimple 0:d1f1b7e3b561 7 #include "MMA8452Q.h"
mgimple 0:d1f1b7e3b561 8
mgimple 0:d1f1b7e3b561 9 //Define constants for timing of read and write:
mgimple 0:d1f1b7e3b561 10 #define READTIME 0.2
mgimple 0:d1f1b7e3b561 11 #define WRITETIME 1.0
mgimple 0:d1f1b7e3b561 12
mgimple 1:bee807884a79 13 DigitalOut Led1(LED1);
mgimple 1:bee807884a79 14 DigitalOut Led2(LED2);
mgimple 1:bee807884a79 15 DigitalOut Led3(LED3);
mgimple 0:d1f1b7e3b561 16 MMA8452Q accel(p28,p27,0x1D);
mgimple 0:d1f1b7e3b561 17 Serial pc(USBTX,USBRX);
mgimple 0:d1f1b7e3b561 18
mgimple 0:d1f1b7e3b561 19 Ticker accel_reading;
mgimple 0:d1f1b7e3b561 20 Timer serial_reporting;
mgimple 0:d1f1b7e3b561 21
mgimple 0:d1f1b7e3b561 22 float accX_g,accY_g,accZ_g;
mgimple 0:d1f1b7e3b561 23
mgimple 0:d1f1b7e3b561 24 void getAccelerometerValues()
mgimple 0:d1f1b7e3b561 25 {
mgimple 0:d1f1b7e3b561 26 accX_g = accel.readX();
mgimple 0:d1f1b7e3b561 27 accY_g = accel.readY();
mgimple 1:bee807884a79 28 accZ_g = accel.readZ();
mgimple 0:d1f1b7e3b561 29 }
mgimple 0:d1f1b7e3b561 30
mgimple 0:d1f1b7e3b561 31 int main()
mgimple 0:d1f1b7e3b561 32 {
mgimple 0:d1f1b7e3b561 33 //Initialize accelerometer:
mgimple 0:d1f1b7e3b561 34 accel.init();
mgimple 0:d1f1b7e3b561 35
mgimple 0:d1f1b7e3b561 36 //Start ticker to read accelerometer at 5Hz
mgimple 0:d1f1b7e3b561 37 accel_reading.attach(&getAccelerometerValues,READTIME);
mgimple 0:d1f1b7e3b561 38
mgimple 0:d1f1b7e3b561 39 //Begin serial write timer for the first time:
mgimple 0:d1f1b7e3b561 40 serial_reporting.start();
mgimple 0:d1f1b7e3b561 41
mgimple 0:d1f1b7e3b561 42 while(1) {
mgimple 0:d1f1b7e3b561 43 //Use a timer to manage writing to the serial port (approximate timing):
mgimple 0:d1f1b7e3b561 44 if(serial_reporting.read()>WRITETIME) {
mgimple 0:d1f1b7e3b561 45 serial_reporting.reset();
mgimple 0:d1f1b7e3b561 46 serial_reporting.start();
mgimple 0:d1f1b7e3b561 47 pc.printf("X,Y,Z [Gs]: %5.2f, %5.2f, %5.2f\r\n",accX_g,accY_g,accZ_g);
mgimple 1:bee807884a79 48 if (accX_g>accY_g && accX_g>accZ_g) {
mgimple 1:bee807884a79 49 Led1=1;
mgimple 1:bee807884a79 50 Led2=0;
mgimple 1:bee807884a79 51 Led3=0;
mgimple 1:bee807884a79 52 }
mgimple 1:bee807884a79 53 if (accY_g>accX_g && accX_g>accZ_g) {
mgimple 1:bee807884a79 54 Led1=0;
mgimple 1:bee807884a79 55 Led2=1;
mgimple 1:bee807884a79 56 Led3=0;
mgimple 1:bee807884a79 57 }
mgimple 1:bee807884a79 58 if (accZ_g>accX_g && accX_g>accY_g) {
mgimple 1:bee807884a79 59 Led1=0;
mgimple 1:bee807884a79 60 Led2=0;
mgimple 1:bee807884a79 61 Led3=1;
mgimple 1:bee807884a79 62 }
mgimple 0:d1f1b7e3b561 63 }
mgimple 0:d1f1b7e3b561 64 }
mgimple 1:bee807884a79 65
mgimple 1:bee807884a79 66 }