#include //Allows I2C com using SDA and SCL pins. #include //Loading sensor's library. Adafruit_L3GD20 gyro; //Naming sensor #include // SoftwareSerial allows serial com with Attiny #define rxPin 10 #define txPin 5 SoftwareSerial serial(rxPin, txPin); const int LED_1 = 0; //LED row 1 const int LED_2 = 1; //LED row 2 const int LED_3 = 2; //LED row 3 void setup() { serial.begin(9600); // Try to initialise and warn if we couldn't detect the chip if (!gyro.begin(gyro.L3DS20_RANGE_250DPS)) //You can choose your range here by comment/uncomment //if (!gyro.begin(gyro.L3DS20_RANGE_500DPS)) //if (!gyro.begin(gyro.L3DS20_RANGE_2000DPS)) { serial.println("Oops ... unable to initialize the L3GD20. Check your wiring!"); while (1); } } void loop() { gyro.read(); serial.print("X: "); serial.print((int)gyro.data.x); serial.print(" "); //Data's serial prints serial.print("Y: "); serial.print((int)gyro.data.y); serial.print(" "); serial.print("Z: "); serial.println((int)gyro.data.z); serial.print(" "); delay(100); if (gyro.data.z > 20) { pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, HIGH); pinMode(LED_3, INPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.z > 40) { pinMode(LED_1, INPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, HIGH); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.z > 60) {pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, HIGH); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, INPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.z > 80) { pinMode(LED_1, INPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, HIGH); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.z > 100) { pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, INPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row3 digitalWrite(LED_3, HIGH); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.z > 120) { pinMode(LED_1, OUTPUT); digitalWrite(LED_1, HIGH); pinMode(LED_2, INPUT); digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 120) { pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, HIGH); pinMode(LED_3, INPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 100) { pinMode(LED_1, INPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, HIGH); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 80) {pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, HIGH); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, INPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 60) { pinMode(LED_1, INPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, HIGH); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 40) { pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, INPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row3 digitalWrite(LED_3, HIGH); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } if (gyro.data.y > 20) { pinMode(LED_1, OUTPUT); digitalWrite(LED_1, HIGH); pinMode(LED_2, INPUT); digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); digitalWrite(LED_3, LOW); delay(100); pinMode(LED_1, OUTPUT); //row 1 digitalWrite(LED_1, LOW); pinMode(LED_2, OUTPUT); //row 2 digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); //row 3 digitalWrite(LED_3, LOW); } }