通过 Arduino Micro Pro 和蓝牙获取 MPU6050 数据

Posted

技术标签:

【中文标题】通过 Arduino Micro Pro 和蓝牙获取 MPU6050 数据【英文标题】:Getting MPU6050 data through Arduino Micro Pro and Bluetooth 【发布时间】:2018-04-05 18:15:34 【问题描述】:

我在通过蓝牙模块 HC-06 从 MPU6050 获取传感器数据时遇到问题。我正在使用 Arduino Micro Pro。我没有很多经验,所以这可能是一些菜鸟的错误。

如果我将此代码上传到 Arduino,然后通过蓝牙连接,我会不断收到“234”(我使用的是 Tera Term):

void setup() 
  Serial1.begin(9600); 
  delay(50);


void loop() 

  Serial1.println("234");
  delay(500); 

此外,当我在不从 PC 拔下的情况下使用此代码时,我在 Arduino IDE 的串行监视器上正确接收陀螺仪和加速度计数据:

#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;

void setup() 
   Serial.begin(9600);

   Serial.println("a");


   Wire.begin();

   Serial.println("b");

   mpu.initialize();

   Serial.println("c");


void loop() 
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);


  Serial.print("hh");
  Serial.println(ax);
  delay(20);

所以所有硬件都应该正常工作。但是,当我将上一个示例中的所有 Serial 函数更改为 Serial1 并尝试通过蓝牙获取数据时,Tera Term 窗口只是保持空白,没有任何我知道的数据进入。

我做错了什么?

【问题讨论】:

没有“Arduino Micro Pro”。 Pro Micro 不是 Arduino 的设计。 It's from SparkFun. 【参考方案1】:

serial1 用于组件的串行端口。

你在串口 1 上插入蓝牙 uart 吗?

您是否正确检测到蓝牙模块?

【讨论】:

我不仅可以检测到模块,而且第一个示例也有效。我在 tera term 连接窗口上无限得到“234”。蓝牙连接 tx - rx 和 rx - tx。蓝牙的 rx 和 arduino 的 tx 之间是 1x 电阻。蓝牙 rx 还通过 2 k 电阻分支到接地引脚。 试试 Serial1.print(ax) 好的,太好了!输入 +1 来回答 :) 我在这里遗漏了什么吗?如果Serial1.println(ax) 不起作用,为什么Serial1.print(ax) 会起作用? 我认为是因为 do 模块之一的编码-解码错误

以上是关于通过 Arduino Micro Pro 和蓝牙获取 MPU6050 数据的主要内容,如果未能解决你的问题,请参考以下文章

text Arduino的:: pro_micro :: health_check

Pro系列atom66nano75micro84mini8487108双模静电快捷使用介绍

BPI:bit webduino和arduino STEAM教育开发板,比micro:bit强大

unity在安卓手机上使用蓝牙连接arduino蓝牙模块

Arduino---HC-05 蓝牙模块

Raspberry Pi通过蓝牙与Arduino连接