test
Dependencies: mbed AsyncBuzzerLib X_NUCLEO_53L1A1_mbed WS2812
LED_WS2812/LED_WS2812.h
- Committer:
- elab
- Date:
- 2020-09-29
- Revision:
- 0:89b87662e64b
File content as of revision 0:89b87662e64b:
#ifndef LED_WS2812_H #define LED_WS2812_H #include "mbed.h" #include "WS2812.h" #include "PixelArray.h" /* #define ZERO_HIGH 250.0 #define ZERO_LOW 1000.0 #define ONE_HIGH 1000.0 #define ONE_LOW 250.0 */ #define ZERO_HIGH 200.0 #define ZERO_LOW 800.0 #define ONE_HIGH 800.0 #define ONE_LOW 200.0 typedef enum _LED_COLORS { BLUE = 0x0000FF, LIGHTBLUE = 0x00FFF6, RED = 0xFF0000, ORANGE = 0xFF3500, GREEN = 0X00FF00, BLACK = 0X000000, WHITE = 0XFFFFFF, PURPLE = 0XFF00FF, PINK = 0XFF84A3, YELLOW = 0XFFFF00, DARK_YELLOW = 0X555500, DEFAULT = 0x000000 } LED_COLORS; class LED_WS2812 { public: LED_WS2812(PinName _PinOut, int _nbLeds); ~LED_WS2812(); void SetColor(LED_COLORS _color, int position); void SetColor(unsigned int _color, int position); void SetColor(unsigned int _color); void SetColor(LED_COLORS _color); void ResetColor(); void SetIntensity(float perCent); void InsertColor(unsigned int _color); void InsertColor(unsigned int _color, float brightness); void InsertColorNtimes(int N, unsigned int _color, float brightness); void InsertColorNtimes(int N, unsigned int _color); void InsertColor(LED_COLORS _color); void InsertColor(LED_COLORS _color, float brightness); void InsertColorNtimes(int N, LED_COLORS _color, float brightness); void InsertColorNtimes(int N, LED_COLORS _color); void StartRotation(float interval); // interval in s void StopRotation(); // void Rotate(); // One Rotation void StartBlink(float interval); // interval in s void StopBlink(); // void Blink(); // One Rotation private: void __writeBuf(int z); void __insert2buf(); void __insertColor(unsigned int _color, int _intensity); WS2812 *ws; int nbLeds; PixelArray *pxArray; int nbInsert; PixelArray *pxInsert; Ticker LEDSystemTick; // System Callback for Rotation Ticker LEDBlinkSystemTick; // System Callback for Rotation bool rotationState; bool blinkState; int rotationPosition; bool blinkONOFF; // ON = true, OFF = false int intensity; }; #endif