AS5600 · Adafruit Magnetic Angle Sensor

Adafruit; микросхема ams OSRAM · Magnetic Angle Sensor · STEMMA QT · PID 6357

Бесконтактный датчик абсолютного угла для ручек, шарниров и приводов.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает Magnetic Angle Sensor · STEMMA QT · PID 6357

AS5600 измеряет угол вращающегося магнита без механического контакта с ним. Здесь представлена готовая плата Adafruit Magnetic Angle Sensor с разъёмами STEMMA QT. Датчик сообщает абсолютное положение внутри одного оборота, поэтому после включения не нужно искать исходную точку. Для работы нужен отдельный магнит и крепление, удерживающее его соосно сенсору.

Особенности

  • Используйте диаметрально намагниченный магнит: полюса N/S расположены по сторонам диска, а ось вращения проходит через центр микросхемы. Типовой зазор между магнитом и корпусом чипа — 0,5–3 мм; подбирайте его по статусу магнита и AGC.
  • 12 бит дают шаг около 0,0879°, но это не точность измерения. Итоговая погрешность зависит в том числе от магнита, его центровки и стабильности зазора.
  • Через STEMMA QT доступны питание и I²C. Аналоговый/PWM-сигнал выведен отдельно на OUT; в этом подключении он не нужен.

Для каких проектов подойдёт

  • Ручка управления: бесконтактный регулятор яркости или громкости.
  • Поворотный узел: измерение положения шарнира небольшого робота.
  • Учебный привод: обратная связь по углу выходного вала.

Чем отличается

Измеряет положение магнита сразу после включения. Число полных оборотов придётся считать программно; после отключения питания датчик его не сохраняет.

Характеристики

Сенсор
AS5600
Диапазон угла
0–360°, один оборот
Разрешение
12 бит / 4096 отсчётов
Шаг кода
≈0,0879°; не показатель точности
Интерфейс
I²C; отдельный OUT — аналоговый/PWM
Адрес I²C
0x36, фиксированный
Подключение
STEMMA QT / контакты под пайку
Магнит
Диаметрально намагниченный, соосно чипу
Питание модуля
VIN платы: 3,3 или 5 В; логика I²C соответствует VIN. С ESP32 подавайте 3,3 В. Микросхема питается через регулятор 3,3 В.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
VIN3V3Пример I²C: классический ESP32 DevKitC. Подтяжки шины идут к VIN, поэтому здесь нужно 3,3 В.
GNDGNDОбщая земля.
SDAGPIO21Данные I²C; подтяжка 10 кОм уже на плате.
SCLGPIO22Тактовая линия I²C; для ESP32-C3/C6/S3 выводы выбирайте отдельно.
OUTНе подключатьОтдельный аналоговый/PWM-выход; через STEMMA QT не передаётся.
3VoНе подключатьВыход регулятора платы, не вход питания в этом примере.
DIR / PGOНе подключатьНа обороте платы: DIR — перемычка направления, PGO — площадка программирования. Для первого запуска оставьте без изменений.

Подходит для ESP32. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги подключить Adafruit AS5600 Magnetic Angle Sensor, PID 6357. Уточни контроллер, среду разработки и задачу. Для классического ESP32 DevKitC используй VIN 3,3 В, GND, SDA GPIO21 и SCL GPIO22; остальные контакты не нужны для I²C. Начни с Adafruit AS5600 и Adafruit BusIO, адреса 0x36 и шины 100 кГц. Подготовь минимальный пример с проверкой обнаружения устройства и статуса магнита. Объясни установку магнита, перевод raw-кода в градусы и переход через 0°. Не выполняй постоянное программирование OTP.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Платформа
ESP32 DevKitC / Arduino Core

GPIO21/22 относятся к классическому ESP32; для других семейств проверьте распиновку.

Основная библиотека
Adafruit AS5600 + Adafruit BusIO

Arduino API. Создайте Adafruit_AS5600 sensor; сначала Wire.setPins(21, 22), затем проверьте sensor.begin(0x36, &Wire).

Шина I²C
0x36 / 100 кГц

После begin задайте Wire.setClock(100000). Адрес не меняется; нескольким AS5600 нужны отдельные шины или I²C-мультиплексор.

Чтение угла
sensor.getRawAngle()

Градусы = raw × 360.0 / 4096.0. getAngle() возвращает код с учётом настроек диапазона, а не готовые градусы.

Проверка магнита
sensor.isMagnetDetected()

Также проверяйте isAGCminGainOverflow() и isAGCmaxGainOverflow(); getAGC() помогает подобрать зазор.

Альтернатива Arduino
AS5600 · Rob Tillaart

Другой API: AS5600 sensor; Wire.begin(21, 22); sensor.begin(); sensor.rawAngle(). Выбирайте AS5600, не AS5600L; оставьте штатную DIR-перемычку. Библиотека работает через Wire, но конкретную плату и версию Core проверьте на стенде.

Альтернатива Python
Adafruit CircuitPython AS5600

sensor = adafruit_as5600.AS5600(i2c); sensor.raw_angle. Нужны Bus Device и Register; только поддерживаемые CircuitPython/Blinka-платы, не произвольная прошивка MicroPython.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты