Arduino library for the MPS MagAlpha magnetic angle sensor.
C++
Switch branches/tags
Nothing to show
Clone or download
Latest commit 9a8e722 Feb 22, 2017
Permalink
Failed to load latest commit information.
examples
src
LICENSE
README.md
keywords.txt
library.properties

README.md

MagAlpha library

Arduino library for the MPS MagAlpha magnetic angle sensor.

About

MagAlpha sensor detects the absolute angular position of a permanent magnet, typically a diametrically magnetized cylinder on the rotating shaft.

For more information on the MagAlpha sensor family:

Supported sensors

Supports all 3rd generation MagAlpha magnetic angle sensors from Monolithic Power Systems.

Applications Part Numbers
Turning knob applications (potentiometer replacement) MA800, MA820, MA850
Rotary encoders (optical encoder replacement, Servo motors, ...) MA702, MA704, MA710, MA730
Position controlled motor drivers (FOC, ...) MA302, MA310
Motor commutation (hall switches replacement) MA102

License

Written by Mathieu Kaelin for Monolithic Power Systems. MIT license, all text above must be included in any redistribution.

Connections

Power supply

Arduino MagAlpha
GND GND
+3.3V (Not 5V) VDD
Warning
Unlike most Arduino & Genuino boards, the MagAlpha runs at 3.3V. Even if the I/O can tolerate 5V, check that the voltage applied to VDD is at 3.3V. Applying a voltages higher than 3.3V to the VDD pin could damage the sensor.

Serial communication

All MagAlpha have a SPI communication interface. Some sensors like the MA702 also have an additional SSI (2-wire) interface.

SPI (4-wire interface)

Arduino MagAlpha
MOSI MOSI
MISO MISO
SCK SCLK
any available digital pin (default: pin 0) CS

SSI (2-wire interface)

Arduino MagAlpha
MISO SSD
SCK SSCK

Arduino SPI pin mapping

Arduino / Genuino Board MOSI MISO SCK CS Voltage Level
Zero ICSP-4 ICSP-1 ICSP-3 defined by the user, any digital pin (default: pin 0) +3.3V
MKRZero 8 10 9 defined by the user, any digital pin (default: pin 0) +3.3V
MKR1000 8 10 9 defined by the user, any digital pin (default: pin 0) +3.3V
101 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 defined by the user, any digital pin (default: pin 0) +3.3V
Due ICSP-4 ICSP-1 ICSP-3 defined by the user, any digital pin (default: pin 0) +3.3V
Uno or Duemilanove 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 defined by the user, any digital pin. Default pin must be changed because pin 0 is also used by the Serial port. (use pin 7 for example) +5V
Mega1280 or Mega2560 51 or ICSP-4 50 or ICSP-1 52 or ICSP-3 defined by the user, any digital pin (default: pin 0) +5V
Leonardo ICSP-4 ICSP-1 ICSP-3 defined by the user, any digital pin (default: pin 0) +5V

Check Arduino SPI library reference page for more information on the SPI signal connections.

Setup

Install the library directly from within the Arduino IDE by using the Library Manager (Sketch => Include Library => Manage Libraries...).

It is also possible to import the library Zip file (check release tab) from the Arduino IDE (Sketch => Include Library => Add .ZIP Library...).

The library can also be manually installed by copying the MagAlpha library folder in your arduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE to see the library.

Check this tutorial on Arduino library installation for more information: