#include // Must include Wire library for I2C #include // Includes the SFE_MMA8452Q library #include MMA8452Q accel; LiquidCrystal_I2C lcd(0x27, 16,2); void setup() { Serial.begin(9600); Serial.println("MMA8452Q Test Code!"); accel.init(); lcd.begin(); lcd.setCursor(0,0); lcd.print("Fablab Kamakura"); delay(1000); lcd.setCursor(0,1); lcd.print("Setyawan UGM"); delay(3000); lcd.clear(); } void loop() { if (accel.available()) { accel.read(); printCalculatedAccels(); printOrientation(); Serial.println(); // Print new line every time. } } void printAccels() { Serial.print(accel.x, 3); Serial.print("\t"); Serial.print(accel.y, 3); Serial.print("\t"); Serial.print(accel.z, 3); Serial.print("\t"); } void printCalculatedAccels() { Serial.print(accel.cx, 3); Serial.print("\t"); Serial.print(accel.cy, 3); Serial.print("\t"); Serial.print(accel.cz, 3); Serial.print("\t"); } // This function demonstrates how to use the accel.readPL() // function, which reads the portrait/landscape status of the // sensor. void printOrientation() { // accel.readPL() will return a byte containing information // about the orientation of the sensor. It will be either // PORTRAIT_U, PORTRAIT_D, LANDSCAPE_R, LANDSCAPE_L, or // LOCKOUT. byte pl = accel.readPL(); lcd.clear(); switch (pl) { case PORTRAIT_U: Serial.print("Portrait Up"); lcd.setCursor(0,0); lcd.print("Position:"); lcd.setCursor(0,1); lcd.print("Portrait Up"); delay(200); break; case PORTRAIT_D: Serial.print("Portrait Down"); lcd.setCursor(0,0); lcd.print("Position:"); lcd.setCursor(0,1); lcd.print("Portrait Down"); delay(200); break; case LANDSCAPE_R: Serial.print("Landscape Right"); lcd.setCursor(0,0); lcd.print("Position:"); lcd.setCursor(0,1); lcd.print("Landscape Right"); delay(200); break; case LANDSCAPE_L: Serial.print("Landscape Left"); lcd.setCursor(0,0); lcd.print("Position:"); lcd.setCursor(0,1); lcd.print("Landscape Left"); delay(200); break; case LOCKOUT: Serial.print("Flat"); lcd.setCursor(0,0); lcd.print("Position:"); lcd.setCursor(0,1); lcd.print("Flat"); delay(200); break; } }