Adafruit 64x32 RGB LED Matrix - 3mm pitch Demo program for Nucleo F446RE. Use User button to display color palette in second framebuffer.

Dependencies:   HSV RGB_Matrix mbed

Committer:
JackB
Date:
Fri Oct 02 22:30:36 2015 +0000
Revision:
0:a6240ee03fe3
Adafruit 64x32 RGB LED Matrix - 3mm pitch Demo program for Nucleo F446RE.; Use User button to display color palette in second framebuffer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JackB 0:a6240ee03fe3 1 #include "mbed.h"
JackB 0:a6240ee03fe3 2 #include "HSV.h"
JackB 0:a6240ee03fe3 3 #include "RGB_Matrix.h"
JackB 0:a6240ee03fe3 4 #include "Arial8x8.h"
JackB 0:a6240ee03fe3 5 #include "Arial12x12.h"
JackB 0:a6240ee03fe3 6 #include "HD44780_6x8.h"
JackB 0:a6240ee03fe3 7
JackB 0:a6240ee03fe3 8 #define PIN_R1 D14
JackB 0:a6240ee03fe3 9 #define PIN_R2 D15
JackB 0:a6240ee03fe3 10 #define PIN_G1 D2
JackB 0:a6240ee03fe3 11 #define PIN_G2 D3
JackB 0:a6240ee03fe3 12 #define PIN_B1 D4
JackB 0:a6240ee03fe3 13 #define PIN_B2 D5
JackB 0:a6240ee03fe3 14 #define PIN_CLK D6
JackB 0:a6240ee03fe3 15 #define PIN_LAT D7
JackB 0:a6240ee03fe3 16 #define PIN_OE D8
JackB 0:a6240ee03fe3 17 #define PIN_A D9
JackB 0:a6240ee03fe3 18 #define PIN_B D10
JackB 0:a6240ee03fe3 19 #define PIN_C D11
JackB 0:a6240ee03fe3 20 #define PIN_D D12
JackB 0:a6240ee03fe3 21
JackB 0:a6240ee03fe3 22 #define PI 3.1415926536
JackB 0:a6240ee03fe3 23
JackB 0:a6240ee03fe3 24 AnalogIn analog_value(A0);
JackB 0:a6240ee03fe3 25
JackB 0:a6240ee03fe3 26 DigitalOut led1(LED1);
JackB 0:a6240ee03fe3 27 DigitalIn button(PC_13);
JackB 0:a6240ee03fe3 28
JackB 0:a6240ee03fe3 29 Ticker flipper;
JackB 0:a6240ee03fe3 30 HSV Hsv;
JackB 0:a6240ee03fe3 31
JackB 0:a6240ee03fe3 32 RGB_Matrix MyMatrix(PIN_R1, PIN_R2, PIN_G1, PIN_G2, PIN_B1, PIN_B2, PIN_CLK, PIN_LAT, PIN_OE, PIN_A, PIN_B, PIN_C, PIN_D);
JackB 0:a6240ee03fe3 33
JackB 0:a6240ee03fe3 34 void flip()
JackB 0:a6240ee03fe3 35 {
JackB 0:a6240ee03fe3 36 led1 = !led1;
JackB 0:a6240ee03fe3 37 }
JackB 0:a6240ee03fe3 38
JackB 0:a6240ee03fe3 39 int main() {
JackB 0:a6240ee03fe3 40 printf("\nRGB Matrix example\n");
JackB 0:a6240ee03fe3 41
JackB 0:a6240ee03fe3 42 flipper.attach(&flip, 0.5); // the address of the function to be attached (flip) and the interval (0.5 seconds)
JackB 0:a6240ee03fe3 43
JackB 0:a6240ee03fe3 44 MyMatrix.Init();
JackB 0:a6240ee03fe3 45 MyMatrix.SetOrientation(LANDSCAPE_B);
JackB 0:a6240ee03fe3 46 MyMatrix.set_font((unsigned char*) HD44780_6x8);
JackB 0:a6240ee03fe3 47 // MyMatrix.character(1, 1, '3');
JackB 0:a6240ee03fe3 48 // MyMatrix.printstring("0123456789");
JackB 0:a6240ee03fe3 49
JackB 0:a6240ee03fe3 50 // MyMatrix.foreground(RGB(255,64,0));
JackB 0:a6240ee03fe3 51 // MyMatrix.printstring("The quick brown fox jumps over");
JackB 0:a6240ee03fe3 52
JackB 0:a6240ee03fe3 53 MyMatrix.locate(0, 0);
JackB 0:a6240ee03fe3 54 // MyMatrix.foreground(RGB(255,255,0));
JackB 0:a6240ee03fe3 55 MyMatrix.foreground(RGB(255,128,64)); // Warm white
JackB 0:a6240ee03fe3 56 MyMatrix.printStringCenter("10:25:36");
JackB 0:a6240ee03fe3 57
JackB 0:a6240ee03fe3 58
JackB 0:a6240ee03fe3 59 MyMatrix.locate(0, 1);
JackB 0:a6240ee03fe3 60 // MyMatrix.foreground(RGB(255,64,0));
JackB 0:a6240ee03fe3 61 // MyMatrix.foreground(RGB(64,128,255));
JackB 0:a6240ee03fe3 62 MyMatrix.printStringCenter("Donderdag");
JackB 0:a6240ee03fe3 63
JackB 0:a6240ee03fe3 64 MyMatrix.locate(0, 2);
JackB 0:a6240ee03fe3 65 // MyMatrix.foreground(RGB(255,128,0));
JackB 0:a6240ee03fe3 66 MyMatrix.printStringCenter("01 Okt");
JackB 0:a6240ee03fe3 67
JackB 0:a6240ee03fe3 68 MyMatrix.locate(0, 3);
JackB 0:a6240ee03fe3 69 MyMatrix.locatePixelX(2);
JackB 0:a6240ee03fe3 70 // MyMatrix.foreground(RGB(0,255,0)); // Green
JackB 0:a6240ee03fe3 71 // MyMatrix.foreground(RGB(64,0,255)); // Purple
JackB 0:a6240ee03fe3 72 MyMatrix.foreground(RGB(255,128,64)); // Warm white
JackB 0:a6240ee03fe3 73 MyMatrix.printString("2015");
JackB 0:a6240ee03fe3 74
JackB 0:a6240ee03fe3 75 MyMatrix.locatePixelX(39);
JackB 0:a6240ee03fe3 76 // MyMatrix.foreground(RGB(0,255,64));
JackB 0:a6240ee03fe3 77 // MyMatrix.foreground(RGB(0,64,255));
JackB 0:a6240ee03fe3 78 MyMatrix.printString("22~C");
JackB 0:a6240ee03fe3 79
JackB 0:a6240ee03fe3 80 // MyMatrix.printf("Graphic");
JackB 0:a6240ee03fe3 81
JackB 0:a6240ee03fe3 82
JackB 0:a6240ee03fe3 83 MyMatrix.setWriteBuffer(1);
JackB 0:a6240ee03fe3 84 Hsv.SetS(1);
JackB 0:a6240ee03fe3 85 Hsv.SetV(1);
JackB 0:a6240ee03fe3 86 for (int i = 0; i < 360; i++)
JackB 0:a6240ee03fe3 87 {
JackB 0:a6240ee03fe3 88 for (int r = 1; r <= 36; r++) {
JackB 0:a6240ee03fe3 89 float Sat = (float)r /15.0;
JackB 0:a6240ee03fe3 90 Hsv.SetS(Sat);
JackB 0:a6240ee03fe3 91 Hsv.SetH((float)i/360.0);
JackB 0:a6240ee03fe3 92 float R = Hsv.GetR() * 255;
JackB 0:a6240ee03fe3 93 float G = Hsv.GetG() * 255;
JackB 0:a6240ee03fe3 94 float B = Hsv.GetB() * 255;
JackB 0:a6240ee03fe3 95 int x = sin(i * PI / 180) * r;
JackB 0:a6240ee03fe3 96 int y = cos(i * PI / 180) * r;
JackB 0:a6240ee03fe3 97 MyMatrix.drawPixel(x + 32, y + 16, RGB((uint8_t) R, (uint8_t) G, (uint8_t) B));
JackB 0:a6240ee03fe3 98 }
JackB 0:a6240ee03fe3 99 }
JackB 0:a6240ee03fe3 100 // MyMatrix.setDisplayBuffer(1);
JackB 0:a6240ee03fe3 101 // MyMatrix.setDisplayBuffer(1);
JackB 0:a6240ee03fe3 102 // wait(1.0);
JackB 0:a6240ee03fe3 103
JackB 0:a6240ee03fe3 104
JackB 0:a6240ee03fe3 105 // spin in a main loop. flipper will interrupt it to call flip
JackB 0:a6240ee03fe3 106 while(1) {
JackB 0:a6240ee03fe3 107 // led1 = !led1;
JackB 0:a6240ee03fe3 108 if (button)
JackB 0:a6240ee03fe3 109 MyMatrix.setDisplayBuffer(0);
JackB 0:a6240ee03fe3 110 else
JackB 0:a6240ee03fe3 111 MyMatrix.setDisplayBuffer(1);
JackB 0:a6240ee03fe3 112
JackB 0:a6240ee03fe3 113 wait(0.1);
JackB 0:a6240ee03fe3 114 }
JackB 0:a6240ee03fe3 115 }