
Arduino Quick Start



#include "M5Chain.h"
#define RXD_PIN GPIO_NUM_5 // 47 for the other side of Chain DualKey
#define TXD_PIN GPIO_NUM_6 // 48 for the other side of Chain DualKey
Chain M5Chain;
device_list_t *device_list = NULL;
uint16_t device_count = 0;
uint16_t angle_12bit;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("===========================");
Serial.println("M5Stack Chain Angle Test");
M5Chain.begin(&Serial2, 115200, RXD_PIN, TXD_PIN);
while (!M5Chain.isDeviceConnected()) {
Serial.println("No device connected");
delay(1000);
}
M5Chain.getDeviceNum(&device_count);
device_list = (device_list_t *)malloc(sizeof(device_list_t));
device_list->count = device_count;
device_list->devices = (device_info_t *)malloc(sizeof(device_info_t) * device_count);
M5Chain.getDeviceList(device_list);
if (device_list->devices[0].device_type == CHAIN_ANGLE_TYPE_CODE) {
Serial.println("ID[1] is Chain Angle\n");
delay(1000);
} else {
Serial.println("ID[1] is NOT Chain Angle\n");
return;
}
}
void loop() {
M5Chain.getAngle12BitAdc(1, &angle_12bit); // Device ID
Serial.print("angle_12bit:"); // 0 - 4096
Serial.println(angle_12bit);
}Use the Chain Bridge connector to link the main controller Chain DualKey with Chain Angle. When connecting, make sure the direction is correct: the triangular arrow should point outward from the main controller Chain DualKey, as shown below:
Compile and upload the above program to the device. Click the button in the upper-right corner of Arduino IDE to open Serial Plotter. Rotate the knob on Chain Angle; the knob position will be displayed in real time on the graph: