查看: 79|回复: 0

[经验] Arduino Uno 连接JY-61陀螺仪模块 串口读取数据

[复制链接]

主题

好友

284

积分

秀才

该用户从未签到

发表于 2019-8-7 16:44:01 |显示全部楼层

最近偶然得到一块维特智能的JY61的陀螺仪模块,

其功能是,直接输出MPU6050经卡尔曼滤波等算法得出的角度,角加速度数据

省下很多功夫,但我对其算法更感兴趣


自己焊接的底板,手艺还有待提升

本示例演示的是串口方式读取数据,还有IIC连接,以后有机会再分享

实验效果

BOM
Arduino Uno * 1

JY-61 * 1(含

邮票底板)跳线若干接线



方式
Arduino UNO --- JY-61

5V <---> VCC

GND <---> GND

0(RX)< - - > TX


程序
需要用到JY901的库,找到JY901.ZIP


把库文件夹存放在Arduino安装目录的libraries库文件夹

程序&库打包下载:https ://u16460183.ctfile.com/fs/16460183-296053314

文件夹说明:

JY901  -  JY901陀螺仪库

LS_JY901  - 主程序
#include <Wire.h>
#include <JY901.h>
/ *
测试Uno R3 。
JY901 UnoR3
TX <---> 0(Rx)
* /
void setup()
{
  Serial.begin(115200);
}

void loop()
{
  //打印接收的数据。数据是在serialEvent中收到的;
  Serial.print( “时间:20”); Serial.print(JY901.stcTime.ucYear); Serial.print( “ - ”); Serial.print(JY901.stcTime.ucMonth); Serial.print( “ - ”) ; Serial.print(JY901.stcTime.ucDay);
  Serial.print(“”); Serial.print(JY901.stcTime.ucHour); Serial.print(“:”); Serial.print(JY901.stcTime.ucMinute); Serial.print(“:”); Serial。的println((浮点)JY901.stcTime.ucSecond +(浮点)JY901.stcTime.usMiliSecond / 1000);

  Serial.print(“Acc:”); Serial.print((float)JY901.stcAcc.a [0] / 32768 * 16); Serial.print(“”); Serial.print((float)JY901.stcAcc。 a [1] / 32768 * 16); Serial.print(“”); Serial.println((float)JY901.stcAcc.a [2] / 32768 * 16);

  Serial.print(“Gyro:”); Serial.print((float)JY901.stcGyro.w [0] / 32768 * 2000); Serial.print(“”); Serial.print((float)JY901.stcGyro。 w [1] / 32768 * 2000); Serial.print(“”); Serial.println((float)JY901.stcGyro.w [2] / 32768 * 2000);

  Serial.print(“Angle:”); Serial.print((float)JY901.stcAngle.Angle [0] / 32768 * 180); Serial.print(“”); Serial.print((float)JY901.stcAngle。 Angle [1] / 32768 * 180); Serial.print(“”); Serial.println((float)JY901.stcAngle.Angle [2] / 32768 * 180);

  Serial.print(“Mag:”); Serial.print(JY901.stcMag.h [0]); Serial.print(“”); Serial.print(JY901.stcMag.h [1]); Serial.print( “”); Serial.println(JY901.stcMag.h [2]);

  Serial.print(“Pressure:”); Serial.print(JY901.stcPress.lPressure); Serial.print(“”); Serial。

  Serial.print(“DStatus:”); Serial.print(JY901.stcDStatus.sDStatus [0]); Serial.print(“”); Serial.print(JY901.stcDStatus.sDStatus [1]); Serial.print( “”); Serial.print(JY901.stcDStatus.sDStatus [2]); Serial.print(“”); Serial.println(JY901.stcDStatus.sDStatus [3]);

  Serial.print(“Longitude:”); Serial.print(JY901.stcLonLat.lLon / 10000000); Serial.print(“Deg”); Serial.print((double)(JY901.stcLonLat.lLon%10000000)/ 1e5 ); Serial.print(“m Lattitude:”);
  Serial.print(JY901.stcLonLat.lLat / 10000000); Serial.print(“Deg”); Serial.print((double)(JY901.stcLonLat.lLat%10000000)/ 1e5); Serial.println(“m”) ;

  Serial.print(“GPSHeight:”); Serial.print((float)JY901.stcGPSV.sGPSHeight / 10); Serial.print(“m GPSYaw:”); Serial.print((float)JY901.stcGPSV.sGPSYaw / 10); Serial.print(“Deg GPSV:”); Serial.print((float)JY901.stcGPSV.lGPSVelocity / 1000); Serial.println(“km / h”);

  Serial.println( “”);
  延迟(500);
}

/ *
  当一个新数据来自于发生的serialEvent
硬件序列RX。此例程在每个
时间循环()运行之间运行,因此使用内部循环延迟可以延迟
响应。可以使用多个字节的数据。
* /
void serialEvent()
{
  while(Serial.available())
  {
    JY901.CopeSerialData(Serial.read());






回复

使用道具 举报

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

关闭

站长推荐上一条 /2 下一条

手机版|电路城

GMT+8, 2019-8-20 20:15 , Processed in 0.161163 second(s), 13 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz!

返回顶部