- #include <Wire.h>
- #include <MPU6050.h>
- #include <LiquidCrystal_I2C.h>
- MPU6050 mpu;
- LiquidCrystal_I2C lcd(0x27, 16, 2); // 设置I2C LCD
- void setup() {
- Serial.begin(9600);
- lcd.begin(16, 2);
-
- while (!mpu.begin(MPU6050_SCALE_2G, MPU6050_RANGE_250DEG, MPU6050_ADDRESS_AD0_LOW)) {
- Serial.println("未能初始化MPU6050传感器,请检查连接。");
- delay(5000);
- }
-
- mpu.calibrateGyro();
- }
- void loop() {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("摇晃骰子!");
- delay(1000);
- int16_t ax, ay, az;
- mpu.readRawAccel(&ax, &ay, &az);
- // 计算加速度模值
- float acceleration = sqrt(ax * ax + ay * ay + az * az);
- if (acceleration > 15000) { // 调整敏感度
- int diceValue = random(1, 7); // 随机生成1到6的整数
- displayResult(diceValue);
- delay(2000);
- }
- }
- void displayResult(int value) {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("投掷结果:");
- lcd.setCursor(0, 1);
- lcd.print("骰子值: ");
- lcd.print(value);
- }
复制代码 板子没到手 先等等哈哈哈
|