This video demonstrates my Neodymium Angle Encoder. The circuit comprises 10 button magnets arranged NSNS to form a circle. Two Hall Effect transistors are placed over the magnets such that when the output voltage change from one transistor is maximum the output voltage change from the other is minimum. This produces sine and cosine waveforms when the magnet arm is rotated which enables us to calculate the instantaneous shaft angle. Calibration is simple ... short Arduino pin8 to ground and rotate the magnet arm a few times then remove the short to start measuring.
Construction details and code may be found here
https://www.instructables.com/Neodymium-Angle-Encoder/