#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
float t;
float delta_time;
void setup() {
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
delay(100);
mpu.begin();
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
delta_time = 0;
t = (millis() / 1000.f);
}
float rot_x = 0; // radians
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
delta_time = (millis() / 1000.f) - t;
t = (millis() / 1000.f);
rot_x += g.gyro.x * delta_time;
Serial.println(rot_x / PI * 180);
float val0 = max(cos(rot_x), 0);
float val1 = max(sin(rot_x), 0);
float val2 = max(-cos(rot_x), 0);
float val3 = max(-sin(rot_x), 0);
analogWrite(3, (int)(val0 * val0 * 255));
analogWrite(5, (int)(val1 * val1 * 255));
analogWrite(6, (int)(val2 * val2 * 255));
analogWrite(9, (int)(val3 * val3 * 255));
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
imu1:INT
imu1:AD0
imu1:XCL
imu1:XDA
imu1:SDA
imu1:SCL
imu1:GND
imu1:VCC
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C