Demo Shiftbrite and Bluefruit LE. Waits for Bluefruit to get information about setting the LED based on user input and music intensity.

Dependencies:   ShiftBrite mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "ShiftBrite.h"
00003 
00004 //bluefruit setup
00005 RawSerial  dev(p28,p27);
00006 SPI spi(p11, p12, p13);
00007 
00008 //shiftbrite setup
00009 ShiftBrite myBrite(p15,p16,spi); //latch, enable, spi
00010 
00011 enum color {RED, GREEN, BLUE} currColor;
00012 char c = 'r';
00013 int change = 0;
00014 int musicMode = 0;
00015 
00016 //get char from bluetooth
00017 void dev_recv()
00018 {
00019     change = 1; //new receive, change LED
00020     while(dev.readable()) {
00021         c = dev.getc();
00022     }
00023 }
00024 
00025 int main()
00026 {
00027     dev.baud(9600);
00028 
00029     dev.attach(&dev_recv, Serial::RxIrq);
00030     
00031     //initialize shiftbrite to red
00032     currColor = RED;
00033     myBrite.Write(255, 0, 0);
00034 
00035     while(1) {
00036         //if LED has not changed, do nothing
00037         if (change == 0) {
00038             sleep();
00039         } else {
00040             if (musicMode == 0) {
00041                 if (c == 'r') {
00042                     myBrite.Write(255, 0, 0);
00043                     currColor = RED;
00044                 } else if (c == 'g') {
00045                     myBrite.Write(0, 255, 0);
00046                     currColor = GREEN;
00047                 } else if (c == 'b') {
00048                     myBrite.Write(0 , 0, 255);
00049                     currColor = BLUE;
00050                 } else if (c == 'm')
00051                     musicMode = 1;
00052             } else {
00053                 if (c == 'm')
00054                     musicMode = 0;
00055                 if (currColor == RED) {
00056                     if (c == '1')
00057                         myBrite.Write(25, 0, 0);
00058                     else if (c == '2')
00059                         myBrite.Write(50, 0, 0);
00060                     else if (c == '3')
00061                         myBrite.Write(75, 0, 0);
00062                     else if (c == '4')
00063                         myBrite.Write(100, 0, 0);
00064                     else if (c == '5')
00065                         myBrite.Write(125, 0, 0);
00066                     else if (c == '6')
00067                         myBrite.Write(150, 0, 0);
00068                     else if (c == '7')
00069                         myBrite.Write(175, 0, 0);
00070                     else if (c == '8')
00071                         myBrite.Write(200, 0, 0);
00072                     else if (c == '9')
00073                         myBrite.Write(225, 0, 0);
00074                 } else if (currColor == GREEN) {
00075                     if (c == '1')
00076                         myBrite.Write(0, 25, 0);
00077                     else if (c == '2')
00078                         myBrite.Write(0, 50, 0);
00079                     else if (c == '3')
00080                         myBrite.Write(0, 75, 0);
00081                     else if (c == '4')
00082                         myBrite.Write(0, 100, 0);
00083                     else if (c == '5')
00084                         myBrite.Write(0, 125, 0);
00085                     else if (c == '6')
00086                         myBrite.Write(0, 150, 0);
00087                     else if (c == '7')
00088                         myBrite.Write(0, 175, 0);
00089                     else if (c == '8')
00090                         myBrite.Write(0, 200, 0);
00091                     else if (c == '9')
00092                         myBrite.Write(0, 225, 0);
00093                 } else if (currColor == BLUE) {
00094                     if (c == '1')
00095                         myBrite.Write(0, 0, 25);
00096                     else if (c == '2')
00097                         myBrite.Write(0, 0, 50);
00098                     else if (c == '3')
00099                         myBrite.Write(0, 0, 75);
00100                     else if (c == '4')
00101                         myBrite.Write(0, 0, 100);
00102                     else if (c == '5')
00103                         myBrite.Write(0, 0, 125);
00104                     else if (c == '6')
00105                         myBrite.Write(0, 0, 150);
00106                     else if (c == '7')
00107                         myBrite.Write(0, 0, 175);
00108                     else if (c == '8')
00109                         myBrite.Write(0, 0, 200);
00110                     else if (c == '9')
00111                         myBrite.Write(0, 0, 225);
00112                 }
00113             }
00114         change = 0;
00115         }
00116     }
00117 }