ENCODER is compatibel met FACE Kit. U kunt het toetsenbordpaneel in de FACE-kit laten vervangen. Het is ontworpen voor roterende encoderbesturing, geïntegreerde Mega328-microprocessor binnenin en LED's rond de encoder.
Het series communicatieprotocol tussen M5 core en ENCODER is IIC (adres: 0x5E)
Producteigenschappen:
12 RGB led
IIC-communicatie
Eenvoudige API voor programmeren
Mega328 binnen
Encoder detectie
Productgrootte: 58,2 mm x 54,2 mm x 10 mm
Productgewicht: 17 g
EasyLoader
2. Dubbelklik na het downloaden van de software om de toepassing uit te voeren, sluit het M5-apparaat aan op de computer via de gegevenskabel, selecteer de poortparameters en klik op "Brandwond" om te beginnen met branden.
/* Parameter: led_index: 0 ~ 11 r, g, b: 0 ~ 254 */ void Led(int led_index, int r, int g, int b){ // IIC send data Wire.beginTransmission(Faces_Encoder_I2C_ADDR); Wire.write(led_index); Wire.write(r); Wire.write(g); Wire.write(b); Wire.endTransmission(); }
Lees encoder increment
void get_encoder_increment(void){ int temp_encoder_increment; // IIC 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; } }
Als u de volledige code wilt faces_encoder.ino, klik alstublieft hier.
/ * * faces_encoder.ino * / #include <M5Stack.h> #define Faces_Encoder_I2C_ADDR 0X5E // verklaring int encoder_increment; // positief: met de klok mee nagtive: tegen de klok in uint16_t encoder_value = 0; int button_state; uint8_t richting; // 0: met de klok mee 1: tegen de klok in int temp_encoder_increment; // initialisatie M5.begin (); Wire.begin (); // gegevens ophalen van ENCONDER Wire.requestFrom (Faces_Encoder_I2C_ADDR, 3); if (Wire.available ()){ temp_encoder_increment = Wire.read();// the first byte: increment button_state = Wire.read();// the second byte: button value } // IIC send data, 4bytes Wire.beginTransmission(Faces_Encoder_I2C_ADDR); Wire.write(led_index); Wire.write(r); Wire.write(g); Wire.write(b); Wire.endTransmission();