ENCODER 是一款兼容 FACE 套件的旋钮控制面板.专为旋转编码控制而设计,其内部集成Mega328微处理器,在旋钮的周围嵌入了由12个LED组成的LED灯环. M5Core与ENCODER之间的串行通信协议是I2C(地址:0x5E)
规格 | 参数 |
---|---|
RGB LED | x12 |
净重 | 27g |
毛重 | 47g |
产品尺寸 | 58.2*54.2*28mm |
包装尺寸 | 95*65*25mm |
材质 | Plastic(PC) |
EasyLoader是一个简洁快速的程序烧录器,其内置了一个产品相关的案例程序,通过简单步骤将其烧录至主控,即可进行一系列的功能验证.
Mega328 ISP下载接口Pin脚定义
控制RGB灯圈
/*
Parameter:
led_index: 0 ~ 11
r, g, b: 0 ~ 254
*/
void Led(int led_index, int r, int g, int b){
// I2C send data
Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
Wire.write(led_index);
Wire.write(r);
Wire.write(g);
Wire.write(b);
Wire.endTransmission();
}
读取编码器增量
void get_encoder_increment(void){
int temp_encoder_increment;
// I2C read data
Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
if(Wire.available()){
temp_encoder_increment = Wire.read();// get increment
button_state = Wire.read();// get button value
}
if(temp_encoder_increment > 127){//anti-clockwise
direction = 1;// flag for encoder direction
encoder_increment = 256 - temp_encoder_increment;
}
else{// clockwise
direction = 0;
encoder_increment = temp_encoder_increment;
}
}