![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
-blinking LEDs using push button -motion sensor detection and printing to uart
main.cpp
- Committer:
- rakeshravula
- Date:
- 2018-06-17
- Revision:
- 0:dc6b1f4adb5a
- Child:
- 1:3cded0feb65d
File content as of revision 0:dc6b1f4adb5a:
#include "mbed.h" #include "LIS3DSH.h" DigitalOut myledG(PD_12); DigitalOut myledO(PD_13); DigitalOut myledR(PD_14); DigitalOut myledB(PD_15); InterruptIn button(PA_0); Serial uart(PC_6,PC_7); LIS3DSH acc(PA_7, PA_6, PA_5, PE_3); char buttondetect = 0; void buttonIsr() { buttondetect = 1; } int main() { uart.baud(9600); button.fall(&buttonIsr); int16_t X, Y, Z; //signed integer variables for raw X,Y,Z values float roll, pitch; //float variables for angles if(acc.Detect() != 1) { uart.printf("LIS3DSH Acceleromoter not detected!\n"); while(1){ }; } while(1) { wait(0.5); static char counter = 0; acc.ReadData(&X, &Y, &Z); //read X, Y, Z values acc.ReadAngles(&roll, &pitch); //read roll and pitch angles uart.printf("X: %d Y: %d Z: %d\n", X, Y, Z); uart.printf("Roll: %f Pitch: %f\n", roll, pitch); if(buttondetect){ buttondetect = 0; switch(counter){ case 0: myledG = !myledG; break; case 1: myledO = !myledO; break; case 2: myledR = !myledR; break; case 3: myledB = !myledB; break; } counter++; if(counter >= 4) counter =0; // wait(0.5); } } }