mirror of
https://github.com/dimoniche/solarium_arduino.git
synced 2026-01-30 01:23:30 +03:00
Все работает все кроме солярия коллатен
This commit is contained in:
parent
362aeb6ae5
commit
d105199434
@ -70,17 +70,27 @@ boolean need_clear_menu = false; // флаг очистки
|
|||||||
boolean need_hide_cursor = false; // флаг скытия курсора на экране
|
boolean need_hide_cursor = false; // флаг скытия курсора на экране
|
||||||
boolean start_edit_parameter = false; // флаг старта редактирования параметра
|
boolean start_edit_parameter = false; // флаг старта редактирования параметра
|
||||||
|
|
||||||
|
bool enable_reset = false; // разрешение сброса настроек
|
||||||
|
|
||||||
// Переменные для работы с соляриями
|
// Переменные для работы с соляриями
|
||||||
#define pause_before 0
|
#define pause_before 0
|
||||||
#define pause_after 1
|
#define pause_after 1
|
||||||
#define price 2
|
#define price 2
|
||||||
#define remote_start 3
|
#define remote_start 3
|
||||||
|
|
||||||
|
#define LUXURA_SOL 0
|
||||||
|
#define FIRESUN_UV_SOL 1
|
||||||
|
#define FIRESUN_UV_K_SOL 2
|
||||||
|
#define SUNFLOWER_SOL 3
|
||||||
|
|
||||||
#define solarium_type 4
|
#define solarium_type 4
|
||||||
#define work_regime 5
|
#define work_regime 5
|
||||||
#define signal_rele 6
|
#define signal_rele 6
|
||||||
#define weight_impulse 7
|
#define weight_impulse 7
|
||||||
#define reset_device 8
|
#define reset_device 8
|
||||||
#define COUNT_BYTE_PARAMETER 9
|
#define reset_counters 9
|
||||||
|
#define password 10
|
||||||
|
#define COUNT_BYTE_PARAMETER 11
|
||||||
byte all_byte_parameters[COUNT_BYTE_PARAMETER];
|
byte all_byte_parameters[COUNT_BYTE_PARAMETER];
|
||||||
|
|
||||||
const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
||||||
@ -92,7 +102,9 @@ const byte all_byte_parameters_default[COUNT_BYTE_PARAMETER] = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
10,
|
10,
|
||||||
0
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define long_starts_counter 0
|
#define long_starts_counter 0
|
||||||
@ -112,7 +124,7 @@ char text_parameters[COUNT_TEXT_PARAMETER][20];
|
|||||||
|
|
||||||
// ============================== Описываем свой символ "Рубль" ========================================================================
|
// ============================== Описываем свой символ "Рубль" ========================================================================
|
||||||
// Просто "рисуем" символ единицами. Единицы при выводе на экран окажутся закрашенными точками, нули - не закрашенными
|
// Просто "рисуем" символ единицами. Единицы при выводе на экран окажутся закрашенными точками, нули - не закрашенными
|
||||||
const PROGMEM byte rubl[8] = {
|
const byte rubl[8] = {
|
||||||
0b00000,
|
0b00000,
|
||||||
0b01110,
|
0b01110,
|
||||||
0b01001,
|
0b01001,
|
||||||
@ -270,7 +282,7 @@ const menu_screen menu_main[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
"rub"
|
0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -282,7 +294,7 @@ const menu_screen menu_main[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
""
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -339,6 +351,34 @@ const menu_screen menu_main[] PROGMEM = {
|
|||||||
},
|
},
|
||||||
3
|
3
|
||||||
},
|
},
|
||||||
|
// Меню паузы после сеанса
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
FIXED_LINE,
|
||||||
|
{0}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
" PAUSE",
|
||||||
|
FIXED_LINE,
|
||||||
|
{0}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"",
|
||||||
|
TEXT_PARAM_LINE,
|
||||||
|
{
|
||||||
|
time_seance,
|
||||||
|
{
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
},
|
||||||
|
" "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
3
|
||||||
|
},
|
||||||
// Меню окончания сеанса
|
// Меню окончания сеанса
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@ -485,7 +525,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
},
|
},
|
||||||
"rub"
|
0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -570,7 +610,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
100,
|
100,
|
||||||
},
|
},
|
||||||
""
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -585,15 +625,15 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
{0}
|
{0}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"",
|
"Pasword",
|
||||||
DIGIT_PARAM_LINE,
|
DIGIT_PARAM_LINE,
|
||||||
{
|
{
|
||||||
weight_impulse,
|
password,
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
100,
|
255,
|
||||||
},
|
},
|
||||||
""
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -616,7 +656,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
""
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -628,7 +668,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
"rub"
|
0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -663,7 +703,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
""
|
" "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -675,7 +715,7 @@ const menu_screen menu_settings[] PROGMEM = {
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
},
|
},
|
||||||
"rub"
|
0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -758,10 +798,31 @@ void reset_parameter()
|
|||||||
all_long_parameters[short_time_counter] = 0;
|
all_long_parameters[short_time_counter] = 0;
|
||||||
save_long_parameter(short_time_counter);
|
save_long_parameter(short_time_counter);
|
||||||
|
|
||||||
|
all_long_parameters[long_starts_counter] = 0;
|
||||||
|
save_long_parameter(long_starts_counter);
|
||||||
|
|
||||||
|
all_long_parameters[long_money_counter] = 0;
|
||||||
|
save_long_parameter(long_money_counter);
|
||||||
|
|
||||||
|
all_long_parameters[long_time_counter] = 0;
|
||||||
|
save_long_parameter(long_time_counter);
|
||||||
|
|
||||||
all_long_parameters[money_counter] = 0;
|
all_long_parameters[money_counter] = 0;
|
||||||
save_long_parameter(money_counter);
|
save_long_parameter(money_counter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset_short_counters()
|
||||||
|
{
|
||||||
|
all_long_parameters[short_starts_counter] = 0;
|
||||||
|
save_long_parameter(short_starts_counter);
|
||||||
|
|
||||||
|
all_long_parameters[short_money_counter] = 0;
|
||||||
|
save_long_parameter(short_money_counter);
|
||||||
|
|
||||||
|
all_long_parameters[short_time_counter] = 0;
|
||||||
|
save_long_parameter(short_time_counter);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
удержание кнопки
|
удержание кнопки
|
||||||
*/
|
*/
|
||||||
@ -927,8 +988,11 @@ void show_line(byte index_line)
|
|||||||
char line[21];
|
char line[21];
|
||||||
sprintf(line,"%s %ld %s", current_menu_screen.menu_lines[index_line].string,
|
sprintf(line,"%s %ld %s", current_menu_screen.menu_lines[index_line].string,
|
||||||
all_long_parameters[current_menu_screen.menu_lines[index_line].parameter.digit.param_index],
|
all_long_parameters[current_menu_screen.menu_lines[index_line].parameter.digit.param_index],
|
||||||
current_menu_screen.menu_lines[index_line].parameter.digit.unit);
|
current_menu_screen.menu_lines[index_line].parameter.digit.unit[0] >= 0x20 ?
|
||||||
|
current_menu_screen.menu_lines[index_line].parameter.digit.unit :
|
||||||
|
"");
|
||||||
lcd.print(line);
|
lcd.print(line);
|
||||||
|
current_menu_screen.menu_lines[index_line].parameter.digit.unit[0] < 0x20 ? lcd.write(0) : 0;
|
||||||
}
|
}
|
||||||
else if(current_menu_screen.menu_lines[index_line].type == TEXT_PARAM_LINE)
|
else if(current_menu_screen.menu_lines[index_line].type == TEXT_PARAM_LINE)
|
||||||
{
|
{
|
||||||
@ -1007,6 +1071,49 @@ bool read_money_impulse ()
|
|||||||
return impulse;
|
return impulse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void start_solarium_work()
|
||||||
|
{
|
||||||
|
if(all_byte_parameters[signal_rele]) digitalWrite(lamp_start_pin, HIGH);
|
||||||
|
else digitalWrite(lamp_start_pin, LOW);
|
||||||
|
|
||||||
|
switch(all_byte_parameters[solarium_type])
|
||||||
|
{
|
||||||
|
case LUXURA_SOL:
|
||||||
|
break;
|
||||||
|
case FIRESUN_UV_SOL:
|
||||||
|
digitalWrite(vent_pin, HIGH);
|
||||||
|
break;
|
||||||
|
case FIRESUN_UV_K_SOL:
|
||||||
|
break;
|
||||||
|
case SUNFLOWER_SOL:
|
||||||
|
digitalWrite(vent_pin, HIGH);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void stop_solarium_work()
|
||||||
|
{
|
||||||
|
if(all_byte_parameters[signal_rele]) digitalWrite(lamp_start_pin, LOW);
|
||||||
|
else digitalWrite(lamp_start_pin, HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void stop_vent_work()
|
||||||
|
{
|
||||||
|
switch(all_byte_parameters[solarium_type])
|
||||||
|
{
|
||||||
|
case LUXURA_SOL:
|
||||||
|
break;
|
||||||
|
case FIRESUN_UV_SOL:
|
||||||
|
digitalWrite(vent_pin, LOW);
|
||||||
|
break;
|
||||||
|
case FIRESUN_UV_K_SOL:
|
||||||
|
break;
|
||||||
|
case SUNFLOWER_SOL:
|
||||||
|
digitalWrite(vent_pin, LOW);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Прием денег
|
Прием денег
|
||||||
*/
|
*/
|
||||||
@ -1063,8 +1170,10 @@ void get_money ()
|
|||||||
need_clear_menu = true;
|
need_clear_menu = true;
|
||||||
need_reload_menu = true;
|
need_reload_menu = true;
|
||||||
|
|
||||||
bill_enable =! bill_enable; // устанавливаем флаг: не принимаем деньги
|
bill_enable = !bill_enable; // устанавливаем флаг: не принимаем деньги
|
||||||
|
|
||||||
// Запускаем работу солярия
|
// Запускаем работу солярия
|
||||||
|
start_solarium_work();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1094,9 +1203,20 @@ void menu()
|
|||||||
}
|
}
|
||||||
if(all_byte_parameters[reset_device])
|
if(all_byte_parameters[reset_device])
|
||||||
{
|
{
|
||||||
reset_parameter();
|
if(enable_reset) reset_parameter();
|
||||||
all_byte_parameters[reset_device] = 0;
|
all_byte_parameters[reset_device] = 0;
|
||||||
}
|
}
|
||||||
|
if(all_byte_parameters[reset_counters])
|
||||||
|
{
|
||||||
|
if(enable_reset) reset_short_counters();
|
||||||
|
all_byte_parameters[reset_counters] = 0;
|
||||||
|
}
|
||||||
|
if(all_byte_parameters[password] == 22)
|
||||||
|
{
|
||||||
|
enable_reset = true;
|
||||||
|
all_byte_parameters[password] = 0;
|
||||||
|
save_byte_parameter(password);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd.clear();
|
lcd.clear();
|
||||||
@ -1111,6 +1231,18 @@ void one_half_second()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void restart_menu()
|
||||||
|
{
|
||||||
|
memcpy_P( ¤t_menu_screen, &menu_main[0], sizeof(menu_screen));
|
||||||
|
sprintf(text_parameters[time_seance],"");
|
||||||
|
menu_index = 0;
|
||||||
|
|
||||||
|
need_clear_menu = true;
|
||||||
|
need_reload_menu = true;
|
||||||
|
|
||||||
|
bill_enable = !bill_enable;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Событие секунды
|
Событие секунды
|
||||||
*/
|
*/
|
||||||
@ -1124,26 +1256,40 @@ void second_event()
|
|||||||
sprintf(text_parameters[time_seance]," %02d:%02d", minute, second);
|
sprintf(text_parameters[time_seance]," %02d:%02d", minute, second);
|
||||||
need_reload_menu = true;
|
need_reload_menu = true;
|
||||||
|
|
||||||
|
if(menu_index == 4 && time_remain == 0)
|
||||||
|
{
|
||||||
|
restart_menu();
|
||||||
|
}
|
||||||
if(menu_index == 3 && time_remain == 0)
|
if(menu_index == 3 && time_remain == 0)
|
||||||
{
|
{
|
||||||
memcpy_P( ¤t_menu_screen, &menu_main[0], sizeof(menu_screen));
|
stop_vent_work();
|
||||||
sprintf(text_parameters[time_seance],"");
|
|
||||||
menu_index = 0;
|
memcpy_P( ¤t_menu_screen, &menu_main[4], sizeof(menu_screen));
|
||||||
|
menu_index = 4;
|
||||||
|
second = 10;
|
||||||
|
|
||||||
need_clear_menu = true;
|
need_clear_menu = true;
|
||||||
need_reload_menu = true;
|
need_reload_menu = true;
|
||||||
|
|
||||||
bill_enable =! bill_enable;
|
|
||||||
}
|
}
|
||||||
if(menu_index == 2 && time_remain == 0)
|
if(menu_index == 2 && time_remain == 0)
|
||||||
{
|
{
|
||||||
memcpy_P( ¤t_menu_screen, &menu_main[3], sizeof(menu_screen));
|
stop_solarium_work();
|
||||||
menu_index = 3;
|
|
||||||
|
if(all_byte_parameters[solarium_type] == LUXURA_SOL)
|
||||||
|
{
|
||||||
|
memcpy_P( ¤t_menu_screen, &menu_main[4], sizeof(menu_screen));
|
||||||
|
menu_index = 4;
|
||||||
|
second = 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy_P( ¤t_menu_screen, &menu_main[3], sizeof(menu_screen));
|
||||||
|
menu_index = 3;
|
||||||
|
minute = all_byte_parameters[pause_after] * 60;
|
||||||
|
}
|
||||||
|
|
||||||
need_clear_menu = true;
|
need_clear_menu = true;
|
||||||
need_reload_menu = true;
|
need_reload_menu = true;
|
||||||
|
|
||||||
second = 10;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1175,14 +1321,20 @@ void setup()
|
|||||||
pinMode(LEDPin, OUTPUT); // инициализируем пин, подключенный к светодиоду, как выход
|
pinMode(LEDPin, OUTPUT); // инициализируем пин, подключенный к светодиоду, как выход
|
||||||
pinMode(buttonPin_Service, INPUT_PULLUP); // инициализируем пин, подключенный к кнопке, как вход
|
pinMode(buttonPin_Service, INPUT_PULLUP); // инициализируем пин, подключенный к кнопке, как вход
|
||||||
pinMode(buttonPin_Start, INPUT_PULLUP); // инициализируем пин, подключенный к кнопке, как вход
|
pinMode(buttonPin_Start, INPUT_PULLUP); // инициализируем пин, подключенный к кнопке, как вход
|
||||||
|
pinMode(lamp_start_pin, OUTPUT); // управление лампами
|
||||||
|
pinMode(vent_pin, OUTPUT); // управление вентиляторами
|
||||||
|
|
||||||
digitalWrite(LEDPin,LOW); // изначально светодиод погашен
|
digitalWrite(LEDPin,LOW); // изначально светодиод погашен
|
||||||
digitalWrite(inhibitPin, LOW); // изначально разрешаем прием купюр
|
digitalWrite(inhibitPin, LOW); // изначально разрешаем прием купюр
|
||||||
|
digitalWrite(lamp_start_pin, LOW); // изначально выключен
|
||||||
|
digitalWrite(vent_pin, LOW); // изначально выключен
|
||||||
|
|
||||||
load_parameter();
|
load_parameter();
|
||||||
memcpy_P( ¤t_menu_screen, &menu_main[0], sizeof(menu_screen));
|
memcpy_P( ¤t_menu_screen, &menu_main[0], sizeof(menu_screen));
|
||||||
sprintf(text_parameters[time_seance],"");
|
sprintf(text_parameters[time_seance],"");
|
||||||
menu_index = 0;
|
menu_index = 0;
|
||||||
|
|
||||||
|
all_long_parameters[money_counter] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user