Доступные методы - 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
Продолжение следует... ✍