Programa que utiliza el acelerometro por I2C, y envia la información por comunicacion serial de los valores x, y, z.

Dependencies:   mbed MMA8451Q

Committer:
marcospostemsky
Date:
Mon Oct 14 02:52:25 2019 +0000
Revision:
1:bcfd1e856c37
Parent:
0:0b798b845ac3
Elimino blue led, no existe en la placa kl46z

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcospostemsky 0:0b798b845ac3 1 #include "mbed.h"
marcospostemsky 0:0b798b845ac3 2 #include "MMA8451Q.h"
marcospostemsky 0:0b798b845ac3 3
marcospostemsky 0:0b798b845ac3 4 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
marcospostemsky 0:0b798b845ac3 5 PinName const SDA = PTE25;
marcospostemsky 0:0b798b845ac3 6 PinName const SCL = PTE24;
marcospostemsky 0:0b798b845ac3 7 #elif defined (TARGET_KL05Z)
marcospostemsky 0:0b798b845ac3 8 PinName const SDA = PTB4;
marcospostemsky 0:0b798b845ac3 9 PinName const SCL = PTB3;
marcospostemsky 0:0b798b845ac3 10 #elif defined (TARGET_K20D50M)
marcospostemsky 0:0b798b845ac3 11 PinName const SDA = PTB1;
marcospostemsky 0:0b798b845ac3 12 PinName const SCL = PTB0;
marcospostemsky 0:0b798b845ac3 13 #else
marcospostemsky 0:0b798b845ac3 14 #error TARGET NOT DEFINED
marcospostemsky 0:0b798b845ac3 15 #endif
marcospostemsky 0:0b798b845ac3 16
marcospostemsky 0:0b798b845ac3 17 #define MMA8451_I2C_ADDRESS (0x1d<<1)
marcospostemsky 0:0b798b845ac3 18
marcospostemsky 0:0b798b845ac3 19 Serial pc(USBTX, USBRX);
marcospostemsky 0:0b798b845ac3 20
marcospostemsky 0:0b798b845ac3 21 int main(void)
marcospostemsky 0:0b798b845ac3 22 {
marcospostemsky 0:0b798b845ac3 23 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
marcospostemsky 0:0b798b845ac3 24 PwmOut rled(LED2);
marcospostemsky 0:0b798b845ac3 25 PwmOut gled(LED1);
marcospostemsky 0:0b798b845ac3 26
marcospostemsky 0:0b798b845ac3 27 pc.baud(115200);
marcospostemsky 0:0b798b845ac3 28 pc.printf("Acelerometro con FRDM-K64F board.\n");
marcospostemsky 0:0b798b845ac3 29
marcospostemsky 0:0b798b845ac3 30
marcospostemsky 0:0b798b845ac3 31 pc.printf("El acelerometro utilizado se llama MMA8451 con ID: %d\n", acc.getWhoAmI());
marcospostemsky 0:0b798b845ac3 32
marcospostemsky 0:0b798b845ac3 33 while (true) {
marcospostemsky 0:0b798b845ac3 34 float x, y, z;
marcospostemsky 0:0b798b845ac3 35 x = abs(acc.getAccX());
marcospostemsky 0:0b798b845ac3 36 y = abs(acc.getAccY());
marcospostemsky 0:0b798b845ac3 37 z = abs(acc.getAccZ());
marcospostemsky 0:0b798b845ac3 38 rled = 1.0f - x;
marcospostemsky 0:0b798b845ac3 39 gled = 1.0f - y;
marcospostemsky 0:0b798b845ac3 40 wait(0.5f);
marcospostemsky 0:0b798b845ac3 41 pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
marcospostemsky 0:0b798b845ac3 42 }
marcospostemsky 0:0b798b845ac3 43 }