sudoaptinstallname

Shift Register Cluster - 24 LED Array

Oct 17th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const int SER = 8; // Serial Output to Shift Register
  2. const int LATCH = 9; // Shift Register Latch Pin
  3. const int CLK = 10; // Shift Register Clock Pin
  4.  
  5. int seq1[]={1,2,4,8,16,32,64,128,64,32,16,8,4,2,1,0};
  6.  
  7. int seq2[]={1,3,7,15,31,63,127,255,127,63,31,15,7,3,1,0};
  8.  
  9. int seq3[]={24,36,66,129,66,36,24,0};
  10.  
  11. int randy;
  12.  
  13. const int x = 500;
  14.  
  15. void setup() {
  16.   // put your setup code here, to run once:
  17.  
  18. pinMode(SER, OUTPUT);
  19. pinMode(LATCH, OUTPUT);
  20. pinMode(CLK, OUTPUT);
  21. digitalWrite(LATCH, LOW);
  22. shiftOut(SER, CLK, MSBFIRST, B11111111);
  23. shiftOut(SER, CLK, MSBFIRST, B11111111);
  24. shiftOut(SER, CLK, MSBFIRST, B11111111);
  25. digitalWrite(LATCH,HIGH);
  26.  
  27.  
  28. }
  29. void blinking(){
  30. digitalWrite(LATCH, LOW);
  31. shiftOut(SER, CLK, MSBFIRST, B10101010);
  32. digitalWrite(LATCH,HIGH);
  33. delay(x);
  34.  
  35.  
  36. digitalWrite(LATCH, LOW);
  37. shiftOut(SER, CLK, MSBFIRST, B01010101);
  38. digitalWrite(LATCH,HIGH);
  39. delay(x);
  40.  
  41. }
  42. void rider(){
  43. for(int i=0; i<16; i++)
  44. {
  45. digitalWrite(LATCH, LOW);
  46. shiftOut(SER, CLK, MSBFIRST, seq1[i]);
  47. digitalWrite(LATCH,HIGH);
  48. delay(x);
  49. }
  50. }
  51. void bar(){
  52.  
  53. for(int i=0; i<16; i++)
  54. {
  55. digitalWrite(LATCH, LOW);
  56. shiftOut(SER, CLK, MSBFIRST, seq2[i]);
  57. digitalWrite(LATCH,HIGH);
  58. delay(x);
  59. }
  60. }
  61. void center(){
  62.   for(int i=0; i<16; i++)
  63. {
  64. digitalWrite(LATCH, LOW);
  65. shiftOut(SER, CLK, MSBFIRST, seq3[i]);
  66. digitalWrite(LATCH,HIGH);
  67. delay(x);
  68. }
  69. }
  70. void twos(){
  71. digitalWrite(LATCH, LOW);
  72. shiftOut(SER, CLK, MSBFIRST, B11000000);
  73. digitalWrite(LATCH,HIGH);
  74. delay(x);
  75.  
  76.  
  77. digitalWrite(LATCH, LOW);
  78. shiftOut(SER, CLK, MSBFIRST, B00110000);
  79. digitalWrite(LATCH,HIGH);
  80. delay(x);
  81.  
  82. digitalWrite(LATCH, LOW);
  83. shiftOut(SER, CLK, MSBFIRST, B00001100);
  84. digitalWrite(LATCH,HIGH);
  85. delay(x);
  86.  
  87. digitalWrite(LATCH, LOW);
  88. shiftOut(SER, CLK, MSBFIRST, B00000011);
  89. digitalWrite(LATCH,HIGH);
  90. delay(x);
  91.  
  92.  
  93. }
  94. void loop() {
  95.   // put your main code here, to run repeatedly:
  96. randy = random(1,6);
  97. switch (randy)
  98. {
  99.   case 1:
  100.   rider();
  101.   break;
  102.   case 2:
  103.   bar();
  104.   break;
  105.   case 3:
  106.   center();
  107.   break;
  108.   case 4:
  109.   blinking();
  110.   break;
  111.   case 5:
  112.   twos();
  113.   break;
  114. }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment