#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;
    }
}