I2C 读取
Arduino/ESP32 通过 SDA/SCL 读取角度,常见地址固定为 0x36。
Overview
AS5600 通过检测芯片上方径向充磁磁铁的旋转角度输出绝对位置,适合旋钮、电机角度反馈、机器人关节和非接触电位器。模块供电、OUT 默认模式、上拉电阻和尺寸仍以实物批次为准。
Arduino/ESP32 通过 SDA/SCL 读取角度,常见地址固定为 0x36。
OUT 可为模拟或 PWM,默认模式需按模块说明或寄存器配置确认。
磁铁方向、距离和中心对准,比接线本身更影响读数稳定性。
Wiring
| AS5600 | Arduino UNO / Nano | 说明 |
|---|---|---|
| VCC | 5V 或 3.3V | 按模块实物说明确认 |
| GND | GND | 共地 |
| SDA | A4 / SDA | I2C 数据 |
| SCL | A5 / SCL | I2C 时钟 |
| DIR | GND 或 VCC | 不要悬空 |
ESP32
| AS5600 | ESP32 | 说明 |
|---|---|---|
| VCC | 3.3V | 优先 3.3V I2C |
| GND | GND | 共地 |
| SDA | GPIO21 | 常用默认 SDA |
| SCL | GPIO22 | 常用默认 SCL |
| DIR | GND 或 3.3V | 不要悬空 |
Magnet
AS5600 需要径向充磁磁铁,磁铁中心对准芯片中心,距离过远、偏心或磁铁方向不对都会导致角度不变或跳动。
Arduino Code
Arduino IDE 库管理器搜索并安装 AS5600,常用库作者为 RobTillaart。上传前先跑 I2C Scanner,应看到 0x36。
#include <Wire.h>
#include <AS5600.h>
AS5600 as5600;
void setup() {
Serial.begin(115200);
Wire.begin();
if (!as5600.begin()) {
Serial.println("AS5600 not found");
while (1);
}
Serial.println("AS5600 ready");
}
void loop() {
uint16_t raw = as5600.rawAngle();
float angle = raw * 360.0 / 4096.0;
Serial.print("Raw: ");
Serial.print(raw);
Serial.print(" Angle: ");
Serial.println(angle);
delay(200);
}FAQ
检查 VCC/GND/SDA/SCL、上拉电阻和供电电压。AS5600 普通版本地址固定为 0x36。
优先检查磁铁:必须径向充磁,并对准芯片中心;普通上下 N/S 磁铁通常不适合。
检查磁铁距离、偏心、电机干扰和供电。可读取 AGC/磁场状态判断磁铁太近或太远。
OUT 可输出模拟电压或 PWM,但默认模式与模块配置有关,需以实物和寄存器配置确认。
Customer Reply
References