Japanese page
Breakout board of the AS5600 (ams AG) magnetic absolute rotary encoder with 12-bit (4096ppr) resolution to 2.54mm pitch.
A neodymium magnet is included.
Power supply pins for 5V, 3.3V, and GND, and pins for I2C, analog, PWM outputs are provided. The supply voltage is 5V or 3.3V.
Feature
- High resolution: 4096ppr
- Magnetic type enables non-contact angle measurement, excellent reliability and durability
- Interface
- I2C: Angle reading and operation setting are possible by accessing the config register
- Analog output: Analog voltage value corresponding to angle
- PWM: PWM signal with duty ratio corresponding to angle
- Sampling time: 150μs
- Capable of reading values even when the axis center of the AS5600 and neodymium magnet is off by about 1mm
Included Items
- Board ×1
- Neodymium magnet ×1
Specification
- Board size: W20 x D13.5 mm
- Mounting holes: 15mm pitch, M3 x 2
- Magnet size: Φ6 x 2.5 mm
- Magnetization: Diametric
- When supplying 5V for power supply voltage, leave the 3.3V pin open. When supplying 3.3V, also supply 3.3V to the 5V pin.
- DIR pin is connected to GND. PGO pin is unconnected.
How to mount
- Attach the included magnet to the center of the rotor shaft.
- Attach the board to the fixture so that the center of the AS5600 aligns with the center of the magnet.
Program example with Arduino
Angle acquisition via I2C
Source code
Minimum code
#include <Wire.h>
#define AS5600_AS5601_DEV_ADDRESS 0x36
#define AS5600_AS5601_REG_RAW_ANGLE 0x0C
void setup() {
// I2C init
Wire.begin();
Wire.setClock(400000);
// Read RAW_ANGLE value from encoder
Wire.beginTransmission(AS5600_AS5601_DEV_ADDRESS);
Wire.write(AS5600_AS5601_REG_RAW_ANGLE);
Wire.endTransmission(false);
Wire.requestFrom(AS5600_AS5601_DEV_ADDRESS, 2);
uint16_t RawAngle = 0;
RawAngle = ((uint16_t)Wire.read() << 8) & 0x0F00;
RawAngle |= (uint16_t)Wire.read();
// Raw angle value (0 ~ 4095) is stored in RawAngle
}
void loop() {
}
Obtaining angles via analog pins
Source code
Minimum code
#include <stdint.h>
void setup() {
uint16_t AnalogValue = 0;
AnalogValue = analogRead(0);
AnalogValue &= 0x03FF;
AnalogValue = 0x03FF - AnalogValue;
// Angle value (0 ~ 1023) is stored in AnalogValue
}
void loop() {
}
Documents
Schematic
PDF File:schematic-v1_0.pdf
Dimensions
DXF File: dimension_dxf.zip
3D CAD Data
STEP File:3d_step.zip