Stránka 1 z 1

MPU6050 přestane číst hodnoty při spuštění motorů

Napsal: 02 úno 2020, 21:48
od Queb
Zdravím, pracuji na školním projektu, kde se robot, při detekci překážky, otáčí o 90°a 180° doleva nebo doprava. Problém je v tom, že při spuštění motorů gyroskop v náhodném časovém intervalu přestane číst úhel natočení (někdy to trvá 10s někdy taky 2s). Zpočátku sem se s tímto problémem setkával minimálně, ale nyní je to při každém spuštění. Proto prosím o radu, čím je to způsobeno a jak se tohoto problému zbavit.
Součástky:
  • Arduino Mega 2560
  • motor shield l293d
  • Gyro+akcelerometr MPU 6050
Zde je testovací kód, ve kterém gyroskop přestane fungovat během několika sekund od zapnutí motorů.

Kód: Vybrat vše

#include <AFMotor.h>
#include <MPU6050_tockn.h>
#include <Wire.h>

MPU6050 mpu6050(Wire);
AF_DCMotor motorL(3);
AF_DCMotor motorP(4);
long timer = 0; 
float UhelNatoceni;
void setup() {
  Wire.begin();
  Serial.begin(9600);
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true); 
}
void loop(){ 
  if(millis() - timer > 50)
  {      
     UhelNatoceni = mpu6050.getAngleZ();
     Serial.println(UhelNatoceni);
     timer = millis();
     mpu6050.update();
  }
  motorL.setSpeed(80);
  motorP.setSpeed(80);
  motorL.run(FORWARD);
  motorP.run(FORWARD);   
}

Re: MPU6050 přestane číst hodnoty při spuštění motorů

Napsal: 02 úno 2020, 22:39
od pavel1tu
Jestliže každých 50ms děláš Serial.println(UhelNatoceni) na rychlosti 9600, tak to musí umřít