GY-63_MS5611/libraries/AS5600/examples/AS5600_position/AS5600_position.ino
2022-12-22 14:03:01 +01:00

65 lines
1.2 KiB
C++

//
// FILE: AS5600_position.ino
// AUTHOR: Rob Tillaart
// PURPOSE: demo
// DATE: 2022-12-20
#include "AS5600.h"
#include "Wire.h"
AS5600 as5600; // use default Wire
void setup()
{
Serial.begin(115200);
Serial.println(__FILE__);
Serial.print("AS5600_LIB_VERSION: ");
Serial.println(AS5600_LIB_VERSION);
// ESP32
// as5600.begin(14, 15);
// AVR
as5600.begin(4); // set direction pin.
as5600.setDirection(AS5600_CLOCK_WISE); // default, just be explicit.
Serial.println(as5600.getAddress());
// as5600.setAddress(0x40); // AS5600L only
int b = as5600.isConnected();
Serial.print("Connect: ");
Serial.println(b);
delay(1000);
}
void loop()
{
static uint32_t lastTime = 0;
// set initial position
as5600.getCumulativePosition();
// update every 100 ms
// should be enough up to ~200 RPM
if (millis() - lastTime >= 100)
{
lastTime = millis();
Serial.print(as5600.getCumulativePosition());
Serial.print("\t");
Serial.println(as5600.getRevolutions());
}
// just to show how reset can be used
if (as5600.getRevolutions() >= 10)
{
as5600.resetPosition();
}
}
// -- END OF FILE --