Добавлен вывод сигнала (HIGH/LOW - настраивается) синхронно с вкл/выкл матрицы на пин MOSFET транзистора; добавлен вывод сигнала на пин будильника (только на минуту его срабатыания)

This commit is contained in:
gunner47
2019-10-24 12:25:09 +03:00
parent ada756d90b
commit 08d5d6022a
4 changed files with 40 additions and 2 deletions

View File

@@ -23,8 +23,12 @@ uint8_t espMode = ESP_MODE; // ESP_MODE може
#ifdef OTA
#define ESP_OTA_PORT (8266U) // номер порта, который будет "прослушиваться" в ожидании команды прошивки по воздуху
#endif
#define LED_PIN (2U) // пин ленты
#define BTN_PIN (4U) // пин кнопки
#define LED_PIN (2U) // пин ленты (D4)
#define BTN_PIN (4U) // пин кнопки (D2)
#define MOSFET_PIN (5U) // пин MOSFET транзистора (D1) - может быть использован для управления питанием матрицы/ленты
#define ALARM_PIN (16U) // пин состояния будильника (D0) - может быть использован для управления каким-либо внешним устройством на время работы будильника
#define MOSFET_LEVEL (HIGH) // логический уровень, в который будет установлен пин MOSFET_PIN, когда матрица включена - HIGH или LOW
#define ALARM_LEVEL (HIGH) // логический уровень, в который будет установлен пин ALARM_PIN, когда "рассвет"/будильник включен
// --- ESP (WiFi клиент) ---------------
const uint8_t STA_STATIC_IP[] = {}; // статический IP адрес: {} - IP адрес определяется роутером; {192, 168, 1, 66} - IP адрес задан явно (если DHCP на роутере не решит иначе); должен быть из того же диапазона адресов, что разадёт роутер

View File

@@ -96,6 +96,9 @@
- Добавлены "ночные часы" (от NIGHT_HOURS_START до NIGHT_HOURS_STOP включительно) и "дневные часы" (всё остальное время), для которых доступна регулировка яркости для вывода времени бегущей строкой - NIGHT_HOURS_BRIGHTNESS и DAY_HOURS_BRIGHTNESS
--- 20.10.2019
- Добавлена блокировка кнопки на лампе из android приложения; сохраняется в EEPROM память
--- 24.10.2019
- Добавлен вывод сигнала (HIGH/LOW - настраивается константой MOSFET_LEVEL) синхронно с включением матрицы на пин MOSFET транзистора (настраивается константой MOSFET_PIN)
- Добавлен вывод сигнала (HIGH/LOW - настраивается константой ALARM_LEVEL) на пин будильника (настраивается константой ALARM_PIN); сигнал подаётся в течение одной минуты, начиная со времени, на которое заведён будильник
*/
// Ссылка для менеджера плат:
@@ -215,6 +218,22 @@ void setup()
ESP.wdtEnable(WDTO_8S);
// ПИНЫ
#ifdef MOSFET_PIN // инициализация пина, управляющего MOSFET транзистором в состояние "выключен"
pinMode(MOSFET_PIN, OUTPUT);
#ifdef MOSFET_LEVEL
digitalWrite(MOSFET_PIN, !MOSFET_LEVEL);
#endif
#endif
#ifdef ALARM_PIN // инициализация пина, управляющего будильником в состояние "выключен"
pinMode(ALARM_PIN, OUTPUT);
#ifdef ALARM_LEVEL
digitalWrite(ALARM_PIN, !ALARM_LEVEL);
#endif
#endif
// TELNET
#if defined(GENERAL_DEBUG) && GENERAL_DEBUG_TELNET
telnetServer.begin();

View File

@@ -69,6 +69,10 @@ void changePower()
delay(2);
FastLED.show();
}
#if defined(MOSFET_PIN) && defined(MOSFET_LEVEL) // установка сигнала в пин, управляющий MOSFET транзистором, соответственно состоянию вкл/выкл матрицы
digitalWrite(MOSFET_PIN, ONflag ? MOSFET_LEVEL : !MOSFET_LEVEL);
#endif
TimerManager::TimerRunning = false;
TimerManager::TimerHasFired = false;

View File

@@ -95,6 +95,13 @@ void timeTick()
delay(1);
FastLED.show();
dawnFlag = true;
#if defined(ALARM_PIN) && defined(ALARM_LEVEL) // установка сигнала в пин, управляющий будильником
if (thisTime == alarms[thisDay].Time) // установка, только в минуту, на которую заведён будильник
{
digitalWrite(ALARM_PIN, ALARM_LEVEL);
}
#endif
}
}
else
@@ -115,6 +122,10 @@ void timeTick()
dawnColorMinus4 = CHSV(0, 0, 0);
dawnColorMinus5 = CHSV(0, 0, 0);
dawnCounter = 0;
#if defined(ALARM_PIN) && defined(ALARM_LEVEL) // установка сигнала в пин, управляющий будильником
digitalWrite(ALARM_PIN, !ALARM_LEVEL);
#endif
}
}
}