# Switch setup angle mpu6050 et probleme stabilité

**URL:** <https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302>\
**Category:** Français\
**Created:** [July 12, 2025, 6:07pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302 "2025-07-12T18:07:49Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![moipapa](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/moipapa/32/1199192_2.png) [@moipapa](https://forum.arduino.cc/u/moipapa)\
**Post date:** [July 12, 2025, 6:07pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/1 "2025-07-12T18:07:49Z")

</div>

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

```arduino
#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();
  }
}

```

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [July 12, 2025, 6:15pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/2 "2025-07-12T18:15:10Z")

</div>

⚠  
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.  
  
Merci de prendre en compte les recommandations listées dans [Les bonnes pratiques du Forum Francophone](https://forum.arduino.cc/t/les-bonnes-pratiques-du-forum-francophone/861014)

---

<div class="post-metadata">

**Author:** ![moipapa](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/moipapa/32/1199192_2.png) [@moipapa](https://forum.arduino.cc/u/moipapa)\
**Post date:** [July 12, 2025, 6:19pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/4 "2025-07-12T18:19:52Z")

</div>

oups, désolé

---

<div class="post-metadata">

**Author:** ![fdufnews](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fdufnews/32/238836_2.png) [@fdufnews](https://forum.arduino.cc/u/fdufnews)\
**Post date:** [July 12, 2025, 7:24pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/6 "2025-07-12T19:24:04Z")

</div>

> [@moipapa](#):
>
> ```arduino
> } else if (angleZ <= 1 && angleZ > -300) {
> .....
> }else if (angleZ <= -1 && angleZ > 300) {
> 
> ```

Ces tests me paraissent bizarres.  
Est-ce que ça ne devrait pas être?

```arduino
} else if (angleZ <= -1 && angleZ > -300) {
.....
}else if (angleZ >= 1 && angleZ < 300) {

```

* * *

As-tu fait afficher les valeurs retournées par le MPU pour voir si la fourchette -1 à +1 était pertinente?

* * *
`mpu.getAngleX(); ` retourne un flottant pas un entier. Il vaudrait mieux travailler avec des flottants car tu perds les décimales et donc de la précision.
- angleZ devrait être un float
- les tests dans les if devraient se faire avec des valeurs float -300.0, -1.0, 1.0, 300.0

---

<div class="post-metadata">

**Author:** ![moipapa](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/moipapa/32/1199192_2.png) [@moipapa](https://forum.arduino.cc/u/moipapa)\
**Post date:** [July 12, 2025, 8:50pm UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/7 "2025-07-12T20:50:17Z")

</div>

je te remercie de ta réponse, n'y connaissant pas grand chose, je reprogramme demain, et reviens vers le post, déja pour voir la diff entre flottant et entier,  
merci beaucoup 🙂

---

<div class="post-metadata">

**Author:** ![moipapa](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/moipapa/32/1199192_2.png) [@moipapa](https://forum.arduino.cc/u/moipapa)\
**Post date:** [July 13, 2025, 10:04am UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/8 "2025-07-13T10:04:00Z")

</div>

salut non ça fonctionne nickel, je regarde maintenant comment désactiver les autre axe et surtout le bouton poussoir, le maintenir 3 secondes pour lui dire par exemple que 10 degré equivaut au 0. cordialement

```arduino
} else if (angleZ <= 1 && angleZ > -300) {
else if (angleZ <= -1 && angleZ > 300) {

```

---

<div class="post-metadata">

**Author:** ![fdufnews](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fdufnews/32/238836_2.png) [@fdufnews](https://forum.arduino.cc/u/fdufnews)\
**Post date:** [July 14, 2025, 8:18am UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/9 "2025-07-14T08:18:14Z")

</div>

> [@moipapa](#):
>
> salut non ça fonctionne nickel,

Ça fonctionne peut-être mais les seuils se recoupent les uns les autres. Ça marche parce que ce sont des if ... else if ... mais ce n'est pas propre.  
Tu fais ça

```arduino
                            ________________________
test 3 | |
         ________________________ |
test 2 | | |
        | | |
test 1 | _____ |
        | | | |
      -300 -1 1 300

```

Alors que tu devrais avoir quelque chose comme cela

```arduino
                                  __________________
test 3 | |
         __________________ | |
test 2 | | | |
        | | | |
test 1 | | _____ | |
        | | | |
      -300 -1 1 300

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [January 10, 2026, 8:18am UTC](https://forum.arduino.cc/t/switch-setup-angle-mpu6050-et-probleme-stabilite/1395302/10 "2026-01-10T08:18:52Z")

</div>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
