Use FastLED instead of NeoMatrix.
This commit is contained in:
@@ -1,24 +1,28 @@
|
||||
#ifndef LEDMATRIX_H
|
||||
#define LEDMATRIX_H
|
||||
|
||||
#ifndef FASTLED_INTERNAL
|
||||
#define FASTLED_INTERNAL
|
||||
#endif
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_NeoMatrix.h>
|
||||
#include <FastLED_NeoMatrix.h>
|
||||
#include "wordclock_constants.h"
|
||||
#include "udp_logger.h"
|
||||
|
||||
#define DEFAULT_CURRENT_LIMIT 9999
|
||||
|
||||
extern const uint32_t colors_24bit[NUM_COLORS];
|
||||
|
||||
class LEDMatrix
|
||||
{
|
||||
public:
|
||||
LEDMatrix(Adafruit_NeoMatrix * matrix, uint8_t brightness, UDPLogger * logger);
|
||||
LEDMatrix(FastLED_NeoMatrix *matrix, uint8_t brightness, UDPLogger *logger);
|
||||
static uint16_t color_24_to_16bit(uint32_t color24bit);
|
||||
static uint32_t color_24bit(uint8_t r, uint8_t g, uint8_t b);
|
||||
static uint32_t interpolate_color_24bit(uint32_t color1, uint32_t color2, float factor);
|
||||
static uint32_t wheel(uint8_t WheelPos);
|
||||
uint16_t get_fps(void);
|
||||
void draw_on_matrix_instant();
|
||||
void draw_on_matrix_smooth(float factor);
|
||||
void flush(void);
|
||||
@@ -31,17 +35,17 @@ public:
|
||||
void setup_matrix();
|
||||
|
||||
private:
|
||||
Adafruit_NeoMatrix * _neomatrix;
|
||||
UDPLogger * _logger;
|
||||
FastLED_NeoMatrix *_neomatrix;
|
||||
UDPLogger *_logger;
|
||||
|
||||
uint8_t _brightness;
|
||||
uint16_t _current_limit;
|
||||
|
||||
// target representation of matrix as 2D array
|
||||
uint32_t _target_grid[MATRIX_HEIGHT][MATRIX_WIDTH] = {0};
|
||||
uint32_t _target_grid[MATRIX_HEIGHT][MATRIX_WIDTH];
|
||||
|
||||
// current representation of matrix as 2D array
|
||||
uint32_t _current_grid[MATRIX_HEIGHT][MATRIX_WIDTH] = {0};
|
||||
uint32_t _current_grid[MATRIX_HEIGHT][MATRIX_WIDTH];
|
||||
|
||||
// target representation of minutes indicator LEDs
|
||||
uint32_t _target_minute_indicators[4] = {0, 0, 0, 0};
|
||||
@@ -53,4 +57,4 @@ private:
|
||||
uint16_t _calc_estimated_led_current(uint32_t color);
|
||||
};
|
||||
|
||||
#endif /* LEDMATRIX_H */
|
||||
#endif /* LEDMATRIX_H */
|
||||
@@ -16,7 +16,7 @@
|
||||
#define HTTP_PORT (80) // Standard HTTP port
|
||||
|
||||
// ESP8266 Pins
|
||||
#define NEOPIXEL_PIN (14) // pin to which the NeoPixels are attached
|
||||
#define FASTLED_PIN (14) // pin to which the LEDs are attached
|
||||
#define BUTTON_PIN (5) // pin to which the button is attached
|
||||
|
||||
// Time limits
|
||||
@@ -36,8 +36,8 @@
|
||||
#define PERIOD_ANIMATION_US (200 * 1000) // 200ms
|
||||
#define PERIOD_CLOCK_UPDATE_US (1 * 1000 * 1000) // Must be 1s! Do not change!
|
||||
#define PERIOD_HEARTBEAT_US (1 * 1000 * 1000) // 1s
|
||||
#define PERIOD_MATRIX_UPDATE_US (100 * 1000) // 100ms
|
||||
#define PERIOD_NIGHTMODE_CHECK_US (20 * 1000 * 1000) // 20s
|
||||
#define PERIOD_MATRIX_UPDATE_US (33 * 1000) // 33ms
|
||||
#define PERIOD_NIGHTMODE_CHECK_US (30 * 1000 * 1000) // 30s
|
||||
#define PERIOD_TIME_UPDATE_US (1 * 1000 * 1000) // 1000ms
|
||||
#define PERIOD_PONG_US (10 * 1000) // 10ms
|
||||
#define PERIOD_SNAKE_US (50 * 1000) // 50ms
|
||||
@@ -63,10 +63,12 @@
|
||||
|
||||
// Number of colors in colors array
|
||||
#define NUM_COLORS (7)
|
||||
#define COLOR_ORDER GRB // WS2812B color order
|
||||
|
||||
// LED matrix size
|
||||
#define MATRIX_WIDTH (11)
|
||||
#define MATRIX_HEIGHT (11)
|
||||
#define NUM_MATRIX (MATRIX_WIDTH * (MATRIX_HEIGHT + 1))
|
||||
|
||||
// NTP macros
|
||||
#define BUILD_YEAR (__DATE__ + 7) // Will expand to current year at compile time as string.
|
||||
|
||||
Reference in New Issue
Block a user