mbed 4-LED user defined Lightshow

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 // User defined mbed LED Lightshow
00004 // Working Code 27 Nov 2010
00005 
00006 // Data entries = LED instance
00007 // Data = 91111 = all 4 LEDs on
00008 // Data = 90000 = all 4 LEDs off
00009 // Data = 90110 = LEDs 1 and 4 off, 2 and 3 on
00010 // Data value 9 prevents processing data as octal values
00011 // Data value 9 may be future LED duration timing code (values 1-9)
00012 
00013 DigitalOut myleda(LED1);
00014 DigitalOut myledb(LED2);
00015 DigitalOut myledc(LED3);
00016 DigitalOut myledd(LED4);
00017 
00018 int nDisplayTemp;
00019 int i;
00020 
00021 // Set number in array ( nDisplay[x] ) = number of data entries
00022 // Set loop value below to equal number of data entries in array
00023 
00024 int nDisplay[100]={                                                         
00025                     91000,90100,90010,90001,91000,90100,90010,90001,91000,90100,      // 1:  0 - 09 light display
00026                     90010,90001,91000,90100,90010,90001,90000,91111,90110,91001,      // 2: 10 - 19 light display1111,90111,91011,91101,91110,91111,90110,91101,91011,91111};     //10: 90 - 99 light display
00027                     90110,91111,90000,90001,90010,90100,91000,90001,90010,90100,      // 3: 20 - 29 light display
00028                     91000,90001,90010,90100,91000,90001,90010,90100,91000,90000,      // 4: 30 - 39 light display
00029                     91111,90110,91001,90110,91001,90110,91111,90000,91000,91100,      // 5: 40 - 49 light display
00030                     91110,91111,90111,90011,90001,90000,90001,90011,90111,91111,      // 6: 50 - 59 light display
00031                     91110,91100,91000,90000,91111,91001,90110,91001,91111,91111,      // 7: 60 - 69 light display
00032                     90111,90011,90001,91000,91100,91110,91111,90000,91110,91101,      // 8: 70 - 79 light display
00033                     91011,90111,91110,91100,91000,90000,91111,91000,91100,91110,      // 9: 80 - 89 light display
00034                     91111,90111,91011,91101,91110,91111,90110,91101,91011,91111};     //10: 90 - 99 light display
00035 int main() {
00036     while (1){
00037     
00038     // Set loop value to equal number of data entries in array
00039     
00040     for (int i=0; i<100; i++) {                                             
00041     if (nDisplay[i]>=91000)                                                   // light no 1 : on or off
00042     {   myleda = 1;
00043         nDisplayTemp = nDisplay[i] - 1000;
00044         }
00045     else
00046     {   myleda = 0;
00047         nDisplayTemp = nDisplay[i];
00048         }
00049     if (nDisplayTemp >= 90100)                                               // light no 2 : on or off
00050     {   myledb = 1;
00051         nDisplayTemp = nDisplayTemp - 100;
00052         }
00053     else
00054     {   myledb = 0;
00055         }
00056     if (nDisplayTemp >= 90010)                                               // light no 3 : on or off
00057     {   myledc = 1;
00058         nDisplayTemp = nDisplayTemp - 10;
00059         }
00060     else
00061     {   myledc = 0;
00062         }
00063      if (nDisplayTemp >= 90001)                                              // light no 4 : on or off
00064      {  myledd = 1;
00065         }
00066      else
00067      {  myledd = 0;
00068         }   
00069   
00070         wait(0.2);
00071         myleda = myledb = myledc = myledd = 0;                              // 0.2 sec : all lights off
00072         wait(0.2);
00073     }
00074    }
00075 }