ESPectro32 Library
Library for using ESPectro32 board
 All Classes Functions Variables Enumerations Enumerator Pages
WS2812.h
1 
2 
3 #ifndef MAIN_WS2812_H_
4 #define MAIN_WS2812_H_
5 #include <stdint.h>
6 #include <driver/rmt.h>
7 #include <driver/gpio.h>
8 #include <math.h>
9 #include "RgbLedColor.h"
10 
32 class WS2812 {
33 public:
34  WS2812(gpio_num_t gpioNum, uint16_t pixelCount, int channel=RMT_CHANNEL_0);
35  void show();
36  void setColorOrder(char *order);
37  void setPixel(uint16_t index, uint8_t red, uint8_t green, uint8_t blue);
38  void setPixel(uint16_t index, RgbLedColor_t pixel);
39  void setPixel(uint16_t index, uint32_t pixel);
40  void setBrightness(uint16_t index, uint8_t factor);
41  void setBrightnessPercent(uint16_t index, float percent);
42  void clear();
43  uint16_t getPixelCount() {
44  return pixelCount;
45  }
46  virtual ~WS2812();
47 private:
48  char *colorOrder;
49  uint16_t pixelCount;
50  rmt_channel_t channel;
51  rmt_item32_t *items;
52  RgbLedColor_t *pixels;
53 
54  uint8_t *brightnesses = NULL;
55 };
56 
57 #endif /* MAIN_WS2812_H_ */
WS2812(gpio_num_t gpioNum, uint16_t pixelCount, int channel=RMT_CHANNEL_0)
Construct a wrapper for the pixels.
Definition: WS2812.cpp:102
Driver for WS2812/NeoPixel data.
Definition: WS2812.h:32
void setPixel(uint16_t index, uint8_t red, uint8_t green, uint8_t blue)
Set the given pixel to the specified color.
Definition: WS2812.cpp:221
void show()
Show the current Neopixel data.
Definition: WS2812.cpp:148
void setColorOrder(char *order)
Set the color order of data sent to the LEDs.
Definition: WS2812.cpp:204
void clear()
Clear all the pixel colors.
Definition: WS2812.cpp:266
virtual ~WS2812()
Class instance destructor.
Definition: WS2812.cpp:281
Definition: RgbLedColor.h:25