Bonjour, je souhaiterais mettre un bouton poussoir,(appuis 2 secondes) sur mpu 6050 , pour lui dire à tel angle, tu équivaut 0°.
j'ai un problème de lecture des angles, je travail sur Z uniquement, mais si les autres angle sont pas à 0 , le capteur est pas stable.
savez vous m'aider ? (je suis super novice, 50 ans)
merci beaucoup
#include "Wire.h"
#include <MPU6050_light.h>
MPU6050 mpu(Wire);
unsigned long timer = 0;
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
void setup() {
Serial.begin(9600);
Wire.begin();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
byte status = mpu.begin();
Serial.print(F("MPU6050 status: "));
Serial.println(status);
while (status != 0) {} // stop everything if could not connect to MPU6050
Serial.println(F("Calculating offsets, do not move MPU6050"));
delay(500);
// mpu.upsideDownMounting = true; // uncomment this line if the MPU6050 is mounted upside-down
mpu.calcOffsets(); // gyro and accelero
Serial.println("Done!\n");
}
void loop() {
mpu.update();
if ((millis()-timer)>10) { // print data every 10ms
int angleZ = mpu.getAngleX();
if (angleZ < 1 && angleZ > -1) {
digitalWrite(led1, 0);
digitalWrite(led2, 1);
digitalWrite(led3, 0);
} else if (angleZ <= 1 && angleZ > -300) {
digitalWrite(led1, 1);
digitalWrite(led2, 0);
digitalWrite(led3, 1);
}else if (angleZ <= -1 && angleZ > 300) {
digitalWrite(led1, 1);
digitalWrite(led2, 0);
digitalWrite(led3, 1);
}
timer = millis();
}
}