1.2.3.6.1.13 QMC5883(电子罗盘)

优质
小牛编辑
125浏览
2023-12-01

更新时间:2018-09-17 12:24:23

功能说明

电子罗盘驱动。QMC5883 是一款电子罗盘芯片,我们会读取该芯片的 xyz 轴的值,并把读取的数据打印在终端上。

硬件资源

1.DevelopKit 开发板
2.QMC5883 模块

2.png | center | 572x621

3.接线

  • qmc5883 GND 引脚接 DevelopKit GND 引脚

  • qmc5883 VCC 引脚接 DevelopKit VCC 引脚

  • qmc5883 SCL 引脚接 DevelopKit SCL 引脚

  • qmc5883 SDA 引脚接 DevelopKit SDA 引脚

软件设计

在读写 qmc5883 时要注意,寄存器 0x0b、0x20、0x21、0x09 一般在初始化的时候要进行配置,这些寄存器和精度量程等参数相关,xyz 轴的值在寄存器 0x00-0x05,其中 0x06 是状态寄存器,bit0 用来检测数据是否可读,在每次读取数据时候,尽量去检测该 bit。

驱动配置

开发板板级管脚配置(board.json) 示范:</span>

  "qmc5883":{
    "type":"I2C",
    "port":1,
    "address_width":7,
    "freq":100000,
    "mode":1,
    "dev_addr":26
  }

应用示例

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入驱动模块 qmc5883。
  2. 编写测试 index.js 文件。
var qmc5883 = require('qmc5883');
var handle = new qmc5883('qmc5883');
setInterval(function() {
    var val = handle.getXYZ();
    console.log('qmc5883->x:'+val[0]+'y:' + val[1] +' z:'+val[2]);
}, 1000);

运行验证

定时读取 qmc5883 xyz 轴的 raw 数据并打印出来。