#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
#define led1 2
#define led2 3
#define led3 4
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true); //TRUE CALIBRAÇÃO AUTOMATICA.
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
mpu6050.update();
int eixoX= mpu6050.getAngleX();
int eixoY= mpu6050.getAngleY();
int eixoZ= mpu6050.getAngleZ();
float temp= mpu6050.getTemp();
//valormapeado
int Xmapeado=map(eixoX,-90,90,-10,10);
int Ymapeado=map(eixoY,-90,90,-10,10);
int Zmapeado=map(eixoZ,-90,90,-10,10);
/* Restringe os dados para valores de -250 a 250. */
int restritoX = constrain(Xmapeado, -15, 15);
int restritoY = constrain(Ymapeado, -15, 15);
int restritoZ = constrain(Zmapeado, -15, 15);
Serial.print("eixox: " + String(restritoX)+"°\t");
Serial.print("eixoy: " + String(restritoY)+"°\t");
Serial.print("eixoz: " + String(restritoZ)+"°\t");
Serial.print("temp.: " + String(temp,2)+"°C\n");
if(restritoX<=-7||restritoX>=7){
digitalWrite(led1, HIGH);
}else{
digitalWrite(led1, LOW);
}
if(restritoY<=-7||restritoY>=7){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
if(restritoZ<=-7||restritoZ>=7){
digitalWrite(led3, HIGH);
}else{
digitalWrite(led3, LOW);
}
}