Browse Source

precalc ne sert à rien

master
Julien Cabillot 3 years ago
committed by Cabillot Julien
parent
commit
49dc5182fe
2 changed files with 2 additions and 10 deletions
  1. 11
      arduino/alarmclock/alarmclock.cpp
  2. 1
      arduino/alarmclock/alarmclock.exemple.h

11
arduino/alarmclock/alarmclock.cpp

@ -116,7 +116,6 @@ void callbackMQTT(char* topic, byte* payload, unsigned int length)
} else if (stopic == MQTT_LED_BRIGHTNESS_COMMAND) {
maxBrightness = msgString.toInt();
mqttSendBrightnessState();
doPrecalcBreath();
} else if (stopic == MQTT_LED_COLOR_COMMAND) {
// Sample : 134,168,255
int red = msgString.substring(0, msgString.indexOf(',')).toInt();
@ -194,8 +193,9 @@ 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
*/
// J'ai essayé en précalculant la dernière partie à chaque changement de brightness.
// Cela ne change rien on nombre de frames traitées (400).
float breath = (exp(sin(millis() / 4500.0 * PI)) + 1.2) * ((curbrightness - 1) / (EULER - (1 / EULER)));
// float breath = (exp(sin(millis() / 4500.0 * PI)) + 1.2) * precalcBreath
fill_solid(leds, LED_NUM, color);
FastLED.setBrightness(breath);
@ -208,8 +208,6 @@ void ledDisplay()
Serial.println(maxBrightness);
}
*/
// TODO : il faut voir combien de temps prends le calcul de la formule.
// En effet on pourrais precalculer la valeur de fin au moment d'un changement de brightness.
fps++;
if (SHOW_FPS) {
EVERY_N_SECONDS(1) {
@ -221,11 +219,6 @@ void ledDisplay()
FastLED.show();
}
void doPrecalcBreath()
{
precalcBreath = ((curbrightness - 1) / (EULER - (1 / EULER)));
}
void loop() {
EVERY_N_SECONDS(10) {
if (curbrightness <= maxBrightness) {

1
arduino/alarmclock/alarmclock.exemple.h

@ -2,7 +2,6 @@
#define SHOW_FPS 1
int fps;
float precalcBreath;
// LED
#define LED_NUM 30

Loading…
Cancel
Save