![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
WS2812 / Test Program
Dependencies: mbed WS2812 PixelArray
main.cpp
- Committer:
- villemejane
- Date:
- 2021-12-13
- Revision:
- 7:63d9073a1467
- Parent:
- 6:67eded37186e
File content as of revision 7:63d9073a1467:
#include "mbed.h" #include "PixelArray.h" #include "WS2812.h" #define WS2812_BUF 64 #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; // 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() { 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); } }