led

Dependencies:   mbed PixelArray

Committer:
clementlignie
Date:
Thu Jun 13 14:58:56 2019 +0000
Revision:
3:7559835b072a
Parent:
1:ca76237d2965
leds

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JacobBramley 0:60499ad28ea9 1 #include "mbed.h"
JacobBramley 1:ca76237d2965 2 #include "neopixel.h"
JacobBramley 0:60499ad28ea9 3
JacobBramley 1:ca76237d2965 4 // This must be an SPI MOSI pin.
clementlignie 3:7559835b072a 5 #define DATA_PIN p11
JacobBramley 0:60499ad28ea9 6
clementlignie 3:7559835b072a 7 DigitalIn BPA(p17);
clementlignie 3:7559835b072a 8 DigitalIn BPB(p18);
clementlignie 3:7559835b072a 9
clementlignie 3:7559835b072a 10 void generateTourne(neopixel::Pixel * out, uint32_t index, uintptr_t extra)
JacobBramley 1:ca76237d2965 11 {
clementlignie 3:7559835b072a 12 uint32_t brightness = 100;
JacobBramley 1:ca76237d2965 13 out->red = ((index + extra) & 0x1) ? brightness : 0;
JacobBramley 1:ca76237d2965 14 out->green = ((index + extra) & 0x2) ? brightness : 0;
JacobBramley 1:ca76237d2965 15 out->blue = ((index + extra) & 0x4) ? brightness : 0;
JacobBramley 0:60499ad28ea9 16 }
JacobBramley 0:60499ad28ea9 17
clementlignie 3:7559835b072a 18 void generateRouge(neopixel::Pixel * out, uint32_t index, uintptr_t extra)
clementlignie 3:7559835b072a 19 {
clementlignie 3:7559835b072a 20 uint32_t brightness = 100;
clementlignie 3:7559835b072a 21 out->red = 255;
clementlignie 3:7559835b072a 22 out->green = 0;
clementlignie 3:7559835b072a 23 out->blue = 0;
clementlignie 3:7559835b072a 24 }
clementlignie 3:7559835b072a 25 void generateVert(neopixel::Pixel * out, uint32_t index, uintptr_t extra)
clementlignie 3:7559835b072a 26 {
clementlignie 3:7559835b072a 27 uint32_t brightness = 100;
clementlignie 3:7559835b072a 28 out->red = 0;
clementlignie 3:7559835b072a 29 out->green = 255;
clementlignie 3:7559835b072a 30 out->blue = 0;
clementlignie 3:7559835b072a 31 }
clementlignie 3:7559835b072a 32
JacobBramley 1:ca76237d2965 33 int main()
JacobBramley 1:ca76237d2965 34 {
JacobBramley 1:ca76237d2965 35 // Create a temporary DigitalIn so we can configure the pull-down resistor.
JacobBramley 1:ca76237d2965 36 // (The mbed API doesn't provide any other way to do this.)
JacobBramley 1:ca76237d2965 37 // An alternative is to connect an external pull-down resistor.
JacobBramley 1:ca76237d2965 38 DigitalIn(DATA_PIN, PullDown);
JacobBramley 1:ca76237d2965 39
JacobBramley 1:ca76237d2965 40 // The pixel array control class.
JacobBramley 1:ca76237d2965 41 neopixel::PixelArray array(DATA_PIN);
JacobBramley 1:ca76237d2965 42
JacobBramley 1:ca76237d2965 43 uint32_t offset = 0;
JacobBramley 1:ca76237d2965 44 while (1) {
clementlignie 3:7559835b072a 45
clementlignie 3:7559835b072a 46 if (!(BPA)){
clementlignie 3:7559835b072a 47 array.update(generateVert, 100, offset++);
clementlignie 3:7559835b072a 48 wait(5);
clementlignie 3:7559835b072a 49 }
clementlignie 3:7559835b072a 50 if (!(BPB)){
clementlignie 3:7559835b072a 51 array.update(generateRouge, 100, offset++);
clementlignie 3:7559835b072a 52 wait(5);
clementlignie 3:7559835b072a 53 }
clementlignie 3:7559835b072a 54 //if ((BPA == 1)&&(BPB == 1))
clementlignie 3:7559835b072a 55 array.update(generateTourne, 100, offset++);
clementlignie 3:7559835b072a 56
JacobBramley 1:ca76237d2965 57 wait_ms(250);
JacobBramley 0:60499ad28ea9 58 }
JacobBramley 0:60499ad28ea9 59 }