Hello all using gy521 with tca9548a. I am getting cyclic data which is not expected could you please help: here is the code:
#include<Wire.h>
#define TCAADDR 0x70
const int MPU=0x70;
int16_t AcX,AcY,AcZ,GyX,GyY,GyZ;
float gAcX, gAcY, gAcZ;
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(MPU);
Wire.write(1 << i);
Wire.endTransmission();
}
void tcawrite(uint8_t txt){
//tcaselect(t);
//Wire.beginTransmission(0x68);
//Wire.beginTransmission(MPU);
Wire.write(txt);
//Wire.endTransmission(ft);
}
void setup(){
Wire.begin();
tcaselect(0);
tcawrite(0x6B);
tcawrite(0);
// Wire.endTransmission();
//Wire.write(0x3B);
//tcawrite(1,0x6B);
//tcawrite(1,0);
//Wire.beginTransmission(MPU);
//tcaselect(0);
//Wire.write(0x6B);
//Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop(){
//Wire.beginTransmission(MPU);
//Wire.beginTransmission(TCAADDR);
//tcaselect(0);
//Wire.write(0x3B);
//Wire.endTransmission(false);
Wire.beginTransmission(0x68);
tcawrite(0x3B);
Wire.requestFrom(0x68,6,true);
AcX=Wire.read()<<8|Wire.read();
//Wire.requestFrom(MPU,12,true);
gAcX= AcX;///16384.0;
AcY=Wire.read()<<8|Wire.read();
//Wire.requestFrom(MPU,12,true);
gAcY=AcY;///16384.0;
AcZ=Wire.read()<<8|Wire.read();
gAcZ=AcZ;///16834.0;
//Wire.requestFrom(MPU,12,true);
GyX=Wire.read()<<8|Wire.read();
//Wire.requestFrom(MPU,12,true);
GyY=Wire.read()<<8|Wire.read();
//Wire.requestFrom(MPU,12,true);
GyZ=Wire.read()<<8|Wire.read();
Serial.print("Accelerometer: ");
Serial.print("X = "); Serial.print(gAcX);
Serial.print("g | Y = "); Serial.print(gAcY);
Serial.print("g | Z = "); Serial.println(gAcZ);
Serial.print("Gyroscope: ");
Serial.print("X = "); Serial.print(GyX);
Serial.print(" | Y = "); Serial.print(GyY);
Serial.print(" | Z = "); Serial.println(GyZ);
// Serial.println(" ");
delay(333);
}