Доступные методы - S-LABc/AMS-AS5600-Arduino-Library GitHub Wiki

ЭТОТ РАЗДЕЛ ДОПИСЫВАЕТСЯ ПО МЕРЕ МОИХ СИЛ. ВСЕ МЕТОДЫ МОЖНО ПОСМОТРЕТЬ В ЗАГОЛОВКАХ ДЛЯ AS5600 И AS5600L ИЛИ В БАЗОВЫХ ПРИМЕРАХ

Конструктор

AS5600(TwoWire *twi)
  • C использованием ссылки на объект Wire класса TwoWire встроенной в Arduino IDE библиотеки
  • *twi - Ссылка на объект (обычно &Wire)

Для AS5600L конструктор выглядит иначе

AS5600L(TwoWire *twi, uint8_t _iic_address = AS5600L_DEFAULT_I2C_ADDRESS)
  • _iic_address - Адрес датчика, по умолчанию (с завода) AS5600L_DEFAULT_I2C_ADDRESS = 0x40

Защищенные

Методы этой группы доступны только в классах наследниках

Отправить

void AS5600::AS_SendFirstRegister(uint8_t _reg_addr)
  • Отправляет по шине I²C байт адреса регистра для последующего чтения данных начиная с этого адреса
  • _reg_addr - Адрес регистра

Для AS5600L метод переопределен и использует адрес датчика заданный пользователем либо 0x40 по умолчанию

void AS5600L::AS_SendFirstRegister(uint8_t _reg_addr)

Получить

uint8_t AS5600::AS_RequestSingleRegister(void)
  • Запрашивает по шине I²C один байт данных начиная с указанного ранее адреса

Для AS5600L метод переопределен и использует адрес датчика заданный пользователем либо 0x40 по умолчанию

uint8_t AS5600L::AS_RequestSingleRegister(void)
uint16_t AS5600::AS_RequestPairRegisters(void)
  • Запрашивает по шине I²C два байта данных начиная с указанного ранее адреса

Для AS5600L метод переопределен и использует адрес датчика заданный пользователем либо 0x40 по умолчанию

uint16_t AS5600L::AS_RequestPairRegisters(void)

Записать

void AS5600::AS_WriteOneByte(uint8_t _reg, uint8_t _payload)
  • Записывает один произвольный байт данных в произвольный регистр
  • _reg - Адрес регистра
  • _payload - Байт данных

Для AS5600L метод переопределен и использует адрес датчика заданный пользователем либо 0x40 по умолчанию

void AS5600L::AS_WriteOneByte(uint8_t _reg, uint8_t _payload)
void AS5600::AS_WriteTwoBytes(uint8_t _low_register, uint8_t _high_register, uint16_t _payload)
  • Записывает двухбайтовое значение данных в произвольный двухбайтовый регистр
  • _low_register - Младший адрес регистра
  • _high_register - Старший адрес регистра
  • _payload - Двухбайтовое значение

Для AS5600L метод переопределен и использует адрес датчика заданный пользователем либо 0x40 по умолчанию

void AS5600L::AS_WriteTwoBytes(uint8_t _low_register, uint8_t _high_register, uint16_t _payload)

Публичные

Методы этой группы доступны в классах наследниках и в скетчах Arduino

Взаимодействие с I²C

void begin(void)
  • Вызывает Wire.begin(). Запускает шину I²C. Если данное действие выполнено где-либо еще, то использовать этот метод не нужно

Для ESP8266 и ESP32 доступна перегрузка с возможностью указать SDA и SCL выводы микроконтроллера

void begin(int8_t _sda_pin, int8_t _scl_pin)
  • _sda_pin - Контакт назначенный как SDA, например 33
  • _scl_pin - Контакт назначенный как SCL, например 32
void setClock(uint32_t freq_hz)
  • Вызывает Wire.setClock() со значением по умолчанию 400000 - 400кГц. Устанавливает частоту (скорость) шины I²C. Если данное действие выполнено где-либо еще с таким же значением, то использовать этот метод не нужно.
  • Частоту можно задавать самостоятельно setClock(750000) - 750кГц, или использовать один из трех макросов:
setClock(AS5600_I2C_CLOCK_100KHZ); // 100кГц
setClock(AS5600_I2C_CLOCK_400KHZ); // 400кГц (значение по умолчанию, равносильно вызову setClock();)
setClock(AS5600_I2C_CLOCK_1MHZ); // 1Мгц
  • Не все микроконтроллеры и мультиплексоры I²C поддерживают высокие значения частоты шины (выше 400кГц)

Не из документации

Базовые

bool isConnected(void)
  • Позволяет убедиться в наличии связи с датчиком. Работает по стандартному примеру поиск устройства с заданным адресом на шине I²C
  • true - датчик обнаружен, false - датчик не обнаружен
void loadSavedValues(void)
  • Загружает значения из энергонезависимой памяти датчика в регистры ZPOS, MPOS, MANG, CONF. Алгоритм построен на рекомендациях производителя

Виртуальная кнопка

Эти методы построены на получении и обработки значений из регистра AGC

void setButtonMinAGC(byte _btn_min_agc)
  • Установка минимального порога срабатывания кнопки
  • _btn_min_agc - Значение минимального порога
byte getButtonMinAGC(void)
  • Получение минимального порога срабатывания кнопки
  • Возвращает однобайтовое значение

Управление контактом DIR

Эти методы используют стандартные методы Arduino - pinMode, digitalRead, digitalWrite

void attachDirectionPin(byte _pin_dir)
  • Установка контакта микроконтроллера для управления положительным направлением вращения магнита датчика
  • _pin_dir - Контакт микроконтроллера к которому подключен вывод DIR

Взаимодействие с Configuration Registers

Продолжение следует...