cylon corrigé :(

This commit is contained in:
Julien Cabillot 2017-04-21 00:50:28 +02:00 committed by Cabillot Julien
parent 9373f0a209
commit d3cb5efddb
2 changed files with 21 additions and 37 deletions

View File

@ -9,6 +9,22 @@
#include "mqttfastledmenu.h" #include "mqttfastledmenu.h"
// LED
// En déplaçant ces vars dans le .h + init dans le setup, cylon crash au moment du premier retour ?!
int brightness = LED_BRIGHTNESS_DEFAULT;
int color = LED_COLOR_DEFAULT;
int speed = LED_SPEED_DEFAULT;
CRGB leds[LED_NUM];
String ledEffect = LED_EFFECT_ERROR;
boolean ledState = false;
// WIFI
WiFiClient espClient;
// MQTT
char message_buff[100];
PubSubClient client(espClient);
void setup() void setup()
{ {
Serial.begin(SERIAL_SPEED); Serial.begin(SERIAL_SPEED);
@ -18,13 +34,14 @@ void setup()
setupWifi(); setupWifi();
// LED // LED
/*
brightness = LED_BRIGHTNESS_DEFAULT; brightness = LED_BRIGHTNESS_DEFAULT;
color = LED_COLOR_DEFAULT; color = LED_COLOR_DEFAULT;
speed = LED_SPEED_DEFAULT; speed = LED_SPEED_DEFAULT;
ledEffect = LED_EFFECT_ERROR; ledEffect = LED_EFFECT_ERROR;
ledState = false; ledState = false;
*/
// LED
LEDS.addLeds<LED_CHIPSET,LED_PIN, LED_COLOR_ORDER>(leds, LED_NUM).setCorrection(TypicalSMD5050); LEDS.addLeds<LED_CHIPSET,LED_PIN, LED_COLOR_ORDER>(leds, LED_NUM).setCorrection(TypicalSMD5050);
ledBlackAll(); ledBlackAll();
FastLED.setBrightness(brightness); FastLED.setBrightness(brightness);
@ -235,7 +252,6 @@ void ledCylon()
FastLED.delay(1000 / speed); FastLED.delay(1000 / speed);
} }
Serial.print("\nNettoyage");
// Il faut nettoyer certaines cases avant la prochaine loop // Il faut nettoyer certaines cases avant la prochaine loop
if ((LED_NUM - 2) >= 0) { if ((LED_NUM - 2) >= 0) {
leds[LED_NUM - 2] = color; leds[LED_NUM - 2] = color;
@ -245,63 +261,43 @@ void ledCylon()
leds[LED_NUM - 1] = CRGB::Black; leds[LED_NUM - 1] = CRGB::Black;
} }
FastLED.show(); FastLED.show();
Serial.print(" ok\nRewind");
// led[0] et led[255] sont gérées par la loop précédante // led[0] et led[255] sont gérées par la loop précédante
for (int i = LED_NUM - 1; i >= 0; i--) { for (int i = LED_NUM - 1; i >= 0; i--) {
Serial.print("\nLoop ");
Serial.println(i);
client.loop(); client.loop();
Serial.print(" ok\nTestActif");
if (ledEffect != LED_EFFECT_CYLON) { if (ledEffect != LED_EFFECT_CYLON) {
return; return;
} }
Serial.println(" ok");
if ((i - 1) >= 0) { if ((i - 1) >= 0) {
Serial.print("-1");
leds[i - 1] = color; leds[i - 1] = color;
leds[i - 1].fadeLightBy(249); leds[i - 1].fadeLightBy(249);
Serial.print(" ok\n");
} }
Serial.print("0");
leds[i] = color; leds[i] = color;
Serial.println(" ok");
if ((i + 1) <= LED_NUM) { if ((i + 1) <= LED_NUM) {
Serial.print("+1");
leds[i + 1] = color; leds[i + 1] = color;
leds[i + 1].fadeLightBy(200); leds[i + 1].fadeLightBy(200);
Serial.print(" ok\n");
} }
if ((i + 2) <= LED_NUM) { if ((i + 2) <= LED_NUM) {
Serial.print("+2");
leds[i + 2] = color; leds[i + 2] = color;
leds[i + 2].fadeLightBy(220); leds[i + 2].fadeLightBy(220);
Serial.print(" ok\n");
} }
if ((i + 3) <= LED_NUM) { if ((i + 3) <= LED_NUM) {
Serial.print("+3");
leds[i + 3] = CRGB::Black; leds[i + 3] = CRGB::Black;
Serial.print(" ok\n");
} }
Serial.print("Delay");
FastLED.delay(1000 / speed); FastLED.delay(1000 / speed);
Serial.println(" ok");
} }
Serial.print("Clean1");
// Il faut nettoyer certaines cases avant la prochaine loop // Il faut nettoyer certaines cases avant la prochaine loop
if (1 <= LED_NUM) { if (1 <= LED_NUM) {
leds[1] = color; leds[1] = color;
leds[1].fadeLightBy(220); leds[1].fadeLightBy(220);
} }
Serial.print(" ok\nClean2");
if (2 <= LED_NUM) { if (2 <= LED_NUM) {
leds[2] = CRGB::Black; leds[2] = CRGB::Black;
} }
Serial.print(" ok\n");
FastLED.show(); FastLED.show();
} }

View File

@ -17,19 +17,10 @@
#define LED_EFFECT_FULLRED "full" #define LED_EFFECT_FULLRED "full"
#define LED_EFFECT_ERROR "error" #define LED_EFFECT_ERROR "error"
int brightness;
int color;
int speed;
CRGB leds[LED_NUM];
String ledEffect;
boolean ledState;
// WIFI // WIFI
#define WIFI_SSID "XXX" #define WIFI_SSID "XXX"
#define WIFI_PASSWORD "XXX" #define WIFI_PASSWORD "XXX"
WiFiClient espClient;
// MQTT // MQTT
#define MQTT_SERVER "XXX" #define MQTT_SERVER "XXX"
#define MQTT_PORT 1883 #define MQTT_PORT 1883
@ -47,9 +38,6 @@ WiFiClient espClient;
#define MQTT_LED_COLOR_COMMAND "strip1/color/switch" #define MQTT_LED_COLOR_COMMAND "strip1/color/switch"
#define MQTT_LED_COLOR_STATE "strip1/color/status" #define MQTT_LED_COLOR_STATE "strip1/color/status"
char message_buff[100];
PubSubClient client(espClient);
void setupWifi(); void setupWifi();
void testConnectMQTT(); void testConnectMQTT();