Магнитный поворотный энкодер AS5600: 12 бит, I²C/PWM, подключение к Arduino и применение
Что такое AS5600?
AS5600 (ams OSRAM) — бесконтактный магнитный поворотной энкодер 12 бит (4096 позиций/оборот). Измеряет абсолютный угол диамагнитизированного магнита на оси. Выход: I²C (адрес 0x36), аналоговый (рациометричный VDD), PWM. Программируемый нуль и полный угол (18°–360°). Игнорирует однородные внешние поля. Идеальная замена потенциометрам.
Распиновка (SOIC-8 / TSSOP-8)
| Вывод | Имя | Функция |
|---|---|---|
| 1 | GND | Земля |
| 2 | VCC | Питание 3,3 В / 5 В |
| 3 | SDA | I²C данные |
| 4 | SCL | I²C такт |
| 5 | VDD (3V3) | Внутреннее 3,3 В (выход LDO, можно запитать МК) |
| 6 | PGO | Программирование нуля/макс. угла (ZPOS/MPOS) без I²C — 3-проводный режим | 7 | OUT | PWM / аналоговый выход (настроен по I²C) |
Ключевые особенности
- Бесконтактное измерение угла — нет износа
- 12-бит DAC / 4096 шагов на оборот
- Программируемый диапазон: 18°–360° (разрешение до 0,0044°)
- Автодетект магнита, авто-low-power режим
- Настройка ZPOS/MPOS через I²C или PGO (без МК)
- Выход: I²C (сырые данные), PWM (скважность = угол), аналог (0–VDD)
- Питание 3,3/5 В, ток ~5–10 мА, -40…+125°C
- I²C адрес 0x36 (фиксирован)
Принцип работы (Эффект Холла)
Встроенные датчики Холла фиксируют вектор магнитного поля вращающегося магнита. Внутренний 12-бит АЦП + ЦАП выдают угол. Магнит должен быть диамагнитизированным, размером с чип (~4–6 мм), зазор 0,5–3 мм, центрирован.
Работа с Arduino (Seeeduino / Uno / Nano)
Железо
- Arduino / Seeeduino V4.2
- Grove Base Shield (или провода)
- AS5600 модуль (Grove или самодельный)
- Диамагнитизированный магнит (диаметр 6 мм, толщина 2,5 мм, N35/N42)
Подключение (Grove I²C)
AS5600 → Grove I²C порт → Arduino VCC → 3.3V / 5V GND → GND SDA → A4 (Uno) / D20 (Mega) SCL → A5 (Uno) / D21 (Mega)
Софт (библиотека Seeed_AS5600)
- Скачайте библиотеку с GitHub:
Seeed-Studio/Seeed_AS5600 - Установите через Sketch → Include Library → Add .ZIP Library
- Файл → Примеры → Seeed_AS5600 → readAngle
- Загрузите, откройте Serial Monitor (115200 baud)
- Вращайте магнит — читайте угол 0–4095
Пример кода (минимальный)
#include
#define AS5600_ADDR 0x36
#define RAW_ANGLE_REG 0x0C
void setup() {
Wire.begin();
Serial.begin(115200);
}
void loop() {
Wire.beginTransmission(AS5600_ADDR);
Wire.write(RAW_ANGLE_REG);
Wire.endTransmission(false);
Wire.requestFrom(AS5600_ADDR, 2);
uint16_t raw = (Wire.read() << 8) | Wire.read();
float deg = raw * 360.0 / 4096.0;
Serial.print("Angle: "); Serial.println(deg);
delay(50);
}
Применение
- Бытовая техника: ручки управления, педали
- RC сервы, робототехника — обратная связь по углу
- Бесконтактные потенциометры (volume, dimmer)
- Автомобиль: датчики положения дросселя, педалей, руля
- Промышленная автоматизация: валы, приводы, манипуляторы
- Медицинские приборы: точная дозировка, позиционирование
Заключение
AS5600 — точный, надёжный, дешёвый энкодер для бесконтактного измерения угла. 12 бит, I²C/PWM/аналог, автокалибровка, широкий T-диапазон. Замена потенциометрам, оптическим энкодерам, ре졼верам в маломерном диапазоне. Нужна помощь с интеграцией? Пишите!
Промышленные технологии
- Цифровые магнитные Холл‑сенсоры: основы, дизайн и автомобильные применения
- IPS2200: высокоскоростной высокоточный индуктивный позиционный сенсор для промышленных двигателей
- Точный датчик температуры подшипников: обнаружение и мониторинг
- Повышение точности роботов с передовыми поворотными энкодерами Heidenhain
- Разработанный NASA индуктивный бесконтактный датчик положения для точного управления движением
- Индуктивный бесконтактный датчик позиции: технология точного контроля движения NASA
- Выбор правильного датчика двигателя: руководство по точной обратной связи
- Продвинутый RFID-сенсор вращательной позиции для точного углового отслеживания
- Датчик положения коленвала: как он обеспечивает плавную работу двигателя
- Датчик положения кривошипа: основа точного управления двигателем