|
|
|
@ -7,15 +7,6 @@ |
|
|
|
|
|
|
|
#include "alarmclock.h"
|
|
|
|
|
|
|
|
// LED
|
|
|
|
// Corresponds à un max brightness configurable via HA
|
|
|
|
int maxBrightness = LED_BRIGHTNESS_DEFAULT; |
|
|
|
// Utilisé pour définir le seuil actuel de brightness
|
|
|
|
int curbrightness = 0; |
|
|
|
int color = LED_COLOR_DEFAULT; |
|
|
|
CRGB leds[LED_NUM]; |
|
|
|
boolean ledState = false; |
|
|
|
|
|
|
|
void setup() |
|
|
|
{ |
|
|
|
Serial.begin(SERIAL_SPEED); |
|
|
|
@ -25,11 +16,10 @@ void setup() |
|
|
|
setupWifi(); |
|
|
|
|
|
|
|
// LED
|
|
|
|
/*
|
|
|
|
brightness = LED_BRIGHTNESS_DEFAULT; |
|
|
|
maxBrightness = LED_MAXBRIGHTNESS_DEFAULT; |
|
|
|
curbrightness = LED_BRIGHTNESS_DEFAULT; |
|
|
|
color = LED_COLOR_DEFAULT; |
|
|
|
ledState = false; |
|
|
|
*/ |
|
|
|
|
|
|
|
LEDS.addLeds<LED_CHIPSET,LED_PIN, LED_COLOR_ORDER>(leds, LED_NUM).setCorrection(TypicalSMD5050); |
|
|
|
ledBlackAll(); |
|
|
|
@ -118,7 +108,7 @@ void callbackMQTT(char* topic, byte* payload, unsigned int length) |
|
|
|
ledState = true; |
|
|
|
} else { |
|
|
|
ledState = false; |
|
|
|
curbrightness = 0; |
|
|
|
curbrightness = LED_BRIGHTNESS_DEFAULT; |
|
|
|
ledBlackAll(); |
|
|
|
} |
|
|
|
mqttSendState(); |
|
|
|
@ -202,8 +192,7 @@ void ledDisplay() |
|
|
|
* En remplaçant 1/e par 0.349 on arrive à un minimal de 1.00x ce qui permet d'avoir les leds qui ne s'éteignent pas |
|
|
|
* Il faut alors remplacer maxBrightness par maxBrightness - 1 dans la dernière partie de l'équation |
|
|
|
*/ |
|
|
|
//float breath = (exp(sin(millis() / 4000.0 * PI)) - 0.36787944) * 108.0;
|
|
|
|
float breath = (exp(sin(millis() / 4000.0 * PI)) - 0.349) * ((maxBrightness - 1) / (EULER - (1 / EULER))); |
|
|
|
float breath = (exp(sin(millis() / 4500.0 * PI)) + 1.2) * ((curbrightness - 1) / (EULER - (1 / EULER))); |
|
|
|
|
|
|
|
fill_solid(leds, LED_NUM, color); |
|
|
|
FastLED.setBrightness(breath); |
|
|
|
|