diff --git a/Dosificador_LCD2004_4buttons/Dosificador_LCD2004_4buttons.ino b/Dosificador_LCD2004_4buttons/Dosificador_LCD2004_4buttons.ino index 3db3ef3..bb4e024 100644 --- a/Dosificador_LCD2004_4buttons/Dosificador_LCD2004_4buttons.ino +++ b/Dosificador_LCD2004_4buttons/Dosificador_LCD2004_4buttons.ino @@ -40,20 +40,18 @@ * MENÚ **************************************************/ // BLOQUES DE MEMORIA EEPROM - #define BUTTON_SENSITIVITY_EEPROM_ADDRESS 0 - #define PRESS_BUTTON_EEPROM_ADDRESS 1 - #define HOLD_DOWN_BUTTON_EEPROM_ADDRESS 2 - #define LAG_TIME_MIN_EEPROM_ADDRESS 3 // Minutos, tiempo de retraso - #define LAG_TIME_SEG_EEPROM_ADDRESS 4 // Segundo, tiempo de retraso - #define LAG_TIME_DEC_EEPROM_ADDRESS 5 // Décimas de segundo, tiempo de retraso - #define DOSING_TIME_MIN_EEPROM_ADDRESS 6 // Minutos, tiempo dosificación - #define DOSING_TIME_SEG_EEPROM_ADDRESS 7 // Segundos, tiempo dosificación - #define DOSING_TIME_DEC_EEPROM_ADDRESS 8 // Décimas de segundo, tiempo dosificación + #define BUTTON_SENSITIVITY_EEPROM_ADDRESS 0 + #define DISPENSER_MODE_EEPROM_ADDRESS 1 + #define LAG_TIME_MIN_EEPROM_ADDRESS 2 // Minutos, tiempo de retraso + #define LAG_TIME_SEG_EEPROM_ADDRESS 3 // Segundo, tiempo de retraso + #define LAG_TIME_DEC_EEPROM_ADDRESS 4 // Décimas de segundo, tiempo de retraso + #define DOSING_TIME_MIN_EEPROM_ADDRESS 5 // Minutos, tiempo dosificación + #define DOSING_TIME_SEG_EEPROM_ADDRESS 6 // Segundos, tiempo dosificación + #define DOSING_TIME_DEC_EEPROM_ADDRESS 7 // Décimas de segundo, tiempo dosificación // FACTORY SETTINGS - #define BUTTON_SENSITIVITY_DEFAULT_VALUE 9 - #define PRESS_BUTTON_DEFAULT_VALUE 3 - #define HOLD_DOWN_BUTTON_DEFAULT_VALUE 1 + #define BUTTON_SENSITIVITY_DEFAULT_VALUE 10 + #define DISPENSER_MODE_DEFAULT_VALUE 2 #define LAG_TIME_MIN_DEFAULT_VALUE 0 // Minutos, tiempo de retraso #define LAG_TIME_SEG_DEFAULT_VALUE 3 // Segundo, tiempo de retraso #define LAG_TIME_DEC_DEFAULT_VALUE 5 // Décimas de segundo, tiempo de retraso @@ -62,32 +60,33 @@ #define DOSING_TIME_DEC_DEFAULT_VALUE 9 // Décimas de segundo, tiempo dosificación // SETTINGS MENU - #define ALL_SETTINGS 0 - #define OUT_OF_MENU 0 + #define OUT_OF_MENU 0 + #define ALL_SETTINGS 0 - #define IN_SENSITIVITY_BUTTON 1 - #define IN_PRESS_BUTTON 2 - #define IN_HOLD_DOWN_BUTTON 3 - #define IN_LAG 4 - #define IN_DOSING 5 - #define IN_FACTORY_RESET 6 - #define IN_RESTART 7 - #define IN_EXIT 8 + // POSITION MENU + #define IN_SENSITIVITY_BUTTON 1 + #define IN_DISPENSER_MODE 2 + #define IN_LAG 3 + #define IN_DOSING 4 + #define IN_FACTORY_RESET 5 + #define IN_RESTART 6 + #define IN_EXIT 7 - #define VIEW 0 - #define UPDATE 1 + #define VIEW 0 + #define UPDATE 1 - #define POSITION_ONE 0 - #define POSITION_TWO 1 - #define POSITION_THREE 2 + #define POSITION_ONE 0 + #define POSITION_TWO 1 + #define POSITION_THREE 2 - #define MODE_1 0 - #define MODE_2 1 - #define MODE_3 2 - #define FACTORY_RESET 3 - #define RESTART 4 - #define CANCEL 5 + // text_info[] index + #define DISPENSER_MODE 0 + #define BELT_MODE 1 + #define FACTORY_RESET 2 + #define RESTART 3 + #define CANCEL 4 + // MENU & LCD #define AUTO_EXIT_MENU_MILLIS 15000 #define BLINK_MILLIS 1600 #define LCD_PROCESS_REFRESH_MILLIS 333 @@ -100,13 +99,22 @@ #define DISPENSER_DOSING 3 #define DISPENSER_BLOCK 4 - // STATUS RELAY - #define RELAY_HIGH HIGH - #define RELAY_LOW LOW + // MODE EEPROM DISPENSER + #define DISPENSER_MODE_VALUE 1 + #define BELT_MODE_VALUE 2 - // STATUS BUTTON - #define DOSING_BUTTON_PUSH 0 - #define DOSING_BUTTON_IDLE 1 + // RELAY STATUS + #define RELAY_HIGH HIGH + #define RELAY_LOW LOW + + // SENSOR STATUS + #define SENSOR_UNLOCK 0 + #define SENSOR_LOCK 1 + + #define SENSOR_ACTIVATED LOW + + // SENSOR ACTIVATION BUFFER SIZE + #define SENSOR_BUFFER_SIZE 25 /************************************************** @@ -134,35 +142,49 @@ /************************************************** * ENVIRONMENT VARIABLES **************************************************/ - // Dosing + // Configuraciones del dosificador uint16_t button_sensitivity_millis; - uint8_t press_button_mode; - uint8_t hold_down_button_mode; + uint8_t dispenser_mode; uint16_t lag_time_decseg; uint16_t dosing_time_decseg; - uint32_t button_pressed_millis; - uint8_t release_button; + // Momento del bloqueo del sensor + uint32_t sensor_lock_millis; + + // Registro del sensor + uint8_t last_sensor_status = SENSOR_UNLOCK; + uint8_t relay_activation_pointer; + uint32_t relay_activation_millis_ini[SENSOR_BUFFER_SIZE]; + uint32_t relay_activation_millis_end[SENSOR_BUFFER_SIZE]; + + + // Estado del Relevador + uint8_t relay_state = RELAY_LOW; + + + // Estado del dosificador uint8_t dispenser_status; uint32_t dispenser_status_time_millis; + + // Navegación de menú + uint8_t setup_var[3]; uint8_t menu_section; uint8_t menu_status; uint8_t menu_cursor_var; - uint8_t setup_var[3]; - + uint32_t blink_millis; uint32_t last_change_menu_millis; + boolean refresh_lcd_menu; // LCD2004 Render LiquidCrystal_I2C lcd(LCD_I2C_ADDRESS, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); String menu[] = { - "SENSIBILIDAD BOTON", - "AL PRESIONAR BOTON", - "AL MANTENER PRESIO", + "SENSIBILIDAD SENSOR", + "MODO DE TRABAJO", "RETARDO AL INICIAR", "TIEMPO DOSIFICACION", "VALORES DE FABRICA", @@ -179,17 +201,13 @@ }; String text_info[] = { - "MODO 1", - "MODO 2", - "MODO 3", + "DOSIFICADOR", + "BANDA TRANSPORTADOR", "RESTAURAR", "REINICAR", "CANCELAR", }; - boolean refresh_lcd_menu; - uint32_t blink_millis; - /************************************************** * FRONT PANEL OF CONFIGURATIONS @@ -291,20 +309,12 @@ save_setting(IN_SENSITIVITY_BUTTON); break; - case IN_PRESS_BUTTON: + case IN_DISPENSER_MODE: if(menu_status == VIEW) menu_status = UPDATE; else if(++menu_cursor_var > POSITION_ONE) - save_setting(IN_PRESS_BUTTON); - break; - - case IN_HOLD_DOWN_BUTTON: - if(menu_status == VIEW) - menu_status = UPDATE; - - else if(++menu_cursor_var > POSITION_ONE) - save_setting(IN_HOLD_DOWN_BUTTON); + save_setting(IN_DISPENSER_MODE); break; case IN_LAG: @@ -374,19 +384,10 @@ } break; - case IN_PRESS_BUTTON: + case IN_DISPENSER_MODE: if(menu_status == VIEW){ load_menu_variables(IN_SENSITIVITY_BUTTON); - }else{ // UPDATE - setup_var[0] = setup_var[0] <= 1 ? 3 : --setup_var[0]; - } - break; - - case IN_HOLD_DOWN_BUTTON: - if(menu_status == VIEW){ - load_menu_variables(IN_PRESS_BUTTON); - }else{ // UPDATE setup_var[0] = setup_var[0] <= 1 ? 2 : --setup_var[0]; } @@ -394,7 +395,7 @@ case IN_LAG: if(menu_status == VIEW){ - load_menu_variables(IN_SENSITIVITY_BUTTON); + load_menu_variables(IN_DISPENSER_MODE); }else{ // UPDATE if(menu_cursor_var == POSITION_ONE) @@ -426,7 +427,9 @@ case IN_FACTORY_RESET: if(menu_status == VIEW){ - load_menu_variables(IN_DOSING); + dispenser_mode == DISPENSER_MODE_VALUE? + load_menu_variables(IN_DOSING): + load_menu_variables(IN_LAG); }else{ // UPDATE setup_var[0] = setup_var[0] >= 1 ? 0 : ++setup_var[0]; @@ -443,7 +446,7 @@ break; case IN_EXIT: - load_menu_variables(IN_FACTORY_RESET); + load_menu_variables(IN_RESTART); break; } break; @@ -456,23 +459,14 @@ case IN_SENSITIVITY_BUTTON: if(menu_status == VIEW){ - load_menu_variables(IN_LAG); + load_menu_variables(IN_DISPENSER_MODE); }else{ // UPDATE setup_var[0] = setup_var[0] <= 1 ? 10 : --setup_var[0]; } break; - case IN_PRESS_BUTTON: - if(menu_status == VIEW){ - load_menu_variables(IN_LAG); - - }else{ // UPDATE - setup_var[0] = setup_var[0] >= 3 ? 1 : ++setup_var[0]; - } - break; - - case IN_HOLD_DOWN_BUTTON: + case IN_DISPENSER_MODE: if(menu_status == VIEW){ load_menu_variables(IN_LAG); @@ -483,7 +477,9 @@ case IN_LAG: if(menu_status == VIEW){ - load_menu_variables(IN_DOSING); + dispenser_mode == DISPENSER_MODE_VALUE? + load_menu_variables(IN_DOSING): + load_menu_variables(IN_FACTORY_RESET); }else{ // UPDATE if(menu_cursor_var == POSITION_ONE) @@ -541,8 +537,8 @@ refresh_lcd_menu = true; last_change_menu_millis = millis(); - serialPrint("button_value: "); - serialPrintln(button_value); + //serialPrint("button_value: "); + //serialPrintln(button_value); serialPrint("menu_section: "); serialPrint(menu_section); @@ -572,20 +568,12 @@ serialPrintln("Save button_sensitivity_millis"); break; - case IN_PRESS_BUTTON: - EEPROM.write(PRESS_BUTTON_EEPROM_ADDRESS, setup_var[0]); + case IN_DISPENSER_MODE: + EEPROM.write(DISPENSER_MODE_EEPROM_ADDRESS, setup_var[0]); - load_setting(IN_PRESS_BUTTON); + load_setting(IN_DISPENSER_MODE); - serialPrintln("Save press_button_mode"); - break; - - case IN_HOLD_DOWN_BUTTON: - EEPROM.write(HOLD_DOWN_BUTTON_EEPROM_ADDRESS, setup_var[0]); - - load_setting(IN_HOLD_DOWN_BUTTON); - - serialPrintln("Save hold_down_button_mode"); + serialPrintln("Save dispenser_mode"); break; case IN_LAG: @@ -611,8 +599,7 @@ case IN_FACTORY_RESET: if(setup_var[0]){ EEPROM.write(BUTTON_SENSITIVITY_EEPROM_ADDRESS, BUTTON_SENSITIVITY_DEFAULT_VALUE); - EEPROM.write(PRESS_BUTTON_EEPROM_ADDRESS, PRESS_BUTTON_DEFAULT_VALUE); - EEPROM.write(HOLD_DOWN_BUTTON_EEPROM_ADDRESS, HOLD_DOWN_BUTTON_DEFAULT_VALUE); + EEPROM.write(DISPENSER_MODE_EEPROM_ADDRESS, DISPENSER_MODE_DEFAULT_VALUE); EEPROM.write(LAG_TIME_MIN_EEPROM_ADDRESS, LAG_TIME_MIN_DEFAULT_VALUE); EEPROM.write(LAG_TIME_SEG_EEPROM_ADDRESS, LAG_TIME_SEG_DEFAULT_VALUE); EEPROM.write(LAG_TIME_DEC_EEPROM_ADDRESS, LAG_TIME_DEC_DEFAULT_VALUE); @@ -629,8 +616,11 @@ case IN_RESTART: if(setup_var[0]){ - dispenser_status = DISPENSER_DOSING; - dispenser_status_time_millis = 0; + for (int i = 0; i < SENSOR_BUFFER_SIZE; ++i){ + relay_activation_pointer = 0; + relay_activation_millis_ini[i] = 0; + relay_activation_millis_end[i] = 0; + } load_menu_variables(OUT_OF_MENU); @@ -645,8 +635,7 @@ switch(_setting){ case ALL_SETTINGS: load_setting(IN_SENSITIVITY_BUTTON); - load_setting(IN_PRESS_BUTTON); - load_setting(IN_HOLD_DOWN_BUTTON); + load_setting(IN_DISPENSER_MODE); load_setting(IN_LAG); load_setting(IN_DOSING); break; @@ -658,22 +647,15 @@ serialPrintln(button_sensitivity_millis); break; - case IN_PRESS_BUTTON: - press_button_mode = EEPROM.read(PRESS_BUTTON_EEPROM_ADDRESS); + case IN_DISPENSER_MODE: + dispenser_mode = EEPROM.read(DISPENSER_MODE_EEPROM_ADDRESS); - serialPrint("press_button_mode: "); - serialPrintln(press_button_mode); - break; - - case IN_HOLD_DOWN_BUTTON: - hold_down_button_mode = EEPROM.read(HOLD_DOWN_BUTTON_EEPROM_ADDRESS); - - serialPrint("hold_down_button_mode: "); - serialPrintln(hold_down_button_mode); + serialPrint("dispenser_mode: "); + serialPrintln(dispenser_mode); break; case IN_LAG: - lag_time_decseg = (EEPROM.read(LAG_TIME_SEG_EEPROM_ADDRESS) * 10) + EEPROM.read(LAG_TIME_DEC_EEPROM_ADDRESS); + lag_time_decseg = (EEPROM.read(LAG_TIME_MIN_EEPROM_ADDRESS) * 600) + (EEPROM.read(LAG_TIME_SEG_EEPROM_ADDRESS) * 10) + EEPROM.read(LAG_TIME_DEC_EEPROM_ADDRESS); serialPrint("lag_time_decseg: "); serialPrintln(lag_time_decseg); @@ -707,12 +689,8 @@ setup_var[0] = EEPROM.read(BUTTON_SENSITIVITY_EEPROM_ADDRESS); break; - case IN_PRESS_BUTTON: - setup_var[0] = EEPROM.read(PRESS_BUTTON_EEPROM_ADDRESS); - break; - - case IN_HOLD_DOWN_BUTTON: - setup_var[0] = EEPROM.read(HOLD_DOWN_BUTTON_EEPROM_ADDRESS); + case IN_DISPENSER_MODE: + setup_var[0] = EEPROM.read(DISPENSER_MODE_EEPROM_ADDRESS); break; case IN_LAG: @@ -816,19 +794,14 @@ lcd.print(fill_string_ws(fill_string_ws(String(setup_var[0]), 2, 1, "0"), 20, 3)); break; - case IN_PRESS_BUTTON: - case IN_HOLD_DOWN_BUTTON: + case IN_DISPENSER_MODE: switch(setup_var[0]){ - case 1: - lcd.print(fill_string_ws(text_info[MODE_1], 20, 3)); + case DISPENSER_MODE_VALUE: + lcd.print(fill_string_ws(text_info[DISPENSER_MODE], 20)); break; - case 2: - lcd.print(fill_string_ws(text_info[MODE_2], 20, 3)); - break; - - case 3: - lcd.print(fill_string_ws(text_info[MODE_3], 20, 3)); + case BELT_MODE_VALUE: + lcd.print(fill_string_ws(text_info[BELT_MODE], 20)); break; } break; @@ -889,11 +862,10 @@ break; case DISPENSER_DOSING: - lcd.print(fill_string_ws(process_time(), 8, 1)); + lcd.print(fill_string_ws(dispenser_mode == DISPENSER_MODE_VALUE? process_time(): "--:--", 8, 1)); break; case DISPENSER_BLOCK: - //lcd.print(fill_string_ws(process_time(), 8, 1)); break; } } @@ -920,12 +892,15 @@ break; case IN_SENSITIVITY_BUTTON: - case IN_PRESS_BUTTON: - case IN_HOLD_DOWN_BUTTON: case IN_FACTORY_RESET: case IN_RESTART: lcd.setCursor(3,1); break; + + case IN_DISPENSER_MODE: + lcd.setCursor(0,1); + break; + } lcd.cursor(); @@ -938,113 +913,138 @@ **************************************************/ void loop_dosage_process() { - if(digitalRead(DOSING_BUTTON_PIN) == DOSING_BUTTON_PUSH){ - if(button_pressed_millis == 0) - button_pressed_millis = millis(); + dispenser_status = DISPENSER_IDLE; - // Se supero el button_sensitivity_millis - if (millis() >= (button_pressed_millis + button_sensitivity_millis)) - start_dosing_process(); + + // Se a activado el Sensor + if(digitalRead(DOSING_BUTTON_PIN) == SENSOR_ACTIVATED){ + if(sensor_lock_millis == 0) + sensor_lock_millis = millis(); + + // Se supero el button_sensitivity_millis + if(last_sensor_status == SENSOR_UNLOCK && millis() >= (sensor_lock_millis + button_sensitivity_millis)){ + // Registramos en Inicio de Proceso de dosifiación + relay_activation_millis_ini[relay_activation_pointer] = millis() + (lag_time_decseg * 100); + + // En modo Dosificador + if(dispenser_mode == DISPENSER_MODE_VALUE) + relay_activation_millis_end[relay_activation_pointer] = relay_activation_millis_ini[relay_activation_pointer] + (dosing_time_decseg * 100); + + last_sensor_status = SENSOR_LOCK; + } + + if(dispenser_mode == DISPENSER_MODE_VALUE && relay_activation_millis_end[relay_activation_pointer] == 0){ + dispenser_status = DISPENSER_BLOCK; + } + + + }else if(last_sensor_status == SENSOR_LOCK){ + if(dispenser_mode == DISPENSER_MODE_VALUE){ + relay_activation_millis_ini[relay_activation_pointer] = 0; + relay_activation_millis_end[relay_activation_pointer] = 0; + + }else{ + relay_activation_millis_end[relay_activation_pointer++] = millis() + (lag_time_decseg * 100); + + // Si supera el tamaño del buffer vamos al inicio del buffer + if(relay_activation_pointer >= SENSOR_BUFFER_SIZE) + relay_activation_pointer = 0; + } + + sensor_lock_millis = 0; + last_sensor_status = SENSOR_UNLOCK; + } + + + // Determinamos el estado del Relevador + relay_state = RELAY_LOW; + + + if(dispenser_mode == DISPENSER_MODE_VALUE){ + // Depuramos + if(relay_activation_millis_end[relay_activation_pointer] > 0 && millis() >= relay_activation_millis_end[relay_activation_pointer]){ + relay_activation_millis_ini[relay_activation_pointer] = 0; + relay_activation_millis_end[relay_activation_pointer] = 0; + } + + // Existe periodo de dosificación + if(relay_activation_millis_ini[relay_activation_pointer] > 0) { + // Revisamos si se debe encender el Dosificador + if(millis() >= relay_activation_millis_ini[relay_activation_pointer]){ + dispenser_status = DISPENSER_DOSING; + dispenser_status_time_millis = relay_activation_millis_end[relay_activation_pointer]; + + relay_state = RELAY_HIGH; + + // Aun no comienza dosificación + }else{ + dispenser_status = DISPENSER_LAG; + dispenser_status_time_millis = relay_activation_millis_ini[relay_activation_pointer]; + } + } }else{ + for (int i = 0; i < SENSOR_BUFFER_SIZE; ++i){ + // Depuramos el Buffer + if(relay_activation_millis_end[i] > 0 && millis() >= relay_activation_millis_end[i]){ + relay_activation_millis_ini[i] = 0; + relay_activation_millis_end[i] = 0; + } - release_button = 0; - button_pressed_millis = 0; + if(relay_activation_millis_ini[i] > 0){ + // Revisamos en el Buffer si se debe encender el Dosificador + if(millis() >= relay_activation_millis_ini[i]){ + dispenser_status = DISPENSER_DOSING; + dispenser_status_time_millis = 0; + + relay_state = RELAY_HIGH; + + // Aun no comienza dosificación + }else if (relay_state == RELAY_LOW){ + dispenser_status = DISPENSER_LAG; + dispenser_status_time_millis = relay_activation_millis_ini[i]; + } + } + } } - continue_dosing_process(); - } - void start_dosing_process() - { - /* - Modo 1: - Modo 2: - Modo 3: - */ + // Aplicamos cambios en el estado del relevador + digitalWrite(RELAY_PIN, relay_state); /* - if(press_button_mode == 3 && - dispenser_status != DISPENSER_IDLE && - dispenser_status_time_millis >= button_pressed_millis && - release_button == 0){ + dispenser_status_time_millis - dispenser_status = DISPENSER_DOSING; - dispenser_status_time_millis = 0; - - serialPrint("Proceso detenido"); - serialPrintln(millis()); + dispenser_status = DISPENSER_IDLE; + dispenser_status = DISPENSER_LAG; + dispenser_status = DISPENSER_DOSING; + dispenser_status = DISPENSER_BLOCK; - }else if((press_button_mode == 1 || press_button_mode == 3) && dispenser_status == DISPENSER_IDLE){ - dispenser_status = DISPENSER_LAG; - dispenser_status_time_millis = millis() + ((uint32_t) lag_time_decseg * 100); - release_button = 1; + // Determinamos el estado del Dosificador + if(dispenser_mode == DISPENSER_MODE_VALUE){ - serialPrint("Iniciando proceso "); - serialPrintln(millis()); - }else if(press_button_mode == 2){ - dispenser_status = DISPENSER_RESTART; + }else{ - release_button = 1; - } + } + + + for (int i = 0; i < SENSOR_BUFFER_SIZE; ++i){ + serialPrint(i); + serialPrint(") "); + serialPrint(relay_activation_millis_ini[i]); + serialPrint(", "); + serialPrint(relay_activation_millis_end[i]); + serialPrint(" - "); + serialPrintln((relay_activation_millis_end[i] - relay_activation_millis_ini[i])); + } + + serialPrintln(""); + serialPrintln(""); + serialPrintln(""); */ - switch(press_button_mode){ - case 1: - dispenser_status = DISPENSER_RESTART; - - serialPrintln("Modo 1 "); - break; - - case 2: - dispenser_status = DISPENSER_RESTART; - - serialPrintln("Modo 2 "); - break; - - case 3: - dispenser_status = DISPENSER_RESTART; - - serialPrintln("Modo 3 "); - break; - } - } - - void continue_dosing_process() - { - switch(dispenser_status){ - case DISPENSER_RESTART: - digitalWrite(RELAY_PIN, RELAY_LOW); - - dispenser_status = DISPENSER_LAG; - dispenser_status_time_millis = millis() + ((uint32_t) lag_time_decseg * 100); - break; - - case DISPENSER_LAG: - if(millis() >= dispenser_status_time_millis){ - dispenser_status = DISPENSER_DOSING; - dispenser_status_time_millis = millis() + ((uint32_t) dosing_time_decseg * 100); - - digitalWrite(RELAY_PIN, RELAY_HIGH); - } - break; - - case DISPENSER_DOSING: - if(millis() >= dispenser_status_time_millis){ - dispenser_status = button_pressed_millis == 0? DISPENSER_IDLE: DISPENSER_BLOCK; - dispenser_status_time_millis = 0; - - digitalWrite(RELAY_PIN, RELAY_LOW); - } - break; - - case DISPENSER_BLOCK: - if(button_pressed_millis == 0) - dispenser_status = DISPENSER_IDLE; - break; - } } @@ -1058,7 +1058,7 @@ pinMode(SETTINGS_BUTTONS_PIN, INPUT_PULLUP); // Salida Serial - serialBegin(9600); + serialBegin(115200); serialBeginWhile(); // Cargamos configuraciones de la EEPROM a la ram