diff --git a/controller/mixercontroller_w5100_pio/src/main.cpp b/controller/mixercontroller_w5100_pio/src/main.cpp index ac045c4..05d5bb7 100644 --- a/controller/mixercontroller_w5100_pio/src/main.cpp +++ b/controller/mixercontroller_w5100_pio/src/main.cpp @@ -1,12 +1,13 @@ /* * Ideas/TODO: * POT_MIN, POT_MAX as variable with calibration procedure. Drive slowly to both ends until value does not get lower. - * Motor error checking. Timeout overall (if regulation fails or stuck). Timeout movement (motor is tunring but no change in poti value detected). Move right direction. - * Hardware: motorentstörkondensatoren einbauen direkt an motor. 47nF + zu - und zwei 10nF + zu case und - zu case - * PI Optimieren. aktuell overshoot - * Implement knob menu structure */ +//#define DEBUG +//#define INFOMSG //print info messages + + + #include #include @@ -31,12 +32,16 @@ void setSelectionChannel(uint8_t i, boolean state); void setMuteChannel(uint8_t i, boolean state); void publishCurrentSetVolume(); void publishAllStates(int pn, String pTopicname, boolean (*pgetBit) (uint8_t)); -void changeRelaisByNumberTopic(uint8_t pn, String pTopicPrefix, String pTopic, String pspayload, void (*psetXChannel) (uint8_t, boolean)); +void changeRelaisByNumberTopic(uint8_t pn, String pTopicPrefix, uint8_t pindex, String pspayload, void (*psetXChannel) (uint8_t, boolean)); void setRelaisByNumber(uint8_t pn, String pTopicPrefix, uint8_t pnumber, bool pstate, void (*psetXChannel) (uint8_t, boolean)); float getSetVolume(); +uint8_t getIndex(uint8_t pn, String pTopic); #define LEDPIN 9 //PB1 = D9 = Pin15 -Adafruit_NeoPixel leds = Adafruit_NeoPixel(9, LEDPIN, NEO_GRB + NEO_KHZ800); +#define NUMLED 9 +Adafruit_NeoPixel leds = Adafruit_NeoPixel(NUMLED, LEDPIN, NEO_GRB + NEO_KHZ800); +uint32_t led_colors_standby[NUMLED]; + uint8_t wheelpos=0; #include "Ethernet.h" @@ -160,6 +165,8 @@ long last_ledupdate=0; #define INTERVAL_LEDUPDATE 50 void setup() { + led_colors_standby[NUMLED-1] = Wheel(100); //set default color for volume led + pinMode(PIN_BUTTON,INPUT_PULLUP); button_knob = Button(); @@ -170,35 +177,48 @@ void setup() { pinMode(SRCLOCK, OUTPUT); pinMode(SRDATA, OUTPUT); + leds.begin(); + leds.clear(); + /*for(uint8_t i=0;i