查看: 3003|回复: 1

37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO

[复制链接]

53

主题

55

帖子

431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
431
发表于 2020-7-18 20:55:02 | 显示全部楼层 |阅读模式
StduinoUno /纳米37种传感器(二十九六轴 MPU陀螺仪模块
关键词: 51 stm32 arduino stduino单片机 stduino UNO&Nano MPU6050陀螺仪
说明:
MPU6050 陀螺仪传感器具有很多强大的功能,采用单芯片封装。该芯片由一个MEMS 加速度计,一个MEMS 陀螺仪和温度传感器组成。该模块在将模拟量转换为数字量时非常准确,因为每个通道都有一个16 位的模数转换器硬件。
29陀螺仪模块.jpg
该模块能够同时捕获 x y z 通道。它有一个I2C 接口与主控制器进行通信。对于无人机,机器人,运动传感器等许多应用来说,这是一个非常有用的设备。它也被称为陀螺仪或轴加速度计。
MPU6050加速度计01.png MPU6050加速度计02.png
就像上面的图片一样,在一个立方体的盒子里面有一个小球,盒子的四壁是用石英晶体材料。当盒子加速度发声变化时,由于惯性的作用,球就会向与加速度方向相反的地方倾斜,当小球碰到那里就会产生压电电流,通过此电流可以确定该方向上加速度大小实际测得的是压力的大小))
实际上,当模块静止时, Z 轴方向上一直受到小球的挤压(由于重力作用),也应此,该模块无法获得物体在Z 轴上的旋转角。如果必须要获得绝对的旋转角,那么可以选择性MPU9250这个九轴运动跟踪芯片。
MPU6050加速度计03.png
实验目的:
在本例中,我们将学习如何将传感器与 Stduino UNO一起使用,利用陀螺仪模块监测物体移动方向。
器材:
Stduino UNO / Nano; 杜邦线; MPU6050 模块
电路连接: MPU6050-> Stduino UNO /纳米
  VCC-> 5V
  GND->GND
  SCL-> D9
  SDA-> D10
  XCL
  XDA
  AD0->接地
  INT-> D2
重点说明:
VCC
5V(内部有稳压芯片)
GND
GND
SCL
MPU6050作为从机时IIC时钟线
SDA
MPU6050作为从机时IIC数据线
XCL
MPU6050作为主机时IIC时钟线
XDA
MPU6050作为主机时IIC数据线
AD0
地址管脚,决定IIC地址的最低一位(LSB)
INT
中断

代码:
  1. #include <Arduino.h>
  2. #include<Wire.h>
  3. const int MPU6050_addr=0x68;
  4. int16_t AccX,AccY,AccZ,Temp,GyroX,GyroY,GyroZ;
  5. void setup(){
  6. //D9 SCL
  7. //D10 SDA
  8. //5V
  9. //GND
  10. Wire.begin();
  11. Wire.beginTransmission(MPU6050_addr);
  12. Wire.write(0x6B);
  13. Wire.write(0);
  14. Wire.endTransmission(true);
  15. Serial.begin(9600);
  16. }
  17. void loop(){
  18. Wire.beginTransmission(MPU6050_addr);
  19. Wire.write(0x3B);
  20. Wire.endTransmission(false);
  21. Wire.requestFrom(MPU6050_addr,14,true);//按顺序读取数据
  22. AccX=Wire.read()<<8|Wire.read();//X轴方向的加速度分量
  23. AccY=Wire.read()<<8|Wire.read();//Y轴方向的加速度分量
  24. AccZ=Wire.read()<<8|Wire.read();//Z轴方向的加速度分量
  25. Temp=Wire.read()<<8|Wire.read();
  26. GyroX=Wire.read()<<8|Wire.read();//绕X轴旋转的角速度GYR_X
  27. GyroY=Wire.read()<<8|Wire.read();//绕Y轴旋转的角速度GYR_Y
  28. GyroZ=Wire.read()<<8|Wire.read();//绕Z轴旋转的角速度GYR_Z
  29. Serial.print("AccX = "); Serial.print(AccX);
  30. Serial.print(" || AccY = "); Serial.print(AccY);
  31. Serial.print(" || AccZ = "); Serial.print(AccZ);
  32. Serial.print(" || Temp = "); Serial.print(Temp/340.00+36.53);
  33. Serial.print(" || GyroX = "); Serial.print(GyroX);
  34. Serial.print(" || GyroY = "); Serial.print(GyroY);
  35. Serial.print(" || GyroZ = "); Serial.println(GyroZ);
  36. delay(100);
  37. }
复制代码






实验效果:
:窗口监视器,如下图所示:
29-陀螺仪模块.png
回复

使用道具 举报

0

主题

11

帖子

26

积分

禁止发言

积分
26
发表于 2022-8-24 17:48:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

热门推荐

Stduino 零基础入门课程系列(五) 实验三:按键输入
Stduino 零基础入门课程系
Hello!各位同学大家好~上节课我们利用管脚输出高低电平信号,控制LED的亮灭,那么我
Stduino小白练习第六弹--按键控制串口通信
Stduino小白练习第六弹--
2020/01/08 星期三 作者:Astilbe 问题:我们如何通过按下按键来传输固定的信息给PC呢
37种传感器(二十九)MPU6050陀螺仪模块+Stduino Nano&UNO
37种传感器(二十九)MPU6
StduinoUno /纳米37种传感器(二十九)六轴 MPU陀螺仪模块关键词: 51 ; stm32 ; ar
stm32 最小系统 小蓝板 LED闪烁灯(三),无需刷Bootloader
stm32 最小系统 小蓝板 LE
关键词:stm32 小蓝板 STM32F103C8T6 Stduino IDE Stduino Nano LED闪烁灯 通过Stduin
Stduino IDE软件下载专区
Stduino IDE软件下载专区
Stduino IDE软件下载专区 Windows版:7月29号发布1.01, 现可
今天在文涛老大的帮助下我的stm32zet6终于把simlpefoc库跑起...
今天在文涛老大的帮助下我
[md]首先本身是刚刚从MDK转到arduino过来的新人,只因为要完开源的simplefoc,期间由
连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据
连接ADS1292模拟前端芯片
[md]连接ADS1292模拟前端芯片,使用SPI库,导致串口不输出数据 ![QSJSBEZF83I8C907%$
©2001-2018  Stduino官网  Powered by©Discuz!   ( 皖ICP备17011998号 )
快速回复 返回顶部 返回列表