WS2812 / Test Program

Dependencies:   mbed WS2812 PixelArray

Committer:
villemejane
Date:
Mon Dec 13 08:59:15 2021 +0000
Revision:
7:63d9073a1467
Parent:
6:67eded37186e
WS2812-Test Program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:028fac66239d 1 #include "mbed.h"
villemejane 7:63d9073a1467 2 #include "PixelArray.h"
villemejane 7:63d9073a1467 3 #include "WS2812.h"
villemejane 7:63d9073a1467 4
villemejane 7:63d9073a1467 5 #define WS2812_BUF 64
Hinz 4:1f676d6961e8 6
villemejane 7:63d9073a1467 7 #define BLACK 0x00000000
villemejane 7:63d9073a1467 8 #define WHITE 0x00FFFFFF
villemejane 7:63d9073a1467 9 #define WHITEW 0xFFFFFFFF
villemejane 7:63d9073a1467 10 #define GRAY 0x00808080
villemejane 7:63d9073a1467 11 #define RED 0x00FF0000
villemejane 7:63d9073a1467 12 #define ORANGE 0x00FFA500
villemejane 7:63d9073a1467 13 #define BLUE 0x000000FF
villemejane 7:63d9073a1467 14 #define DARKGREEN 0x00006400
villemejane 7:63d9073a1467 15 #define DARKCYAN 0x00008B8B
villemejane 7:63d9073a1467 16 #define INDIGO 0x004B0082
villemejane 7:63d9073a1467 17
villemejane 7:63d9073a1467 18 /* Variables globales */
villemejane 7:63d9073a1467 19 Serial my_pc(USBTX, USBRX);
villemejane 7:63d9073a1467 20 PixelArray px(WS2812_BUF);
villemejane 7:63d9073a1467 21 int i;
bcostm 1:e9d1c42a73ae 22
villemejane 7:63d9073a1467 23 // For Nucleo F476 : 3, 12, 9, 12
villemejane 7:63d9073a1467 24 WS2812 ws(D7, WS2812_BUF, 3, 12, 9, 12);
villemejane 7:63d9073a1467 25
villemejane 7:63d9073a1467 26 void afficheArray(PixelArray pxi, int size){
villemejane 7:63d9073a1467 27 int k;
villemejane 7:63d9073a1467 28 int *pixels = px.getBuf();
villemejane 7:63d9073a1467 29 for(k = 0; k < size; k++){
villemejane 7:63d9073a1467 30 my_pc.printf("i %d / pix %d \r\n", k, *(pixels+k));
villemejane 7:63d9073a1467 31 }
villemejane 7:63d9073a1467 32 }
villemejane 7:63d9073a1467 33
villemejane 7:63d9073a1467 34 void blackGrille(void){
villemejane 7:63d9073a1467 35 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 36 px.Set(i, BLACK);
villemejane 7:63d9073a1467 37 }
villemejane 7:63d9073a1467 38 ws.write(px.getBuf());
villemejane 7:63d9073a1467 39 }
villemejane 7:63d9073a1467 40
villemejane 7:63d9073a1467 41 void whiteGrille(void){
villemejane 7:63d9073a1467 42 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 43 px.Set(i, WHITEW);
villemejane 7:63d9073a1467 44 }
villemejane 7:63d9073a1467 45 ws.write(px.getBuf());
RitaF 6:67eded37186e 46 }
RitaF 6:67eded37186e 47
Hinz 4:1f676d6961e8 48 int main() {
villemejane 7:63d9073a1467 49 ws.useII(WS2812::GLOBAL);
villemejane 7:63d9073a1467 50 ws.setII(100);
villemejane 7:63d9073a1467 51 /*
villemejane 7:63d9073a1467 52 while(1){
villemejane 7:63d9073a1467 53 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 54 px.Set(i, 255);
villemejane 7:63d9073a1467 55 }
villemejane 7:63d9073a1467 56 ws.write(px.getBuf());
villemejane 7:63d9073a1467 57 wait(0.2);
villemejane 7:63d9073a1467 58 }
villemejane 7:63d9073a1467 59
villemejane 7:63d9073a1467 60 */
villemejane 7:63d9073a1467 61
villemejane 7:63d9073a1467 62 blackGrille();
villemejane 7:63d9073a1467 63 wait(1);
villemejane 7:63d9073a1467 64 /*
villemejane 7:63d9073a1467 65 whiteGrille();
villemejane 7:63d9073a1467 66 wait(0.5);
villemejane 7:63d9073a1467 67 blackGrille();
villemejane 7:63d9073a1467 68 wait(0.5);
villemejane 7:63d9073a1467 69 */
villemejane 7:63d9073a1467 70 while(1){
villemejane 7:63d9073a1467 71 /* Reinitialisation ecran */
villemejane 7:63d9073a1467 72
villemejane 7:63d9073a1467 73 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 74 px.Set(i, BLACK);
villemejane 7:63d9073a1467 75 }
villemejane 7:63d9073a1467 76 ws.write(px.getBuf());
villemejane 7:63d9073a1467 77 wait(0.2);
villemejane 7:63d9073a1467 78 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 79 px.Set(i, BLUE);
villemejane 7:63d9073a1467 80 }
villemejane 7:63d9073a1467 81 ws.write(px.getBuf());
villemejane 7:63d9073a1467 82 wait(0.2);
villemejane 7:63d9073a1467 83 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 84 px.Set(i, WHITE);
villemejane 7:63d9073a1467 85 }
villemejane 7:63d9073a1467 86 ws.write(px.getBuf());
villemejane 7:63d9073a1467 87 wait(0.2);
villemejane 7:63d9073a1467 88 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 89 px.Set(i, RED);
villemejane 7:63d9073a1467 90 }
villemejane 7:63d9073a1467 91 ws.write(px.getBuf());
villemejane 7:63d9073a1467 92 wait(0.2);
villemejane 7:63d9073a1467 93 for (i = 0; i < WS2812_BUF; i++) {
villemejane 7:63d9073a1467 94 px.Set(i, BLACK);
villemejane 7:63d9073a1467 95 }
villemejane 7:63d9073a1467 96 ws.write(px.getBuf());
villemejane 7:63d9073a1467 97 wait(1);
villemejane 7:63d9073a1467 98
villemejane 7:63d9073a1467 99 }
bcostm 0:028fac66239d 100 }