极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19079|回复: 11

关于MPU6050与Mega配合使用的问题

[复制链接]
发表于 2015-11-24 09:40:51 | 显示全部楼层 |阅读模式
大家好,初次发帖,不妥之处请见谅。
最近在做自己的平衡车,在论坛里面看了不少关于6050的帖子,学到了很多。
但坛子里面大多数使用uno来配合6050,我是用mega,它提供了专门的scl与sda接口,所以我就试着直接把它们与6050连接起来,结果连接时成功了,但不知道为什么只能上传有限组的数据
如图:

请问这可能是什么原因造成的?谢谢!

代码如下(直接使用了某个帖子中的代码):
  1. // Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
  2. // is used in I2Cdev.h
  3. #include "Wire.h"

  4. // I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
  5. // for both classes must be in the include path of your project
  6. #include "I2Cdev.h"
  7. #include "MPU6050.h"

  8. // class default I2C address is 0x68
  9. // specific I2C addresses may be passed as a parameter here
  10. // AD0 low = 0x68 (default for InvenSense evaluation board)
  11. // AD0 high = 0x69
  12. MPU6050 accelgyro;

  13. int16_t ax, ay, az;
  14. int16_t gx, gy, gz;

  15. #define LED_PIN 13
  16. bool blinkState = false;

  17. void setup() {
  18.   // join I2C bus (I2Cdev library doesn't do this automatically)
  19.   Wire.begin();

  20.   // initialize serial communication
  21.   // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
  22.   // it's really up to you depending on your project)
  23.   Serial.begin(230400);

  24.   // initialize device
  25.   Serial.println("Initializing I2C devices...");
  26.   accelgyro.initialize();

  27.   // verify connection
  28.   Serial.println("Testing device connections...");
  29.   Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

  30.   // configure Arduino LED for
  31.   pinMode(LED_PIN, OUTPUT);
  32. }

  33. void loop() {
  34.   // read raw accel/gyro measurements from device
  35.   accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  36.   // these methods (and a few others) are also available
  37.   //accelgyro.getAcceleration(&ax, &ay, &az);
  38.   //accelgyro.getRotation(&gx, &gy, &gz);

  39.   // display tab-separated accel/gyro x/y/z values
  40.   Serial.print("a/g:\t");
  41.   Serial.print(ax);
  42.   Serial.print("\t");
  43.   Serial.print(ay);
  44.   Serial.print("\t");
  45.   Serial.print(az);
  46.   Serial.print("\t");
  47.   Serial.print(gx);
  48.   Serial.print("\t");
  49.   Serial.print(gy);
  50.   Serial.print("\t");
  51.   Serial.println(gz);

  52.   // blink LED to indicate activity
  53.   blinkState = !blinkState;
  54.   digitalWrite(LED_PIN, blinkState);
  55. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-11-24 21:54:22 | 显示全部楼层
刚用6050  还不是很理解
回复 支持 反对

使用道具 举报

发表于 2015-11-24 22:18:11 | 显示全部楼层
有限组的数据是啥意思?

跑着跑着停了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-28 17:07:21 | 显示全部楼层
zoologist 发表于 2015-11-24 22:18
有限组的数据是啥意思?

跑着跑着停了?

是的,
回复 支持 反对

使用道具 举报

发表于 2015-11-28 20:15:53 | 显示全部楼层
我注意到你设置串口比较特别
Serial.begin(230400);

你有没有试试115200 这样标准的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-28 23:28:33 | 显示全部楼层
zoologist 发表于 2015-11-28 20:15
我注意到你设置串口比较特别
Serial.begin(230400);

没有欸,下次去实验室试试,谢谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-8 10:41:34 | 显示全部楼层
zoologist 发表于 2015-11-28 20:15
我注意到你设置串口比较特别
Serial.begin(230400);

我试过了,各个波特率,好像没什么区别
回复 支持 反对

使用道具 举报

发表于 2015-12-8 15:46:12 | 显示全部楼层
c_bowie 发表于 2015-12-8 10:41
我试过了,各个波特率,好像没什么区别

那你就试试直接输出随机数看看会不会停吧

其他的都不要变
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-15 10:09:35 | 显示全部楼层
本帖最后由 c_bowie 于 2015-12-15 10:10 编辑
zoologist 发表于 2015-12-8 15:46
那你就试试直接输出随机数看看会不会停吧

其他的都不要变


感谢您耐心回复,我做了测试,在loop循环里面只有把accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);给注释掉才能不停地输出,否则只会进行有限组的loop循环。
回复 支持 反对

使用道具 举报

发表于 2015-12-15 11:16:09 | 显示全部楼层
c_bowie 发表于 2015-12-15 10:09
感谢您耐心回复,我做了测试,在loop循环里面只有把accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &g ...

内存溢出?库函数有问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-15 11:19:40 | 显示全部楼层
zoologist 发表于 2015-12-15 11:16
内存溢出?库函数有问题?

是啊,感觉可能是由于库文件与6050不匹配
回复 支持 反对

使用道具 举报

发表于 2016-4-27 12:05:06 | 显示全部楼层
楼主,你的传感器和mega的那些引脚相连接的啊。我也在做,求教啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 06:03 , Processed in 0.040327 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表