#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define RETARDO 500
const int DIR_SENSOR_I2C = 0x68;
const int DIR_SENSOR_TMP = 0x41;
void setup() {
Wire.begin(); // Inicializamos I2C
Wire.beginTransmission(DIR_SENSOR_I2C); // Comunicación con sensor
Wire.write(0x6B); // Dirección registro control
Wire.write(0); // Activa acelerómetro
Wire.endTransmission(true); // Fin comunicación
lcd.begin(16, 2);
}
void loop() {
int16_t acelX, acelY, acelZ, temp_val; // Variables para las aceleraciones
Wire.beginTransmission(DIR_SENSOR_I2C); // Comunicación con sensor
Wire.write(0x3B); // Dirección inicio mediciones
Wire.endTransmission(false); // Inicio comunicación
Wire.requestFrom(DIR_SENSOR_I2C, 6, true); // Lee 6 bytes
acelX = Wire.read() * 256 + Wire.read(); // Eje X (0x3B y 0x3C)
acelY = Wire.read() * 256 + Wire.read(); // Eje Y (0x3D y 0x3E)
acelZ = Wire.read() * 256 + Wire.read(); // Eje > (0x3F y 0x40)
// print las aceleraciones
lcd.setCursor(0, 0);
lcd.print("X:");
lcd.setCursor(2,0);
lcd.print(acelX);
lcd.setCursor(8, 0);
lcd.print("Y:");
lcd.setCursor(10,0);
lcd.print(acelY);
lcd.setCursor(0, 1);
lcd.print("Z:");
lcd.setCursor(2,1);
lcd.print(acelZ);
delay(RETARDO);
}