WS2812 / Test Program
Dependencies: mbed WS2812 PixelArray
Diff: main.cpp
- Revision:
- 7:63d9073a1467
- Parent:
- 6:67eded37186e
--- a/main.cpp Tue Dec 12 08:06:55 2017 +0000 +++ b/main.cpp Mon Dec 13 08:59:15 2021 +0000 @@ -1,18 +1,100 @@ #include "mbed.h" -#include "neopixel.h" +#include "PixelArray.h" +#include "WS2812.h" + +#define WS2812_BUF 64 -NeoPixel npx(D6,8); +#define BLACK 0x00000000 +#define WHITE 0x00FFFFFF +#define WHITEW 0xFFFFFFFF +#define GRAY 0x00808080 +#define RED 0x00FF0000 +#define ORANGE 0x00FFA500 +#define BLUE 0x000000FF +#define DARKGREEN 0x00006400 +#define DARKCYAN 0x00008B8B +#define INDIGO 0x004B0082 + +/* Variables globales */ +Serial my_pc(USBTX, USBRX); +PixelArray px(WS2812_BUF); +int i; -void setByte(uint8_t bits, uint32_t color) -{ - for (int i=0; i<8; i++) - if (bits & 1 << i) - npx.setColor(i,color); - else - npx.setColor(i,0); - npx.show(); +// For Nucleo F476 : 3, 12, 9, 12 +WS2812 ws(D7, WS2812_BUF, 3, 12, 9, 12); + +void afficheArray(PixelArray pxi, int size){ + int k; + int *pixels = px.getBuf(); + for(k = 0; k < size; k++){ + my_pc.printf("i %d / pix %d \r\n", k, *(pixels+k)); + } +} + +void blackGrille(void){ + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, BLACK); + } + ws.write(px.getBuf()); +} + +void whiteGrille(void){ + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, WHITEW); + } + ws.write(px.getBuf()); } int main() { - //binärer Zähler ;) + ws.useII(WS2812::GLOBAL); + ws.setII(100); + /* + while(1){ + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, 255); + } + ws.write(px.getBuf()); + wait(0.2); + } + + */ + + blackGrille(); + wait(1); + /* + whiteGrille(); + wait(0.5); + blackGrille(); + wait(0.5); + */ + while(1){ + /* Reinitialisation ecran */ + + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, BLACK); + } + ws.write(px.getBuf()); + wait(0.2); + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, BLUE); + } + ws.write(px.getBuf()); + wait(0.2); + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, WHITE); + } + ws.write(px.getBuf()); + wait(0.2); + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, RED); + } + ws.write(px.getBuf()); + wait(0.2); + for (i = 0; i < WS2812_BUF; i++) { + px.Set(i, BLACK); + } + ws.write(px.getBuf()); + wait(1); + + } }