i use 3 adxl345 with HCF4052B Multiplexer to arduino uno
i want to read the value of adxl345
my connection i2c:
GND (For 3 adxl345) to Gnd arduino
VCC ((For 3 adxl345)) to 3v ardiono
scl ((For 3 adxl345) to A5
sda (For 3 adxl345) to A4
cs (For 3 adxl345) is connect to HVF4052B (0y,2y,3y)
Y Common of HCF4052B is connect to 3v arduino
i want to give 3v to each cs in order to read the value of adxl345
my probelem is the value is of 1 adxl345 and not changed
this picture for the diagram of my circuit
//float gravityFactor=9,81;
// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#include "Wire.h"
// I2Cdev and ADXL345 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"
#include "ADXL345.h"
// class default I2C address is 0x53
// specific I2C addresses may be passed as a parameter here
// ALT low = 0x53 (default for SparkFun 6DOF board)
// ALT high = 0x1D
int i=0;
int j=0;
int16_t ax, ay, az,bx,by,bz;
double nx,ny,nz,nxx,nyy,nzz;
ADXL345 accel1;
ADXL345 accel2;
ADXL345 accel3;
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
Wire.begin();
accel1.setRange(ADXL345_RANGE_2G);
// initialize serial communication
// (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
// it's really up to you depending on your project)
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(10, OUTPUT); // s0
pinMode(9, OUTPUT); // s1
//accel3= ADXL345(0x1E);
// initialize device
Serial.println("Initializing I2C devices...");
accel1.initialize();
accel2.initialize();
accel3.initialize();
// accel.setTapDetectionXYZ(1);
// verify connection
Serial.println("Testing device connections...");
Serial.println(accel1.testConnection() ? "ADXL345 connection successful" : "ADXL345 connection failed");
accel1.setOffset(0,0,1);
}
void loop() {
digitalWrite(13,HIGH);
//int id= accel.getDeviceID();
//Serial.println(id);
j=j+1;
i=i+1;
// read raw accel measurements from device
digitalWrite(10,LOW);
digitalWrite(9,LOW);
accel1.getAcceleration(&ax, &ay, &az);
Serial.print(i);
Serial.print(" accel 1:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.println(az);
delay(5000);
digitalWrite(10,LOW);
digitalWrite(9,HIGH);
accel1.getAcceleration(&ax, &ay, &az);
Serial.print(i);
Serial.print(" accel 1:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.println(az);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
accel1.getAcceleration(&ax, &ay, &az);
Serial.print(i);
Serial.print(" accel 1:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.println(az);
delay(5000);
}
