#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_MPU6050.h>
const int ledPins[] = {18, 19, 32, 33, 25, 26, 27};
const int numLeds = 7;
Adafruit_MPU6050 imu;
void setup() {
Serial.begin(115200);
Wire.begin();
imu.begin();
imu.setAccelerometerRange(MPU6050_RANGE_2_G);
Serial.println("Visual accelerometer ready");
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
sensors_event_t accel, gyro, temp;
imu.getEvent(&accel, &gyro, &temp);
float ax = accel.acceleration.x;
int ledIndex = map(ax * 10, -100, 100, 0, numLeds - 1);
ledIndex = constrain(ledIndex, 0, numLeds - 1);
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], (i == ledIndex) ? HIGH : LOW);
}
}