ADXL 345 Accelometer
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
// Define the LED pins
#define LED_RIGHT 2
#define LED_LEFT 3
#define LED_UP 4
#define LED_DOWN 5
// Initialize the ADXL345 sensor
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
// Initialize the LED pins as output
pinMode(LED_RIGHT, OUTPUT);
pinMode(LED_LEFT, OUTPUT);
pinMode(LED_UP, OUTPUT);
pinMode(LED_DOWN, OUTPUT);
// Initialize the serial communication
Serial.begin(9600);
// Initialize the ADXL345 sensor
if(!accel.begin()) {
Serial.println(“ADXL345 not found”);
while(1);
}
}
void loop() {
// Read the acceleration data from the ADXL345 sensor
sensors_event_t event;
accel.getEvent(&event);
// Calculate the direction of the sensor movement
int x = event.acceleration.x;
int y = event.acceleration.y;
int z = event.acceleration.z;
if (abs(x) > abs(y) && abs(x) > abs(z)) {
if (x > 0) {
digitalWrite(LED_RIGHT, HIGH);
digitalWrite(LED_LEFT, LOW);
digitalWrite(LED_UP, LOW);
digitalWrite(LED_DOWN, LOW);
} else {
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED_LEFT, HIGH);
digitalWrite(LED_UP, LOW);
digitalWrite(LED_DOWN, LOW);
}
} else if (abs(y) > abs(x) && abs(y) > abs(z)) {
if (y > 0) {
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED_LEFT, LOW);
digitalWrite(LED_UP, HIGH);
digitalWrite(LED_DOWN, LOW);
} else {
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED_LEFT, LOW);
digitalWrite(LED_UP, LOW);
digitalWrite(LED_DOWN, HIGH);
}
} else {
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED_LEFT, LOW);
digitalWrite(LED_UP, LOW);
digitalWrite(LED_DOWN, LOW);
}
// Print the sensor data to the serial monitor
Serial.print(“X: “);
Serial.print(x);
Serial.print(” Y: “);
Serial.print(y);
Serial.print(” Z: “);
Serial.println(z);
delay(100);
}

