Показать сообщение отдельно
Старый 22.12.2020, 01:12   #304
oleg707
Гуру
 
Аватар для oleg707
 
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
oleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond reputeoleg707 has a reputation beyond repute
Question зимний режим

Изменились обстоятельства и я стал очень мало ездить на машине, и буквально по пару километров. Плюс холода. Аккумулятор совсем не рад работе на износ. Поэтому решил озаботиться контролем выключения блока ( и планшета) в зависимости от температуры, благо на плюсовых версиях блока ( и на базовых на плате плюсовой) есть датчик температуры.
Для начала для пробы решил выключать блок раньше ( пару часов буквально), если зажигание выключено и если стало холодее установленной температуы ( +5).
Пока набросал такой вот кусок кода для примера:
PHP код:
void zimnij_rejim() //функция зимнего режима для проверки температуры и дальнейших действий
{
 if ((
obrabotac_zimnij_rejim ==1) || (TipBlokaPitania==133) )
   {
     
     if ( 
NTC_real <= cold_temp// если реальная температура холоднее установленной, сохраняем во временные переменные( для того, тобы когда потеплееет достать их)    
      
{//холод

          
          
if (LETO_timeUntilBATOff == timeUntilBATOff
            {  
            
timeUntilBATOff ZIMA_timeUntilBATOff;
            
timeUntilALLOff ZIMA_timeUntilALLOff;
            }
      }
//конец холод
      
if ((NTC_real+>= cold_temp) ||( LETO_timeUntilBATOff == ZIMA_timeUntilBATOff))//потеплело ( так быстро может потеплеть при вьезде в гараж, например )
            
{//тепло //вернули оригинальные значения таймеров обратного отсчета
            
timeUntilBATOff LETO_timeUntilBATOff;
            
timeUntilALLOff LETO_timeUntilALLOff;
            }
//конец тепло           
   




То есть когда стало холодно, изменяем время сна планшета с 2 суток до 1 часа.
ну и соответственно появились два новых таймера и настройки для холодного режима:
PHP код:
 static byte obrabotac_zimnij_rejim 1;               //m49+ Зимний режим. BP5+. 1-включен. 0- выкл. Предназначен для более "бережного" обращения с АКБ  
 
static float cold_temp 7.0;                  //m49+ Зимний режим. Температура, ниже которой изменяется логика выключения планшета для более "бережного" обращения с АКБ   
 
unsigned long  timeUntilBATOff 345600000;                     // время до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза  (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
 
unsigned long  timeUntilALLOff 172800000 timeUntilBATOff;   // время до полного выключение блока,  после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета    ) (2суток = 172800000)) (4суток = 345600000)
 
const unsigned long ZIMA_timeUntilBATOff 3600000 ;               // время ЗИМОЙ до выключения питания на батарею планшета после выключения зажигания., считаем ОТ момента выключения зажигания. если прошло 48 часов, как выключили ACC // пауза  (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) (1800000=5ч)
 
const unsigned long ZIMA_timeUntilALLOff 5000 ZIMA_timeUntilBATOff;   // время до полного выключение блока,  после выключения зажигания (ACC)и уже после того, как выключится питание на батарею планшета    ) (2суток = 172800000)) (4суток = 345600000) 
PS времени традиционно не хватает, но я уже привык

Последний раз редактировалось oleg707; 16.02.2021 в 18:12.
oleg707 вне форума   Ответить с цитированием