Étape 2: Code
Voici le code. Il utilise I2C. J’ai pris certaines parties du code de l’internet. (Partie I2C)
Rédigé par Damien Ahmet KIRNIK
Angle de //Measure de TR_CapaFenLisesi avec un MPU-6050(GY-521)
#include
const int MPU_addr = 0x68 ; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, M§à ;
minVal int = 265 ; maxVal int = 402 ;
double x ; double y ; double z ;
void setup() {Wire.begin() ; Wire.beginTransmission(MPU_addr) ; Wire.Write(0x6b) ; Wire.Write(0) ; Wire.endTransmission(true) ; Serial.Begin(9600) ; } void loop() {Wire.beginTransmission(MPU_addr) ; Wire.Write(0x3B) ; Wire.endTransmission(false) ; Wire.requestFrom(MPU_addr,14,true) ; AcX=Wire.read() << 8|Wire.read() ; AcY=Wire.read() << 8|Wire.read() ; AcZ=Wire.read() << 8|Wire.read() ; xAng int = map(AcX,minVal,maxVal,-90,90) ; yAng int = map(AcY,minVal,maxVal,-90,90) ; zAng int = map(AcZ,minVal,maxVal,-90,90) ;
x = RAD_TO_DEG * (atan2 (-yAng, - zAng) + PI) ; y = RAD_TO_DEG * (atan2 (-xAng, - zAng) + PI) ; z = RAD_TO_DEG * (atan2 (-yAng, - xAng) + PI) ;
Serial.Print ("AngleX =") ; Serial.println(x) ;
Serial.Print ("AngleY =") ; Serial.println(y) ;
Serial.Print ("AngleZ =") ; Serial.println(z) ; Serial.println("---") ; Delay(400) ; }