|
- /*
- 【Arduino】66種傳感器模塊系列實(shí)驗(yàn)(48)
- 實(shí)驗(yàn)四十八:GY-291 數(shù)字三軸重力加速度傾斜度模塊 (IIC/SPI傳輸)
- 實(shí)驗(yàn)代碼之三
- */
- #include <Wire.h>
- #define Register_ID 0
- #define Register_2D 0x2D
- #define Register_X0 0x32
- #define Register_X1 0x33
- #define Register_Y0 0x34
- #define Register_Y1 0x35
- #define Register_Z0 0x36
- #define Register_Z1 0x37
- int ADXAddress = 0xA7 >> 1;
- int reading = 0;
- int val=0;
- int X0,X1,X_out;
- int Y0,Y1,Y_out;
- int Z1,Z0,Z_out;
- double Xg,Yg,Zg;
- void setup()
- {
- Wire.begin();
- Serial.begin(9600);
- delay(100);
-
- Wire.beginTransmission(ADXAddress);
- Wire.write(Register_2D);
- Wire.write(8);
- Wire.endTransmission();
- }
- void loop()
- {
-
- Wire.beginTransmission(ADXAddress);
- Wire.write(Register_X0);
- Wire.write(Register_X1);
- Wire.endTransmission();
- Wire.requestFrom(ADXAddress,2);
- if(Wire.available()<=2)
- {
- X0 = Wire.read();
- X1 = Wire.read();
- X1=X1<<8;
- X_out=X0+X1;
- }
-
- Wire.beginTransmission(ADXAddress);
- Wire.write(Register_Y0);
- Wire.write(Register_Y1);
- Wire.endTransmission();
- Wire.requestFrom(ADXAddress,2);
- if(Wire.available()<=2)
- {
- Y0 = Wire.read();
- Y1 = Wire.read();
- Y1=Y1<<8;
- Y_out=Y0+Y1;
- }
-
- Wire.beginTransmission(ADXAddress);
- Wire.write(Register_Z0);
- Wire.write(Register_Z1);
- Wire.endTransmission();
- Wire.requestFrom(ADXAddress,2);
- if(Wire.available()<=2)
- {
- Z0 = Wire.read();
- Z1 = Wire.read();
- Z1=Z1<<8;
- Z_out=Z0+Z1;
- }
-
- Xg=X_out;
- Yg=Y_out;
- Zg=Z_out;
- Serial.print("X= ");
- Serial.print(Xg);
- Serial.print(" ");
- Serial.print("Y= ");
- Serial.print(Yg);
- Serial.print(" ");
- Serial.print("Z= ");
- Serial.print(Zg);
- Serial.println(" ");
- delay(200);
- }
復(fù)制代碼
|
|