начал переписывать засыпание

This commit is contained in:
George Butskivsky 2023-11-16 14:56:12 +03:00
parent 8e44a9be96
commit ce9cde2989
1 changed files with 17 additions and 5 deletions

View File

@ -27,8 +27,9 @@ bgp, 2023
#include "microDS3231.h" #include "microDS3231.h"
MicroDS3231 rtc; MicroDS3231 rtc;
#include "EncButton.h" #include "EncButton.h"
#include <Sleep_n0m1.h> //подключение библиотеки для режимов сна // #include <Sleep_n0m1.h> //подключение библиотеки для режимов сна
#include <Wire.h> // #include <Wire.h>
#include <GyverPower.h>
// #include <I2C_RTC.h> // #include <I2C_RTC.h>
EncButton<EB_TICK, BTN_PIN> btn; EncButton<EB_TICK, BTN_PIN> btn;
@ -59,7 +60,7 @@ int paymentsCount = 0;
int onTime = 6; // время включения int onTime = 6; // время включения
int offTime = 20; // время выключения int offTime = 20; // время выключения
Sleep sleep; //объект для работы с режимами сна // Sleep sleep; //объект для работы с режимами сна
unsigned long sleepTime; //переменная для задания времени сна unsigned long sleepTime; //переменная для задания времени сна
@ -86,6 +87,17 @@ void setup() {
pinMode(TERM_COIN, INPUT); // прием сигнала от терминала pinMode(TERM_COIN, INPUT); // прием сигнала от терминала
pinMode(RELAY, OUTPUT); pinMode(RELAY, OUTPUT);
power.autoCalibrate(); // автоматическая калибровка ~ 2 секунды , средняя но достаточная точность
// отключение ненужной периферии
power.hardwareDisable(PWR_ADC | PWR_TIMER1); // см раздел константы в GyverPower.h, разделяющий знак " | "
// управление системной частотой
power.setSystemPrescaler(PRESCALER_2); // см константы в GyverPower.h
// настройка параметров сна
power.setSleepMode(STANDBY_SLEEP); // если нужен другой режим сна, см константы в GyverPower.h (по умолчанию POWERDOWN_SLEEP)
power.bodInSleep(false); // рекомендуется выключить bod во сне для сохранения энергии (по умолчанию false - выключен!!)
sleepTime = 60 * 60 * 1000; sleepTime = 60 * 60 * 1000;
//Debug //Debug
@ -119,8 +131,8 @@ void loop() {
// Serial.println(rtc.getYear()); // Serial.println(rtc.getYear());
if (voltage < 13.2) { if (voltage < 13.2) {
digitalWrite(RELAY, LOW); digitalWrite(RELAY, LOW);
sleep.pwrDownMode(); //установка режима сна PWR_DOWN // sleep.pwrDownMode(); //установка режима сна PWR_DOWN
sleep.sleepDelay(sleepTime); //заснуть на указанное время power.sleep(sleepTime); //заснуть на указанное время
} }
if ((now.hour >= onTime && now.hour < offTime && voltage > 13.2)) { //&& voltage > 10.2 if ((now.hour >= onTime && now.hour < offTime && voltage > 13.2)) { //&& voltage > 10.2
digitalWrite(RELAY, HIGH); // работаем если время рабочее И напряжение выше минимума digitalWrite(RELAY, HIGH); // работаем если время рабочее И напряжение выше минимума