Calibración de botones
This commit is contained in:
parent
ad68ba1cac
commit
a2ca4cb087
11
README.md
11
README.md
@ -1,3 +1,14 @@
|
||||
# Arduino Temporizador SSR DS3231 LCD2004
|
||||
* Atmega328p
|
||||
* RTC DS3231
|
||||
* LCD2004
|
||||
|
||||
### 4 Botones 1 pin analogo
|
||||
* 1 Resistencia Pull Down 10K
|
||||
* 3 Resistencias en botones
|
||||
* 10K
|
||||
* 4.7K
|
||||
* 1K
|
||||
|
||||
|
||||
|
||||
|
@ -14,23 +14,23 @@
|
||||
* PINOUT / MEMORY ADDRESS
|
||||
**************************************************/
|
||||
#define LCD_I2C_ADDRESS 0x27
|
||||
#define RELAY_PIN 4
|
||||
#define SETTINGS_BUTTONS_PIN A3
|
||||
#define RELAY_PIN 2
|
||||
#define SETTINGS_BUTTONS_PIN A2
|
||||
|
||||
/**************************************************
|
||||
* BOTONES
|
||||
**************************************************/
|
||||
#define SETTING_BUTTON_IN_VAL 16
|
||||
#define SETTING_BUTTON_OUT_VAL 91
|
||||
#define SETTING_BUTTON_UP_VAL 41
|
||||
#define SETTING_BUTTON_DOWN_VAL 69
|
||||
#define SETTING_BUTTON_IN_VAL 1023
|
||||
#define SETTING_BUTTON_UP_VAL 931
|
||||
#define SETTING_BUTTON_DOWN_VAL 657
|
||||
#define SETTING_BUTTON_OUT_VAL 401
|
||||
|
||||
#define SETTING_BUTTON_TOLERANCE_READ 8
|
||||
#define SETTING_BUTTON_CONFIRMATION_REPEATS_MILLIS 1
|
||||
#define SETTING_BUTTON_TOLERANCE_READ 5
|
||||
#define SETTING_BUTTON_CONFIRMATION_REPEATS_MILLIS 5
|
||||
#define SETTING_BUTTON_DELAY_MILLIS 350
|
||||
|
||||
// 4-button configuration
|
||||
uint8_t button_values[] = {SETTING_BUTTON_IN_VAL, SETTING_BUTTON_OUT_VAL, SETTING_BUTTON_UP_VAL, SETTING_BUTTON_DOWN_VAL};
|
||||
uint16_t button_values[] = {SETTING_BUTTON_IN_VAL, SETTING_BUTTON_OUT_VAL, SETTING_BUTTON_UP_VAL, SETTING_BUTTON_DOWN_VAL};
|
||||
uint32_t _bt[sizeof(button_values)]; // millis
|
||||
uint32_t confirmation_repeats_millis;
|
||||
|
||||
@ -61,11 +61,10 @@
|
||||
#define MENU_T_ARRANQUE_ESPERA 3
|
||||
#define MENU_T_ENCENDIDO 4
|
||||
#define MENU_T_ENCENDIDO_ESPERA 5
|
||||
#define MENU_FECHA_Y_HORA 6
|
||||
#define MENU_DETENER_PROCESO 7
|
||||
#define MENU_REANUDAR_PROCESO 8
|
||||
#define MENU_REINICIAR_EQUIPO 9
|
||||
#define MENU_VALORES_DE_FABRICA 10
|
||||
#define MENU_DETENER_PROCESO 6
|
||||
#define MENU_REANUDAR_PROCESO 7
|
||||
#define MENU_REINICIAR_EQUIPO 8
|
||||
#define MENU_VALORES_DE_FABRICA 9
|
||||
|
||||
#define DETENER 0
|
||||
#define REANUDAR 1
|
||||
@ -98,7 +97,6 @@
|
||||
"T. ESPERA ARRANQUE",
|
||||
"T. ENCENDIDO",
|
||||
"T. ESPERA ENCENDIDO",
|
||||
"CAMBIAR FECHA Y HORA",
|
||||
"DETENER PROCESO",
|
||||
"REANUDAR PROCESO",
|
||||
"REINICIAR EQUIPO",
|
||||
@ -147,7 +145,7 @@
|
||||
* Define DEBUG_SERIAL_ENABLE to enable debug serial.
|
||||
* Comment it to disable debug serial.
|
||||
**************************************************/
|
||||
#define DEBUG_SERIAL_ENABLE
|
||||
//#define DEBUG_SERIAL_ENABLE
|
||||
|
||||
#define dbSerial Serial
|
||||
|
||||
@ -178,8 +176,6 @@
|
||||
button_value = button_values[i];
|
||||
}
|
||||
|
||||
serialPrintln(button_value);
|
||||
|
||||
//Valoramos si se presiono un botón y ejecutamos el metodo correspondiente
|
||||
switch(button_value) {
|
||||
case SETTING_BUTTON_IN_VAL:
|
||||
@ -253,7 +249,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
void action_button(uint8_t button_value)
|
||||
void action_button(uint16_t button_value)
|
||||
{
|
||||
switch(button_value) {
|
||||
case SETTING_BUTTON_IN_VAL:
|
||||
@ -294,13 +290,6 @@
|
||||
save_setting(menu_section);
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
if(menu_edition == VIEW)
|
||||
menu_edition = UPDATE;
|
||||
|
||||
else if(++menu_cursor_var > POSITION_SIX)
|
||||
save_setting(menu_section);
|
||||
break;
|
||||
|
||||
case MENU_SALIR:
|
||||
load_menu_variables(OUT_OF_MENU);
|
||||
@ -360,30 +349,6 @@
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
if(menu_edition == VIEW){
|
||||
load_menu_variables(menu_section -1);
|
||||
|
||||
}else{ // UPDATE
|
||||
if(menu_cursor_var == POSITION_ONE)
|
||||
setup_var[0] = setup_var[0] >= 23 ? 1 : ++setup_var[0]; // Horas
|
||||
|
||||
else if(menu_cursor_var == POSITION_TWO)
|
||||
setup_var[1] = setup_var[1] >= 59 ? 0 : ++setup_var[1]; // Minutos
|
||||
|
||||
else if(menu_cursor_var == POSITION_THREE)
|
||||
setup_var[2] = setup_var[2] >= 59 ? 0 : ++setup_var[2]; // Segundo
|
||||
|
||||
else if(menu_cursor_var == POSITION_FOUR)
|
||||
setup_var[3] = setup_var[3] >= 31 ? 0 : ++setup_var[3]; // Día
|
||||
|
||||
else if(menu_cursor_var == POSITION_FIVE)
|
||||
setup_var[4] = setup_var[4] >= 12 ? 0 : ++setup_var[4]; // Mes
|
||||
|
||||
else if(menu_cursor_var == POSITION_SIX)
|
||||
setup_var[5] = setup_var[5] >= 10 ? 0 : ++setup_var[5]; // año
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_DETENER_PROCESO:
|
||||
if(menu_edition == VIEW)
|
||||
@ -426,6 +391,8 @@
|
||||
case SETTING_BUTTON_DOWN_VAL:
|
||||
switch(menu_section) {
|
||||
case OUT_OF_MENU:
|
||||
serialPrintln("DOWN_OUT");
|
||||
|
||||
load_menu_variables(1);
|
||||
break;
|
||||
|
||||
@ -461,30 +428,6 @@
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
if(menu_edition == VIEW){
|
||||
load_menu_variables(menu_section + (myTimer_lite.getTimerDetenido()? 2: 1));
|
||||
|
||||
}else{ // UPDATE
|
||||
if(menu_cursor_var == POSITION_ONE)
|
||||
setup_var[0] = setup_var[0] <= 0 ? 23 : --setup_var[0]; // Horas
|
||||
|
||||
else if(menu_cursor_var == POSITION_TWO)
|
||||
setup_var[1] = setup_var[1] <= 0 ? 59 : --setup_var[1]; // Minutos
|
||||
|
||||
else if(menu_cursor_var == POSITION_THREE)
|
||||
setup_var[2] = setup_var[2] <= 0 ? 59 : --setup_var[2]; // Segundos
|
||||
|
||||
else if(menu_cursor_var == POSITION_FOUR)
|
||||
setup_var[3] = setup_var[3] <= 0? 31 : --setup_var[3]; // Día
|
||||
|
||||
else if(menu_cursor_var == POSITION_FIVE)
|
||||
setup_var[4] = setup_var[4] <= 0? 12 : --setup_var[4]; // Mes
|
||||
|
||||
else if(menu_cursor_var == POSITION_SIX)
|
||||
setup_var[5] = setup_var[5] <= 0? 10 : --setup_var[5]; // año
|
||||
}
|
||||
break;
|
||||
|
||||
case MENU_DETENER_PROCESO:
|
||||
if(menu_edition == VIEW)
|
||||
@ -574,9 +517,6 @@
|
||||
myTimer_lite.setTiempoEncendidoEspera(setup_var[0], setup_var[1], setup_var[2]);
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
myTimer_lite.setFechaHora(YEARS_DATETIME + setup_var[5], setup_var[4], setup_var[3], setup_var[0], setup_var[1], setup_var[2]);
|
||||
break;
|
||||
|
||||
case MENU_DETENER_PROCESO:
|
||||
if(setup_var[0]){
|
||||
@ -641,7 +581,7 @@
|
||||
setup_var[1] = uint8_t(valor_guardado - (setup_var[0] * 60)); // Segundos
|
||||
break;
|
||||
|
||||
case int8_t(MENU_T_ARRANQUE):
|
||||
case MENU_T_ARRANQUE:
|
||||
valor_guardado = myTimer_lite.getTiempoArranque();
|
||||
|
||||
setup_var[0] = uint8_t(valor_guardado / 3600); // horas
|
||||
@ -673,17 +613,6 @@
|
||||
setup_var[2] = uint8_t(valor_guardado - (setup_var[0] * 3600) - (setup_var[1] * 60)); // Segundos
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
setup_var[0] = Timer_lite::_now.hour();
|
||||
setup_var[1] = Timer_lite::_now.minute();
|
||||
setup_var[2] = Timer_lite::_now.second();
|
||||
|
||||
setup_var[3] = Timer_lite::_now.day();
|
||||
setup_var[4] = Timer_lite::_now.month();
|
||||
|
||||
if(Timer_lite::_now.year() >= 2020)
|
||||
setup_var[5] = (Timer_lite::_now.year() - YEARS_DATETIME);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -724,19 +653,6 @@
|
||||
return hrs + ":" + min + ":" + seg;
|
||||
}
|
||||
|
||||
String hrs_min_seg_dia_mes_ano_to_string(uint8_t _hrs, uint8_t _min, uint8_t _seg, uint8_t _dia, uint8_t _mes, uint8_t _ano)
|
||||
{
|
||||
String hrs = String(_hrs < 10? "0": "") + String(_hrs);
|
||||
String min = String(_min < 10? "0": "") + String(_min);
|
||||
String seg = String(_seg < 10? "0": "") + String(_seg);
|
||||
|
||||
String dia = String(_dia < 10? "0": "") + String(_dia);
|
||||
String mes = String(_mes < 10? "0": "") + String(_mes);
|
||||
String ano = String(YEARS_DATETIME + _ano);
|
||||
|
||||
return hrs + ":" + min + ":" + seg + " " + dia + "/" + mes + "/" + ano;
|
||||
}
|
||||
|
||||
String seg_to_string(uint32_t _seg)
|
||||
{
|
||||
uint32_t hrs = _seg / 3600;
|
||||
@ -762,7 +678,6 @@
|
||||
}
|
||||
|
||||
if(millis() % LCD_PROCESS_REFRESH_MILLIS == 0){
|
||||
print_lcd_datetime();
|
||||
print_lcd_process();
|
||||
setCursor_lcd_menu();
|
||||
}
|
||||
@ -801,16 +716,6 @@
|
||||
lcd.print(fill_string_ws(hrs_min_seg_to_string(setup_var[0], setup_var[1], setup_var[2]), 20, 3));
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
if(menu_edition == UPDATE){
|
||||
text_info_idx = setup_var[0]? DETENER: CANCELAR;
|
||||
|
||||
lcd.print(hrs_min_seg_dia_mes_ano_to_string(setup_var[0], setup_var[1], setup_var[2], setup_var[3], setup_var[4], setup_var[5]));
|
||||
|
||||
}else
|
||||
lcd.print(fill_string_ws("", 20));
|
||||
break;
|
||||
|
||||
case MENU_DETENER_PROCESO:
|
||||
if(menu_edition == UPDATE){
|
||||
text_info_idx = setup_var[0]? DETENER: CANCELAR;
|
||||
@ -863,16 +768,6 @@
|
||||
*/
|
||||
}
|
||||
|
||||
void print_lcd_datetime()
|
||||
{
|
||||
/*
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print(myTimer_lite.getHora());
|
||||
lcd.setCursor(10, 0);
|
||||
lcd.print(myTimer_lite.getFecha());
|
||||
*/
|
||||
}
|
||||
|
||||
void print_lcd_process()
|
||||
{
|
||||
lcd.setCursor(0, 3);
|
||||
@ -921,27 +816,6 @@
|
||||
lcd.setCursor(9, 2);
|
||||
break;
|
||||
|
||||
case MENU_FECHA_Y_HORA:
|
||||
// Posicionamos el cursos, para la edición
|
||||
if(menu_cursor_var == POSITION_ONE)
|
||||
lcd.setCursor(0, 2);
|
||||
|
||||
else if(menu_cursor_var == POSITION_TWO)
|
||||
lcd.setCursor(3, 2);
|
||||
|
||||
else if(menu_cursor_var == POSITION_THREE)
|
||||
lcd.setCursor(6, 2);
|
||||
|
||||
else if(menu_cursor_var == POSITION_FOUR)
|
||||
lcd.setCursor(10, 2);
|
||||
|
||||
else if(menu_cursor_var == POSITION_FIVE)
|
||||
lcd.setCursor(13, 2);
|
||||
|
||||
else if(menu_cursor_var == POSITION_SIX)
|
||||
lcd.setCursor(16, 2);
|
||||
break;
|
||||
|
||||
case MENU_DETENER_PROCESO:
|
||||
case MENU_REANUDAR_PROCESO:
|
||||
case MENU_REINICIAR_EQUIPO:
|
||||
@ -958,20 +832,19 @@
|
||||
* Setup / Loop
|
||||
**************************************************/
|
||||
void setup() {
|
||||
pinMode(SETTINGS_BUTTONS_PIN, INPUT_PULLUP);
|
||||
pinMode(SETTINGS_BUTTONS_PIN, INPUT);
|
||||
|
||||
// Salida Serial
|
||||
serialBegin(9600);
|
||||
serialBegin(57600);
|
||||
serialBeginWhile();
|
||||
|
||||
// Iniciamos la pantalla
|
||||
lcd.begin(20, 4);
|
||||
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print("DIKEN INTERNATIONAL");
|
||||
//lcd.setCursor(0, 0);
|
||||
lcd.print("REALI S.A. DE C.V.");
|
||||
|
||||
myTimer_lite.initialize();
|
||||
//myTimer_lite.setFechaHoraSistema();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user