Arduino

ADXL 345 Accelometer

vlcsnap 2023 10 07 11h52m13s723

#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);
}