#include "Wire.h"
#include "MPU6050.h"
#include "Servo.h"
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
Servo a;
Servo b;
Servo a2;
Servo b2;
int vala;
int prevVala;
int vala2;
int prevVala2;
int valb;
int prevValb;
int valb2;
int prevValb2;
void setup()
{
Wire.begin();
Serial.begin(38400);
Serial.println("Initialize MPU");
mpu.initialize();
Serial.println(mpu.testConnection() ? "гироскоп активен" : "гироскоп не актвен");
a.attach(9);
b.attach(10);
a2.attach(11);
b2.attach(8);
}
void loop()
{
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
vala = map(gx, -32750, 32750, 180, 0) + map(gz, -17000, 17000, 40, -40);
if (vala != prevVala)
{
a.write(vala);
prevVala = vala;
}
valb = map(gy, -32750, 32750, 180, 0) + map(gz, -17000, 17000, 40, -40);
if (valb != prevValb)
{
b.write(valb);
prevValb = valb;
}
vala2 = map(gx, -32750, 32750, 180, 0) + map(gz, -17000, 17000, 40, -40);
if (vala2 != prevVala2)
{
a2.write(vala);
prevVala2 = vala2;
}
valb2 = map(gy, -32750, 32750, 180, 0) + map(gz, -17000, 17000, 40, -40);
if (valb2 != prevValb2)
{
b2.write(valb2);
prevValb2 = valb2;
}
}