Acelerómetro: This program shows the coordinate axis (X,Y,Z) when you move the card FRDM KL25Z in all the directions

Dependencies:   MMA8451Q TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MMA8451Q.h" // libreria del acelerometro
00003 #include "TextLCD.h"0
00004 #define MMA8451_I2C_ADDRESS (0x1d<<1) 
00005  
00006 int main(void) {
00007     TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
00008     MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); // puerto del acelerometro
00009     PwmOut rled(LED_RED); // se declara como PWM para  la asignacion de valores intermedios
00010     PwmOut gled(LED_GREEN);
00011     PwmOut bled(LED_BLUE);
00012  
00013     while (true) {
00014         lcd.locate(0,0);lcd.printf("      "); // Posiciones de las pantallas
00015         lcd.locate(0,0);lcd.printf("X=%g",acc.getAccX());// 
00016         lcd.locate(8,0);lcd.printf("    ");
00017         lcd.locate(8,0);lcd.printf("Y=%g",acc.getAccY());
00018         lcd.locate(0,1);lcd.printf("    ");
00019         lcd.locate(0,1);lcd.printf("Z=%g",acc.getAccZ());
00020         rled = 1.0 - abs(acc.getAccX());// obtención de las coordenadas
00021         gled = 1.0 - abs(acc.getAccY());// obtención de las coordenadas
00022         bled = 1.0 - abs(acc.getAccZ());// obtención de las coordenadas
00023         
00024         wait(0.3);
00025     }
00026 }
00027