打印
[STM32L4+]

【STEVAL-STWINKT1B测评】磁力计IIS2MDC

[复制链接]
539|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
win, ev, TE, ST
1、STWINKT1B上有个 三轴磁力计(磁强计)传感器IIS2MDC。它的主要功能是测量磁场强度,并提供每个轴(X、Y、Z)上的磁场分量。它的用途非常广泛,特别是在涉及方向、定位、姿态和磁场探测的应用中。
   IIS2MDC 的主要用途包括:电子罗盘,通过测量地球磁场,可以用于确定设备的方位角,即北、东、南、西的方向。
姿态检测和方向感应,作为惯性测量单元(IMU)的一部分,IIS2MDC 可以与加速度计和陀螺仪结合,帮助设备在三维空间中确定其姿态和方向。常用于智能手机、四轴飞行器。
2、IIS2MDC 的通信接口使用IIC

初始化和数据读取,设置量程为50gauss。
 BSP_MOTION_SENSOR_Init(IIS2MDC_0, MOTION_MAGNETO);
  BSP_MOTION_SENSOR_SetOutputDataRate(IIS2MDC_0, MOTION_MAGNETO, IIS2MDC_MAG_ODR);
  BSP_MOTION_SENSOR_SetFullScale(IIS2MDC_0, MOTION_MAGNETO, IIS2MDC_MAG_FS);
数据读取,将读取的数据 乘以以一个转换因子(灵敏度),得到磁场强度。
int32_t IIS2MDC_MAG_GetAxes(IIS2MDC_Object_t *pObj, IIS2MDC_Axes_t *MagneticField)
{
  iis2mdc_axis3bit16_t data_raw;
  float sensitivity;

  /* Read raw data values. */
  if (iis2mdc_magnetic_raw_get(&(pObj->Ctx), data_raw.i16bit) != IIS2MDC_OK)
  {
    return IIS2MDC_ERROR;
  }

  /* Get IIS2MDC actual sensitivity. */
  (void)IIS2MDC_MAG_GetSensitivity(pObj, &sensitivity);

  /* Calculate the data. */
  MagneticField->x = (int32_t)((float)((float)data_raw.i16bit[0] * sensitivity));
  MagneticField->y = (int32_t)((float)((float)data_raw.i16bit[1] * sensitivity));
  MagneticField->z = (int32_t)((float)((float)data_raw.i16bit[2] * sensitivity));

  return IIS2MDC_OK;
}
数据输出




测试过程缓慢旋转开发板,可以看到xyz轴上的磁场强度进行变化,静止的时候保持不变




使用特权

评论回复
沙发
呐咯密密| | 2024-8-13 10:36 | 只看该作者
有没有办法把三轴拟合

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

44

帖子

3

粉丝