سلام من با ماژول mpu6050 و esp8266 توی سریال مانیتور این رو دریافت میکنم Error: MPU6050 not detected! و همه اتصالات رو درست وصل کردم و نمیدونم چرا نمیتونه با ماژول ارتباط برقرار کنه اگر تجربه ای دارید ممنون میشم که کمکم کنید.
و این هم کدم هست :
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
// تعریف شیء MPU6050
MPU6050 mpu;
void setup() {
// 1) سریال برای دیباگ
Serial.begin(115200);
while (!Serial) { }
delay(100);
// 2) راهاندازی I2C با پینهای مشخصشده:
// SDA → D2 (GPIO4)
// SCL → D1 (GPIO5)
Wire.begin(D2, D1);
delay(100);
// 3) مقداردهی اولیه و تست اتصال
Serial.println("Initializing MPU6050...");
mpu.initialize();
if (!mpu.testConnection()) {
Serial.println("Error: MPU6050 not detected!");
while (1);
}
Serial.println("MPU6050 ready.");
}
void loop() {
// 4) خواندن خام شتاب و ژیروسکوپ
int16_t ax, ay, az, gx, gy, gz;
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// 5) تبدیل به واحد مهندسی
float accelX = ax / 16384.0; // LSB/g at ±2g
float accelY = ay / 16384.0;
float accelZ = az / 16384.0;
float gyroX = gx / 131.0; // LSB/(°/s) at ±250°/s
float gyroY = gy / 131.0;
float gyroZ = gz / 131.0;
// 6) چاپ روی سریال
Serial.print("Accel [g]: ");
Serial.print(accelX, 3); Serial.print(", ");
Serial.print(accelY, 3); Serial.print(", ");
Serial.print(accelZ, 3);
Serial.print(" | Gyro [°/s]: ");
Serial.print(gyroX, 2); Serial.print(", ");
Serial.print(gyroY, 2); Serial.print(", ");
Serial.println(gyroZ, 2);
// 7) تأخیر بین خوانشها
delay(200);
}