Your original sketch... with comments and corrections...
#include <Wire.h> // NOT NECESSARY
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h> // MISSING
#include <Adafruit_NeoPixel.h>
#define PIN1 6
#define PIN2 7
#define NUMPIXELS 8
Adafruit_MPU6050 mpu;
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUMPIXELS, PIN1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(NUMPIXELS, PIN2, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
strip1.begin();
strip1.show();
strip2.begin();
strip2.show();
// Initialize MPU6050
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_5_HZ);
}
void loop() {
sensors_event_t ax, gx, temp;
mpu.getEvent(&ax, &gx, &temp);
// Clear all LEDs on both strips
// strip1.clear(); // REMOVE THIS... IT CLEARS THE WS2812
// strip2.clear(); // REMOVE THIS... IT CLEARS THE WS2812
// if (ax.acceleration.x < -20) { // ACCELERATION WILL NEVER BE -20G
if (ax.acceleration.x < -1) { // USE -1G IN WOKWI SIM
// Tilted left
for (int i = 0; i < 4; i++) { // COUNT 0 TO 3 WS2812... WHY? YOU HAVE 8 WS2812 ON EACH PIN
strip1.setPixelColor(i, strip1.Color(255, 0, 0));
//strip2.setPixelColor(i, strip2.Color(255, 0, 0)); // REMOVE THIS LINE
strip1.show(); // YOU NEED TO SEND THE BUFFER TO THE WS2812
} // END OF "FOR"
} else { // IF ACCELERATION IS NOT < -1...
strip1.clear(); // CLEAR THE WS2812
strip1.show(); // SHOW THE BUFFER
}
// } else if (ax.acceleration.x > 120) { // ACCELERATION WILL NEVER BE 120G
// } else if (ax.acceleration.x > 1) { // CAN NOT USE "ELSE" FOR < -1 BECAUSE "0" EXISTS
if (ax.acceleration.x > 1) { // USE +1G IN WOKWI SIM
// Tilted right
// for (int i = 4; i < 4; i++) { // COUNTING FROM 4 TO 4 WILL NEVER COUNT
for (int i = 0; i < 4; i++) { // COUNT 0 TO 3 WS2812... WHY? YOU HAVE 8 WS2812 ON EACH PIN
// strip1.setPixelColor(i, strip1.Color(0, 0, 255)); // REMOVE THIS LINE
strip2.setPixelColor(i, strip2.Color(0, 0, 255)); // BLUE?
}
strip2.show(); // SHOW WS2812 BLUE
} else {
strip2.clear(); // IF ACCELERATION < 1, CLEAR WS2812
strip2.show(); // SHOW CLEAR BUFFER
}
delay(100); // SLOW THE READINGS
}
diagram.json for the wokwi nerds
{
"version": 1,
"author": "foreignpigdog x",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-arduino-nano", "id": "nano", "top": -4.8, "left": -0.5, "attrs": {} },
{ "type": "wokwi-mpu6050", "id": "imu1", "top": 90.22, "left": 40.72, "attrs": {} },
{
"type": "wokwi-neopixel-matrix",
"id": "ring1",
"top": 58.9,
"left": 113.88,
"rotate": 90,
"attrs": { "pixleate": "1", "rows": "1", "cols": "8" }
},
{
"type": "wokwi-neopixel-matrix",
"id": "ring2",
"top": 64.2,
"left": -112.18,
"rotate": 270,
"attrs": { "pixleate": "1", "rows": "1", "cols": "8" }
}
],
"connections": [
[ "imu1:SDA", "nano:A4", "green", [ "v0" ] ],
[ "imu1:SCL", "nano:A5", "green", [ "v0" ] ],
[ "imu1:GND", "nano:GND.1", "black", [ "v-28.8", "h38.48" ] ],
[ "imu1:VCC", "nano:5V", "red", [ "v-19.2", "h9.68" ] ],
[ "nano:5V", "ring1:VCC", "red", [ "v0" ] ],
[ "nano:5V", "ring2:VCC", "red", [ "v0" ] ],
[ "nano:GND.1", "ring1:GND", "black", [ "v0" ] ],
[ "nano:GND.1", "ring2:GND", "black", [ "v0" ] ],
[ "nano:7", "ring2:DIN", "green", [ "v0" ] ],
[ "nano:6", "ring1:DIN", "green", [ "v0" ] ]
],
"dependencies": {}
}