mirror of
https://github.com/AlexGyver/GyverLamp2.git
synced 2025-08-08 17:11:05 +03:00
v0.13b
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
Версия 0.13b
|
||||
Улучшена стабильность
|
||||
|
||||
Версия 0.12b
|
||||
Мелкие исправления
|
||||
|
||||
@@ -16,7 +19,6 @@
|
||||
|
||||
TODO:
|
||||
плавная смена режимов
|
||||
Аккуратнее со светомузыкой!
|
||||
4 клика вкл выкл смену?
|
||||
Mqtt?
|
||||
Базовый пак
|
||||
@@ -68,7 +70,7 @@ const char AP_NameChar[] = "GyverLamp2";
|
||||
const char WiFiPassword[] = "12345678";
|
||||
|
||||
// ------------ Прочее -------------
|
||||
#define GL_VERSION 012 // код версии прошивки
|
||||
#define GL_VERSION 013 // код версии прошивки
|
||||
#define EE_TOUT 30000 // таймаут сохранения епром после изменения, мс
|
||||
//#define DEBUG_SERIAL // закомментируй чтобы выключить отладку (скорость 115200)
|
||||
#define EE_KEY 51 // ключ сброса WiFi (измени для сброса всех настроек)
|
||||
@@ -97,6 +99,7 @@ const char WiFiPassword[] = "12345678";
|
||||
#include "timerMillis.h" // таймер миллис
|
||||
#include "VolAnalyzer.h" // анализатор громкости
|
||||
#include "FFT_C.h" // фурье
|
||||
#define FASTLED_ALLOW_INTERRUPTS 0
|
||||
#include <FastLED.h> // лента
|
||||
#include <ESP8266WiFi.h> // базовая либа есп
|
||||
#include <WiFiUdp.h> // общение по UDP
|
||||
|
@@ -25,6 +25,9 @@ void setupADC() {
|
||||
|
||||
phot.setDt(80);
|
||||
phot.setK(31);
|
||||
|
||||
if (cfg.adcMode == GL_ADC_BRI) switchToPhot();
|
||||
else if (cfg.adcMode == GL_ADC_MIC) switchToMic();
|
||||
}
|
||||
|
||||
|
||||
@@ -52,10 +55,9 @@ void checkAnalog() {
|
||||
}
|
||||
|
||||
void checkMusic() {
|
||||
if (CUR_PRES.soundMode > 1) {
|
||||
if (CUR_PRES.soundMode == GL_MUS_VOL) { // громкость
|
||||
if (CUR_PRES.advMode == GL_ADV_VOL) { // громкость
|
||||
vol.tick();
|
||||
} else { // частоты
|
||||
} else if (CUR_PRES.advMode == GL_ADV_LOW || CUR_PRES.advMode == GL_ADV_HIGH) { // частоты
|
||||
int raw[FFT_SIZE], spectr[FFT_SIZE];
|
||||
for (int i = 0; i < FFT_SIZE; i++) raw[i] = analogRead(A0);
|
||||
FFT(raw, spectr);
|
||||
@@ -70,7 +72,6 @@ void checkMusic() {
|
||||
high.tick(high_raw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void checkPhot() {
|
||||
static timerMillis tmr(1000, true);
|
||||
@@ -79,10 +80,10 @@ void checkPhot() {
|
||||
}
|
||||
|
||||
byte getSoundVol() {
|
||||
switch (CUR_PRES.soundMode) {
|
||||
case GL_MUS_VOL: return vol.getVol();
|
||||
case GL_MUS_LOW: return low.getVol();
|
||||
case GL_MUS_HIGH: return high.getVol();
|
||||
switch (CUR_PRES.advMode) {
|
||||
case GL_ADV_VOL: return vol.getVol();
|
||||
case GL_ADV_LOW: return low.getVol();
|
||||
case GL_ADV_HIGH: return high.getVol();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@@ -6,10 +6,11 @@
|
||||
#define GL_TYPE_STRIP 1
|
||||
#define GL_TYPE_ZIG 2
|
||||
#define GL_TYPE_PARAL 3
|
||||
#define GL_MUS_NONE 1
|
||||
#define GL_MUS_VOL 2
|
||||
#define GL_MUS_LOW 3
|
||||
#define GL_MUS_HIGH 4
|
||||
#define GL_ADV_NONE 1
|
||||
#define GL_ADV_VOL 2
|
||||
#define GL_ADV_LOW 3
|
||||
#define GL_ADV_HIGH 4
|
||||
#define GL_ADV_CLOCK 5
|
||||
#define GL_REACT_BRI 1
|
||||
#define GL_REACT_SCL 2
|
||||
#define GL_REACT_LEN 3
|
||||
@@ -100,7 +101,7 @@ struct Preset {
|
||||
byte effect = 1; // тип эффекта (1,2...) ВЫЧЕСТЬ 1
|
||||
byte fadeBright = 0; // флаг на свою яркость (0/1)
|
||||
byte bright = 100; // своя яркость (0.. 255)
|
||||
byte soundMode = 1; // тип звука (1,2...) ВЫЧЕСТЬ 1
|
||||
byte advMode = 1; // дополнительно (1,2...) ВЫЧЕСТЬ 1
|
||||
byte soundReact = 1; // реакция на звук (1,2...) ВЫЧЕСТЬ 1
|
||||
byte min = 0; // мин сигнал светомузыки (0.. 255)
|
||||
byte max = 0; // макс сигнал светомузыки (0.. 255)
|
||||
|
@@ -209,33 +209,36 @@ void effectsRoutine() {
|
||||
}
|
||||
}
|
||||
|
||||
bool musicMode() {
|
||||
return ((cfg.adcMode == GL_ADC_MIC || cfg.adcMode == GL_ADC_BOTH) && (CUR_PRES.advMode > 1 && CUR_PRES.advMode <= 4));
|
||||
}
|
||||
|
||||
byte getBright() {
|
||||
int maxBr = cfg.bright;
|
||||
int maxBr = cfg.bright; // макс яркость из конфига
|
||||
byte fadeBr = 255;
|
||||
if (CUR_PRES.fadeBright) fadeBr = CUR_PRES.bright; // ограничен вручную
|
||||
|
||||
if (cfg.adcMode == GL_ADC_BRI || cfg.adcMode == GL_ADC_BOTH) { // ----> датчик света
|
||||
if (cfg.adcMode == GL_ADC_BRI || cfg.adcMode == GL_ADC_BOTH) { // ----> датчик света или оба
|
||||
maxBr = constrain(phot.getFil(), cfg.minLight, cfg.maxLight);
|
||||
if (cfg.minLight != cfg.maxLight)
|
||||
maxBr = map(maxBr, cfg.minLight, cfg.maxLight, cfg.minBright, cfg.maxBright);
|
||||
} else if (cfg.adcMode > 2 && // ----> ацп мик
|
||||
CUR_PRES.soundMode > 1 && // светомузыка вкл
|
||||
}
|
||||
if (musicMode() && // светомузыка вкл
|
||||
CUR_PRES.soundReact == GL_REACT_BRI) { // режим яркости
|
||||
fadeBr = mapFF(getSoundVol(), CUR_PRES.min, CUR_PRES.max);
|
||||
fadeBr = mapFF(getSoundVol(), CUR_PRES.min, CUR_PRES.max); // громкость в 0-255
|
||||
}
|
||||
return scaleFF(maxBr, fadeBr);
|
||||
}
|
||||
|
||||
int getLength() {
|
||||
if (cfg.adcMode > 2 // ацп мик
|
||||
&& CUR_PRES.soundMode > 1 // светомузыка вкл
|
||||
if (musicMode() // светомузыка вкл
|
||||
&& CUR_PRES.soundReact == GL_REACT_LEN // режим длины
|
||||
) return mapFF(getSoundVol(), 0, cfg.length);
|
||||
else return cfg.length;
|
||||
}
|
||||
|
||||
byte getScale() {
|
||||
if (cfg.adcMode > 2 // ацп мик
|
||||
&& CUR_PRES.soundMode > 1 // светомузыка вкл
|
||||
if (musicMode() // светомузыка вкл
|
||||
&& CUR_PRES.soundReact == GL_REACT_SCL // режим масштаба
|
||||
) return mapFF(getSoundVol(), CUR_PRES.min, CUR_PRES.max);
|
||||
else return CUR_PRES.scale;
|
||||
|
Reference in New Issue
Block a user