Position Sensors
This library supports these types of off-the-shelf position sensors:
- Encoder:
- Sensor that counts
A
,B
andindex
channels impulses to estimate the position. - Examples:
- optical: OMRON 1000P
- capacitive: AMT103 CUI
- magnetic: AS5047U - using ABI
- Sensor that counts
- Magnetic sensor:
- Sensor that uses precise magnetic field measurement to estimate the position.
- They come with multitude of different communication standards such as: SPI, SSI, I2C, ABI, UVW, PWM…
- Supported communications: (releases )
- SPI, I2C, Analog, PWM
- UVW (using the hall sensor interface)
- ABI (using the encoder interface)
- Examples : AS5048A , AS5047U , AS5600
- Sensor that uses precise magnetic field measurement to estimate the position.
- Hall sensors:
- Sensor that estimates rotor position by reading magnet positions on the rotor.
- Examples : 49E Hall sonde , 105 Hall sensor
- Generic sensors: NEW📢
- Simplified implementation of your custom sensors - only one function to implement
All classes of sensors are implemented in generic way in order to support as many of their versions as possible.
Supporting additional sensors
If you are interested to see what does it take to enable your code to run with different type of sensor or with the communication interface that has not been implemented in the Arduino SimpleFOClibrary yet, check out the short example how to implement new sensor source. For more details about the theoretical parts of the code and the source code documentation visit digging deeper section.
NEW 📢
We've also created a simplified interface for implementing new sensors in a context of theGenericSensor
class. With it you can add your custom sensor to the SimpleFOClibrary by implementing only one function. Check the new sensor class
SimpleFOC Community
Finally, if you have implemented a new type of sensor to the library or you are searching for help to implement some specific sensor type don’t hesitate to post in community forum
It is always helpful to hear the stories/problems/suggestions of people implementing the code and you might find a lot of answered questions there already!