RGB LEDS of the neopixels

Dependencies:   C12832_lcd PixelArray WS2812 mbed

Fork of WS2812_Example by Brian Daniels

Files at this revision

API Documentation at this revision

Comitter:
cathal66
Date:
Tue Apr 21 13:26:10 2015 +0000
Parent:
4:7a998a6934f1
Commit message:
function to control the leds;

Changed in this revision

C12832_lcd.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 7a998a6934f1 -r 60a9e2389a9c C12832_lcd.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C12832_lcd.lib	Tue Apr 21 13:26:10 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/dreschpe/code/C12832_lcd/#8f86576007d6
diff -r 7a998a6934f1 -r 60a9e2389a9c main.cpp
--- a/main.cpp	Thu Apr 16 09:23:20 2015 +0000
+++ b/main.cpp	Tue Apr 21 13:26:10 2015 +0000
@@ -1,6 +1,7 @@
 #include "mbed.h"
 #include "WS2812.h"
 #include "PixelArray.h"
+#include "C12832_lcd.h"
 
 #define WS2812_BUF 3
 #define NUM_COLORS 9
@@ -11,16 +12,19 @@
 // The given numbers are for the K64F
 WS2812 ws(p9, WS2812_BUF, 5, 10, 10, 15);
 
-int main()
-{
+//LCD Setup
+C12832_LCD lcd;  
+
+Serial pc(USBTX, USBRX); // tx, rx
 
-    ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling
+void LED_Colour(int red , int green ,int blue , int bright)
+    {
+    int colorbuf[NUM_COLORS] = {0x000000};
+    //int colorbuf[NUM_COLORS] = {0x000000,0x00f0ff,0x00ff00,0x00ffff,0xffffff,0x00ff00,0x00ffff,0x0000ff,0xff00ff};
     
-    // set up the colours we want to draw with
-    int colorbuf[NUM_COLORS] = {0xfe0000};//,0x00f0ff,0x00ff00,0x00ffff,0xffffff,0x00ff00,0x00ffff,0x0000ff,0xff00ff};
+    colorbuf[0] = red*0xffff + green*0xff + blue*0x00;
     
-   
-        
+    pc.printf("Colour: %x \n\r",colorbuf[0]);
     // for each of the colours (j) write out 10 of them
     // the pixels are written at the colour*10, plus the colour position
     // all modulus 60 so it wraps around
@@ -33,44 +37,17 @@
     for (int j=0; j<WS2812_BUF; j++) {
         // px.SetI(pixel position, II value)
         //px.SetI(j%WS2812_BUF, 0xff+(0xf*(j%NUM_LEDS_PER_COLOR)));     //full brightness
-        px.SetI(j%WS2812_BUF, 0xf+(0xf*(j%NUM_LEDS_PER_COLOR)));        //Dim lighting
-    }
+        px.SetI(j%WS2812_BUF, 0xf +(0xf*(j%NUM_LEDS_PER_COLOR)));        //Dim lighting
+    }       
+}
+int main()
+{
 
-
-    // Now the buffer is written, rotate it
-    // by writing it out with an increasing offset
+    ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling
+    
      while (1) {
-        if(colorbuf[0]>=0xfffffe)
-            {
-            //colorbuf[0]=0x000000;    
-            } 
-            
-        if(colorbuf[0]^0x000fff>=0x0001ff)
-            {
-            colorbuf[0]=colorbuf[0]+0x000001-0x010000;
-            //colorbuf[0] = 0x000000;    
-            }
-        else if(colorbuf[0]^0x00ffff>=0x01ffff)
-            {
-            colorbuf[0]=colorbuf[0]+0x000100-0x000001;  
-            }
-        else if(colorbuf[0]<=0xfffffe)
-            {
-            colorbuf[0]=colorbuf[0]+0x010001-0x000100;    
-            } 
-        
-        
-               
-
-        for (int i = 0; i < WS2812_BUF; i++) {
-            px.Set(i, colorbuf[(i / NUM_LEDS_PER_COLOR) % NUM_COLORS]);
-            px.SetI(i%WS2812_BUF, 0xf+(0xf*(i%NUM_LEDS_PER_COLOR)));        //Dim lighting
-        }
-        for (int z=WS2812_BUF; z >= 0 ; z--) {
-            ws.write_offsets(px.getBuf(),z,z,z);
-            //wait(0.5);
-    
-            }
-        wait(0.01);
+ 
+        LED_Colour(125, 125 ,125 , 125);
+        wait(1);
         }
 }