#include #define CMD_DISP_ON 0x01 #define CMD_DISP_OFF 0x02 #define CMD_DOT_ON 0x03 #define CMD_DOT_OFF 0x04 #define CMD_SET_DUTY 0x05 #define CMD_SET_TRANS 0x06 #define TRANSITION_NONE 0 #define TRANSITION_TYPHOON 1 #define TRANSITION_FADE 2 #define TRANSITION_CROSS_FADE 3 byte dev_addr = 0x41; void setup() { Wire.begin(); } void loop() { for ( byte trns = TRANSITION_NONE; trns <= TRANSITION_CROSS_FADE; trns++) { setTransition(dev_addr, trns); setDuty(dev_addr, 255); dotOff(dev_addr); dispOn(dev_addr, 'I'); delay(1000); dispOn(dev_addr, 'Q'); delay(1000); dotOn(dev_addr); setDuty(dev_addr, 127); dispOn(dev_addr, 'c'); delay(1000); dispOn(dev_addr, 'o'); delay(1000); dispOn(dev_addr, 'm'); delay(1000); } } /////////////////// void setDuty(byte address, byte duty) { Wire.beginTransmission(address); byte data[2] = { CMD_SET_DUTY, duty }; Wire.write(data, 2); Wire.endTransmission(); } void setTransition(byte address, byte transition) { Wire.beginTransmission(address); byte data[2] = { CMD_SET_TRANS, transition }; Wire.write(data, 2); Wire.endTransmission(); } void dispOn(byte address, byte disp) { Wire.beginTransmission(address); byte data[2] = { CMD_DISP_ON, disp }; Wire.write(data, 2); Wire.endTransmission(); } void dispOff(byte address) { Wire.beginTransmission(address); Wire.write(CMD_DISP_OFF); Wire.endTransmission(); } void dotOn(byte address) { Wire.beginTransmission(address); Wire.write(CMD_DOT_ON); Wire.endTransmission(); } void dotOff(byte address) { Wire.beginTransmission(address); Wire.write(CMD_DOT_OFF); Wire.endTransmission(); }