Demo Shiftbrite and Bluefruit LE. Waits for Bluefruit to get information about setting the LED based on user input and music intensity.
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 }
Generated on Sat Jul 16 2022 21:52:57 by 1.7.2