Skip to main content

Grove - 12位磁性旋转位置传感器/编码器 (AS5600)

Grove - AS5600 是一款可编程的12位高分辨率非接触式磁性旋转位置传感器。Grove - AS5600 可以作为磁性电位器或磁性编码器工作,具有出色的可靠性和耐用性。

与传统的电位器/编码器相比,Grove - AS5600 具有显著优势:高精度、非接触式、无旋转角度限制。所有这些优势使其适用于非接触式角度测量应用,如机器人手臂、三脚架云台、电机闭环控制、机床轴定位。

特性

  • 非接触式,无旋转角度限制
  • 12位高分辨率,每圈4096个位置
  • Grove I2C、PWM/模拟输出
  • 角度范围灵活性强:最大角度可编程范围从18°到360°

规格参数

参数
供电电压3.3V / 5V
工作环境温度-40 – 125℃
输入电流-100-100mA
灵活性最大角度可编程范围从18°-360°
接口I2C(默认I2C地址: 0x36) & 不可更改
输出模拟/PWM输出
输出分辨率12位DAC

工作原理

Grove - AS5600 基于霍尔效应,内置霍尔传感器可以检测磁场方向的变化,因此也没有旋转角度限制。磁场方向信息通过放大器放大,借助内置的12位A/D转换器,AS5600模块可以每圈输出4096个位置。输出是可选择的,您可以使用I2C接口输出原始数据,或通过OUT引脚输出PWM波/模拟波。同时,最大角度也是可编程的,您可以将最大角度设置为18°到360°,这意味着测量角度精度可达18/4096。

note

AS5600对要测量的磁场有一定要求。请使用与芯片尺寸相似的磁铁。模块应尽可能靠近磁场进行测量,AS5600传感器中心应与磁场中心对齐。垂直距离最好在0.5毫米到3毫米之间。

硬件概述

支持的平台

ArduinoRaspberry Pi

入门指南

与Arduino一起使用

所需材料

Seeeduino V4.2Base ShieldGrove - 12位磁性旋转位置传感器/编码器 (AS5600)
enter image description hereenter image description hereenter image description here
立即购买立即购买立即购买

此外,您可以考虑我们的新产品Seeeduino Lotus M0+,它相当于Seeeduino V4.2和Baseshield的组合。

硬件连接

  • 步骤1. 将Grove - 12位磁性旋转位置传感器/编码器 (AS5600)连接到Base Shield的I2C端口。

  • 步骤2. 将Grove - Base Shield插入Seeeduino。

  • 步骤3 通过USB线将Seeeduino连接到PC。

软件

caution

如果这是您第一次使用Arduino,我们强烈建议您在开始之前先查看Arduino入门指南

  • 步骤1. 从Github下载AS5600库。
note

参考如何安装库来为Arduino安装库

  • 步骤2. 重启Arduino IDE。通过路径打开readAngle示例:FileExamplesSeeed_AS5600-masterreadAngle。通过这个演示,我们可以从传感器下方的磁铁读取角度。

readAngle示例代码如下:

#include <Wire.h>
#include <AS5600.h>
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#define SYS_VOL 3.3
#else
#define SERIAL Serial
#define SYS_VOL 5
#endif

AMS_5600 ams5600;

int ang, lang = 0;

void setup()
{
SERIAL.begin(115200);
Wire.begin();
SERIAL.println(">>>>>>>>>>>>>>>>>>>>>>>>>>> ");
if(ams5600.detectMagnet() == 0 ){
while(1){
if(ams5600.detectMagnet() == 1 ){
SERIAL.print("Current Magnitude: ");
SERIAL.println(ams5600.getMagnitude());
break;
}
else{
SERIAL.println("Can not detect magnet");
}
delay(1000);
}
}
}
/*******************************************************
/* Function: convertRawAngleToDegrees
/* In: angle data from AMS_5600::getRawAngle
/* Out: human readable degrees as float
/* Description: takes the raw angle and calculates
/* float value in degrees.
/*******************************************************/
float convertRawAngleToDegrees(word newAngle)
{
/* Raw data reports 0 - 4095 segments, which is 0.087 of a degree */
float retVal = newAngle * 0.087;
ang = retVal;
return ang;
}
void loop()
{
SERIAL.println(String(convertRawAngleToDegrees(ams5600.getRawAngle()),DEC));
}
  • 步骤3. 上传演示代码。如果您不知道如何上传代码,请查看如何上传代码

  • 步骤4. 通过点击Tool-> Serial Monitor打开Arduino IDE的串口监视器。或者同时按下ctrl+shift+m键。将波特率设置为115200

  • 步骤5. 当检测到传感器下方的磁铁时,结果应该如下所示:

note

这里使用了一个校准器。校准器2D文件在资源中列出,所以请随意下载并自己激光切割!

常见问题

Q1# 如何实现最大精度?

A1: 确保Grove - 12位磁性旋转位置传感器/编码器(AS5600)传感器与磁铁保持固定的距离/位置。首次使用时,旋转磁铁从角度0一直到角度360,以确保定位正确。

AS5600库还提供了完整的测试功能来操作传感器。

原理图在线查看器

资源

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...