Advertisement
jacksonliam

8x8x8 LED cube Test

Mar 16th, 2012
7,945
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.21 KB | None | 0 0
  1. //Test an 8x8x8 LED cube
  2.  
  3.  
  4. //--- Pin connected to ST_CP of 74HC595
  5. int latchPin = 10;
  6. //--- Pin connected to SH_CP of 74HC595
  7. int clockPin = 13;
  8. //--- Pin connected to DS of 74HC595
  9. int dataPin = 11;
  10.  
  11. byte pinVals[8];
  12.  int zLayer = 0;
  13.  int xc = 0;
  14.  int yc = 0;
  15.  
  16. void setup(){
  17.     //layer pins
  18.   for(int i = 2; i < 10; i++)
  19.   {
  20.     pinMode(i, OUTPUT);
  21.     digitalWrite(i, LOW);
  22.   }
  23.  
  24.   pinMode(latchPin, OUTPUT);
  25.   pinMode(clockPin, OUTPUT);
  26.   pinMode(dataPin, OUTPUT);
  27.  
  28.   digitalWrite(latchPin,LOW);
  29.   digitalWrite(dataPin,LOW);
  30.   digitalWrite(clockPin,LOW);
  31.  
  32.   bitSet(pinVals[0], 0);
  33.   digitalWrite(zLayer + 2, HIGH);
  34. }
  35.  
  36. void loop(){
  37.   digitalWrite(latchPin, LOW);
  38.   for(int i = 0; i < 8; i++){
  39.    shiftOut(dataPin, clockPin, MSBFIRST, pinVals[i]);
  40.   }
  41.   digitalWrite(latchPin, HIGH);
  42.  
  43.   //Increase for slower effect
  44.   delay(50);
  45.  
  46.   //Set the display bits
  47.   bitClear(pinVals[yc], xc);
  48.   xc++;
  49.   if(xc == 8){
  50.     xc = 0;
  51.     yc++;
  52.     if(yc == 8){
  53.       yc = 0;
  54.       //next z layer
  55.         digitalWrite(zLayer + 2, LOW);
  56.         zLayer++;
  57.         if(zLayer >= 8){
  58.           zLayer = 0;
  59.         }
  60.         digitalWrite(zLayer + 2, HIGH);
  61.     }
  62.   }
  63.   bitSet(pinVals[yc], xc);
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement