#include <Stepper.h>
#include <MPU6050_tockn.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
MPU6050 mpu6050(Wire);
const int stepsPerRevolution = 400;
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);
float angulo1 = 0.0;
float angulo2 = 0.0;
float paso_motor = 0.0;
long timer = 0;
void setup() {
Serial.begin(115200);
Wire.begin();
myStepper.setSpeed(1000);
mpu6050.begin();
mpu6050.calcGyroOffsets(true);
lcd.init(); //Inicia pantalla
lcd.backlight(); //Iluminacion led pantalla
lcd.setCursor(0,0); //Cursor en posición 0,0 (columna,fila)
lcd.print("Angulo gyro:");
}
void loop() {
mpu6050.update();
if (millis()-timer > 50){
angulo1 = mpu6050.getGyroAngleX();
if (abs(angulo1-angulo2)>0.9) {
paso_motor =(angulo1-angulo2) * (stepsPerRevolution/360);
myStepper.step(paso_motor);
angulo2 = angulo1;
}
lcd.setCursor(0,1);
lcd.print(angulo1);
lcd.print(" ");
timer = millis();
}
}