【花雕学编程】Arduino动手做(225)---AS5600磁编码器 磁感应角度测量传感器模块14

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百二十五:AS5600磁编码器 磁感应角度测量传感器 12bit高精度模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
核心芯片:AS5600
是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。这种非接触式系统测量径向磁化同轴磁体的绝对角度。这款 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何均匀的外部杂散磁场的影响。行业标准的I²C接口支持用户对非易失性参数进行简单编程,无需专门的编程器。此外,该器件还实现了在所谓的“3线模式”中轻松进行启动和停止位置编程,无需编程器或数字接口。输出的默认范围是 0 到 360 度。AS5600 可以通过编程零角度(开始位置)和最大角度(停止位置)来应用于较小的范围。AS5600 还配备了智能低功耗模式功能,可自动降低功耗。

在这里插入图片描述
Arduino实验接线示意图

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百二十五:AS5600磁编码器 磁感应角度测量传感器 12bit高精度模块
项目实验之十三:测量步进电机的实时位置并在Arduino IDE的串口绘图监视器中显示

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十五:AS5600磁编码器 磁感应角度测量传感器  12bit高精度模块
  项目实验之十三:测量步进电机的实时位置并在Arduino IDE的串口绘图监视器中显示
*/

#include <Wire.h>
#include <SimpleFOC.h>

// 使用SimpleFOC库中的低通滤波器
LowPassFilter as5600_filter(0.01);

void setup() {
  Serial.begin(115200);
  Wire.begin(); // 初始化I2C
}

void loop() {
  uint16_t readValue = 0;
  byte readArray[2];

  // 通知设备即将读取数据
  Wire.beginTransmission(0x36);
  Wire.write(0x0C);
  Wire.endTransmission(false);

  // 读取数据的MSB和LSB
  Wire.requestFrom(0x36, (uint8_t)2);
  if (Wire.available() == 2) {
    readArray[0] = Wire.read();
    readArray[1] = Wire.read();
    readValue = (readArray[0] << 8) | readArray[1];
    float angle = (readValue / 4096.0) * 360.0; // 将原始数据转换为度数
    float filteredAngle = as5600_filter(angle);
    Serial.println(filteredAngle); // 输出到串口监视器
  } else {
    Serial.println("Error reading data");
  }
  delay(50);
}

实验串口返回情况

在这里插入图片描述
为了测量步进电机的实时位置并在Arduino IDE的串口绘图监视器中显示,可以使用AS5600传感器读取角度数据,并将其转换为度数。

要点解读
1、I2C初始化:使用Wire.begin()初始化I2C总线。
2、数据请求:使用Wire.requestFrom()直接向从机发送数据请求信号。
3、数据读取:使用Wire.read()获取传感器数据。
4、数据转换:将原始数据除以4096,再乘以360,得到角度值。
5、低通滤波:对转换后的角度值进行低通滤波处理。
6、串口输出:将处理后的角度值通过串口输出,便于在串口绘图监视器中查看。

使用串口绘图监视器
1、打开Arduino IDE。
2、选择工具菜单中的“串口监视器”。
3、在串口监视器窗口中,选择右下角的“绘图”模式。
4、你将看到传感器数据的实时图形显示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
「雕爷编程Arduino动手做寻迹的实验可以使用TCRT5000红外反射光电开关寻迹传感器模块。这个传感器模块可以通过检测周围的光反射来进行寻迹操作。你可以将这个模块连接到mBot的主控板mCore V1.5的RJ25接口上,因为mBot的主控板兼容Arduino系统,所以你可以使用Arduino编程语言来控制mBot进行寻迹操作。请参考【Arduino】168种传感器模块系列实验中的实验六十六,该实验详细介绍了如何使用TCRT5000红外反射光电开关寻迹传感器模块进行寻迹。祝你成功完成实验!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【雕爷编程Arduino动手做(194)---makeblock mbot 主控板2](https://blog.csdn.net/weixin_41659040/article/details/132141677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [【雕爷编程Arduino动手做(65)---红外寻迹传感器](https://blog.csdn.net/weixin_41659040/article/details/106604080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值