Sehr, sehr einfacher Fitness Tracker unter Zuhilfename eines 3 Lagen Sensors

Dependencies:   MMA8451Q SLCD mbed

main.cpp

Committer:
marcel1691
Date:
2016-01-27
Revision:
1:2f3874d539dd
Parent:
0:236e405a257c

File content as of revision 1:2f3874d539dd:

/** KL64Z Fitness Tracker
 *  Sehr, sehr einfacher Fitness Tracker unter Zuhilfename eines 3 Lagen Sensors
 */
#include "mbed.h"
#include "MMA8451Q.h"
#include "SLCD.h"

#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
  PinName const SDA = PTE25;
  PinName const SCL = PTE24;
#elif defined (TARGET_KL05Z)
  PinName const SDA = PTB4;
  PinName const SCL = PTB3;
#elif defined (TARGET_K20D50M)
  PinName const SDA = PTB1;
  PinName const SCL = PTB0;
#else
  #error TARGET NOT DEFINED
#endif

#define MMA8451_I2C_ADDRESS (0x1d<<1)

// Display
SLCD lcd;
// Anzahl Schritte
long step = 0;
// letzte Z Lage
float last;
// Schwellenwerte
float min = -0.2;
float max = 0.2;


int main(void)
{
    MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
    lcd.clear();

    printf("MMA8451 ID: %d\n", acc.getWhoAmI());

    while (true) 
    {
        float x, y, z;
        x = acc.getAccX();
        y = acc.getAccY();
        z = acc.getAccZ();
        wait( 0.2f );
        printf( "X: %1.2f, Y: %1.2f, Z: %1.2f, step: %d\n", x, y, z, step );
        
        if  ( z > max && last < min )
            step++;
        
        lcd.Home();
        lcd.printf( "%4d", step );
        last = z;
    }
}