Acelerómetro integrado en la tarjeta, se visualiza las coordenadas X, Y y Z en una pantalla LCD 16x2.

Dependencies:   MMA8451Q mbed

/media/uploads/Wilmar87/img_4026.jpg /media/uploads/Wilmar87/img_4030.jpg

main.cpp

Committer:
Wilmar87
Date:
2013-12-13
Revision:
0:a77e50ca84d1

File content as of revision 0:a77e50ca84d1:

#include "mbed.h"
#include "MMA8451Q.h"
#include "TextLCD.h"
#define MMA8451_I2C_ADDRESS (0x1d<<1)
 
TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); //------Puertos LCD rs, e, d4, d5, d6, d7


  //Códigos LCD
int C1=0x0E;                //------ Muestra el cursor

float x, y, z;  //----- Coordenadas

int main(void) {
MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
PwmOut led1(LED1);
PwmOut led2(LED2);
PwmOut led3(LED3);
 
    led1=led2=led3=1;
    lcd.printf("**ACELEROMETRO**");
    wait(1.5);
    lcd.cls();
    
    //lcd.writeCommand(C1);//comando para mostrar el cursor en el LCD                   
    lcd.locate(4,0);       // Ubica e imprime nombre de las variables en la LCD
    lcd.printf("EX=");
    lcd.locate(0,1);
    lcd.printf("EY=");
    lcd.locate(9,1);
    lcd.printf("EZ=");
    wait(2);

            while(1) {
                
                x=led1 = 1.0 - abs(acc.getAccX());
                y=led2 = 1.0 - abs(acc.getAccY());
                z=led3 = 1.0 - abs(acc.getAccZ());
                
                lcd.locate(6,0);
                lcd.printf("    ");
                lcd.locate(4,0);
                lcd.printf("EX=%0.2f",x);
                lcd.locate(2,1);
                lcd.printf("    ");
                lcd.locate(0,1);
                lcd.printf("EY=%0.2f",y);
                lcd.locate(11,1);
                lcd.printf("     ");
                lcd.locate(9,1);
                lcd.printf("EZ=%0.2f",z);
                wait(0.1);
            }
        }