add
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
#include <Adafruit_MPU6050.h>
|
||||
#include <Adafruit_Sensor.h>
|
||||
|
||||
static constexpr uint8_t SDA_PIN = 4;
|
||||
static constexpr uint8_t SCL_PIN = 5;
|
||||
Adafruit_MPU6050 mpu;
|
||||
|
||||
void scanI2C() {
|
||||
Serial.println("[I2C] scan start");
|
||||
uint8_t found = 0;
|
||||
|
||||
for (uint8_t addr = 1; addr < 127; addr++) {
|
||||
Wire.beginTransmission(addr);
|
||||
uint8_t err = Wire.endTransmission();
|
||||
if (err == 0) {
|
||||
Serial.printf("[I2C] found device at 0x%02X\n", addr);
|
||||
found++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
Serial.println("[I2C] no devices found");
|
||||
}
|
||||
Serial.println("[I2C] scan done");
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
delay(500);
|
||||
Serial.println();
|
||||
Serial.println("ESP32-S3 I2C diagnostic");
|
||||
Serial.printf("Pins: SDA=%u SCL=%u\n", SDA_PIN, SCL_PIN);
|
||||
Wire.begin(SDA_PIN, SCL_PIN, 100000);
|
||||
delay(100);
|
||||
scanI2C();
|
||||
|
||||
if (!mpu.begin(0x68, &Wire)) {
|
||||
Serial.println("[MPU] begin failed");
|
||||
return;
|
||||
}
|
||||
|
||||
mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
|
||||
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
|
||||
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
|
||||
Serial.println("[MPU] begin ok");
|
||||
|
||||
sensors_event_t accel, gyro, temp;
|
||||
mpu.getEvent(&accel, &gyro, &temp);
|
||||
Serial.printf("[MPU] accel=(%.2f, %.2f, %.2f) temp=%.2f\n",
|
||||
accel.acceleration.x, accel.acceleration.y, accel.acceleration.z, temp.temperature);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
static uint32_t last = 0;
|
||||
if (millis() - last > 3000) {
|
||||
last = millis();
|
||||
scanI2C();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user