As5048a As5048 PWM SPI 14 бит Магнитный энкодер Бесконтактный датчик угла поворота к Arduino
- Информация о материале
- Обновлено: 10.03.2023, 13:45
- Опубликовано: 10.03.2023, 13:45
- Автор: DeniS
As5048a As5048 PWM SPI 14 бит Магнитный энкодер Бесконтактный датчик угла поворота
Datasheet As5048a
Подключение к Arduino
Скетч
Как полчить данные с датчика As5048
- Интерфейс SPI - для AS5048A.
- Подключение энкодера по I2C - для AS5048B.
- Выход PWM - доступен для всех модификаций. Разрешающая способность 12 бит.
Минус использования PWM-выхода заключается в том, что функция установки нулевого положения датчика в этом случае недоступна.
Библиотека As5048 для Arduino >>>
Скетч пример As5048 для Arduino
***********************************************
#include <SmallSPI.h>
#include <AS5048.h>
AS5048 Sen1(4);//connected to PD4(digital 4 on Uno) works only for 4,5,6, and 7
unsigned int dat;
byte lb, hb, low, hi, OCF, COF;
void setup()
{
Serial.begin(9600);
mySPI.begin(1);
Serial.println("Diagnostics:");//See page 14 in datasheet
dat = Sen1.getDiagnostics();
hb = (dat >> 8);
lb = dat & 0xFF;
Serial.print("AutomanticGainControl : "); Serial.println(lb);
OCF = (dat >> 0) & 0x1;//???
COF = (dat >> 0) & 0x1;//???
low = (dat >> 2) & 0x1;//Low distance alarm
hi = (dat >> 3) & 0x1;//High distance alarm
Serial.print("OCF : "); Serial.println(OCF);
Serial.print("COF : "); Serial.println(COF);
Serial.print("LOW : "); Serial.println(low);
Serial.print(" HI : "); Serial.println(hi);
Serial.println("Magnitude:");
Serial.println(Sen1.getMagnitude());
//start to read angle here so in loop the first red will not be garbage data
Serial.println(Sen1.getAngle());
}
void loop()
{
Serial.print("Angle:");
Serial.println(Sen1.getAngle());
delay(100);
}
***********************************************