Maixduino系列实验(4)---无法读取板载三轴数字加速计MSA300数据
推断Maixduino板子右上角,这颗芯片是三轴数字加速计MSA300(猜测的)
MSA300
- 是一种三轴低g加速度计,具有I2C/SPI数字输出
- 消费级以及专业级应用
- 它具有动态用户可选择的完整
- 加速度测量范围为±2g/±4g/±8g/±16g和al
- 输出数据速率从1Hz到500Hz
- MSA300提供超小型(2毫米x 2毫米,高度1毫米)LGA包装
- 使用温度范围 -40°C至+85°C
主要特征
- 超小包装2x2x1毫米,LGA-12针
- 用户可选择范围, ±2g, ±4g, ±8g, ±16g
- 1.62V至3.6V工作电源电压
- 1.2V至3.6V IO电源电压
- 用户可选择的数据输出速率
- 接口I2C/SPI(4线/3线)
- 具备二个中断引脚
- 14位分辨率
- 低功耗
- 编程偏移和敏感
- 符合RoHS应用规范
- 适合手机和平板电脑
- 显示方向
- 手势识别
- 振动监测
- 内倾角和倾斜感应
- 计步器
- 玩游戏
- 自由落体检测
`/*
Maixduino系列实验(3)
项目之二:测试板载三轴数字加速计MSA300
*/
#include <MSA300.h>
#include <Wire.h>
// 这是将创建的字符串的长度
// 包含减号和小数点
const signed char formattedStringLength = 11;
// 待打印的异常点后的位数
const unsigned char numVarsAfterDecimal = 6;
acc_t data;
MSA300 msa;
static char outstr[formattedStringLength];
char * formatValue(float value)
{
dtostrf(value, formattedStringLength, numVarsAfterDecimal, outstr);
return outstr;
}
void setup()
{
Serial.begin(9600);
Wire.begin();
msa.begin();
}
void loop()
{
data = msa.getAcceleration();
Serial.printf("Xa:%s ", formatValue(data.x));
Serial.printf("Ya:%s ", formatValue(data.y));
Serial.printf("Za:%s", formatValue(data.z));
Serial.println();
delay(1000);
}`
二种可能:
一是只有示例,Maixduino板上没有MSA300硬件
二是有硬件,但设置接口有误,没有信号输入
解决:
以官方提供的电路和资料来看! 应该是没有 MSA300 这一个元件! 提供那一个库,应该是可以提供使用者自行购买兼容(Arduino) 模块回来使用
|