Advertisement
Guest User

30x30 panels

a guest
Apr 27th, 2022
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.29 KB | None | 0 0
  1.  
  2. int CLK = 8;
  3. int OE = 9;
  4. int LAT = 10;
  5.  
  6. int A = A0;
  7. int B = A1;
  8. int C = A2;
  9. //int D = A3;
  10.  
  11. int r1 = 2;
  12. int g1 = 3;
  13. int b1 = 4;
  14.  
  15. int r2 = 5;
  16. int g2 = 6;
  17. int b2 = 7;
  18.  
  19. bool state = false;
  20.  
  21. unsigned long tt = 0;
  22. unsigned long cc = 0;
  23.  
  24.  
  25. void setup() {
  26.  
  27.   Serial.begin(115200);
  28.  
  29.   pinMode(r1, OUTPUT);
  30.   pinMode(g1, OUTPUT);
  31.   pinMode(b1, OUTPUT);
  32.  
  33.   pinMode(r2, OUTPUT);
  34.   pinMode(g2, OUTPUT);
  35.   pinMode(b2, OUTPUT);
  36.  
  37.   pinMode(A, OUTPUT);
  38.   pinMode(B, OUTPUT);
  39.   pinMode(C, OUTPUT);
  40.   //pinMode(D, OUTPUT);
  41.  
  42.   pinMode(CLK, OUTPUT);
  43.   pinMode(OE, OUTPUT);
  44.   pinMode(LAT, OUTPUT);
  45.  
  46.   digitalWrite(r1, HIGH);
  47.   digitalWrite(g1, HIGH);
  48.   digitalWrite(b1, HIGH);
  49.  
  50.    digitalWrite(r2, HIGH);
  51.    digitalWrite(g2, HIGH);
  52.    digitalWrite(b2, HIGH);
  53.  
  54.   digitalWrite(OE, HIGH);
  55.   digitalWrite(LAT, HIGH);
  56.   //digitalWrite(CLK, HIGH);
  57.  
  58.   digitalWrite(A, LOW);
  59.   digitalWrite(B, LOW);
  60.   digitalWrite(C, LOW);
  61.   delay(1000);
  62.  
  63.   //  digitalWrite(A, HIGH);
  64.   //  digitalWrite(B, HIGH);
  65.   //  digitalWrite(C, HIGH);
  66.   //  delay(500);
  67.  
  68. }
  69.  
  70. void loop() {
  71.  
  72.  
  73.   // Turn off display
  74.    digitalWrite(OE, HIGH);
  75.  
  76.   for ( int i = 0; i < 5 ; i++ ) {
  77.  
  78.     //  digitalWrite ( D, i & 8 ) ;
  79.     digitalWrite ( C, i & 4 ) ;
  80.     digitalWrite ( B, i & 2 ) ;
  81.     digitalWrite ( A, i & 1 ) ;
  82.  
  83.      for (int j = 0; j < 90; j++) {
  84.  
  85.     switch ( i ) {
  86.       case 0 :
  87.           digitalWrite(r1, HIGH);
  88.           digitalWrite(g1, LOW);
  89.           digitalWrite(b1, HIGH);
  90.  
  91.           digitalWrite(r2, HIGH);
  92.           digitalWrite(g2, LOW);
  93.           digitalWrite(b2, HIGH);
  94.           break;
  95.  
  96.       case 1:
  97.           digitalWrite(r1, HIGH);
  98.           digitalWrite(g1, LOW);
  99.           digitalWrite(b1, HIGH);
  100.  
  101.           digitalWrite(r2, HIGH);
  102.           digitalWrite(g2, LOW);
  103.           digitalWrite(b2, HIGH);
  104.           break;
  105.  
  106.       case 2:
  107.           digitalWrite(r1, HIGH);
  108.           digitalWrite(g1, LOW);
  109.           digitalWrite(b1, HIGH);
  110.  
  111.           digitalWrite(r2, HIGH);
  112.           digitalWrite(g2, LOW);
  113.           digitalWrite(b2, HIGH);    
  114.           break;
  115.  
  116.       case 3:
  117.           digitalWrite(r1, HIGH);
  118.           digitalWrite(g1, LOW);
  119.           digitalWrite(b1, HIGH);
  120.  
  121.           digitalWrite(r2, HIGH);
  122.           digitalWrite(g2, LOW);
  123.           digitalWrite(b2, HIGH);
  124.           break;
  125.  
  126.       case 4:
  127.           digitalWrite(r1, HIGH);
  128.           digitalWrite(g1, LOW);
  129.           digitalWrite(b1, HIGH);
  130.  
  131.           digitalWrite(r2, HIGH);
  132.           digitalWrite(g2, LOW);
  133.           digitalWrite(b2, HIGH);
  134.           break;
  135.  
  136.       default:
  137.         break;
  138.     }
  139.  
  140.     digitalWrite(CLK, state);
  141.     delayMicroseconds(10);
  142.     state = !state;
  143.    } // end of push data for loop
  144.  
  145.    // After each addr, unlatch
  146.     digitalWrite(LAT, HIGH);
  147.     delayMicroseconds(20);
  148.     digitalWrite(LAT, LOW);
  149.     delayMicroseconds(20);
  150.  
  151.   } // end of addr for loop
  152.  
  153.    // After entire screen is drawn, turn on display ( OE LOW )
  154.     digitalWrite(OE, LOW);
  155.     delay(1000);
  156.  
  157.    
  158.  
  159.   if ( millis() - tt  > 5000 ) {
  160.     // blank the screen
  161.     Serial.println("Clear Screen");
  162.     digitalWrite(OE, HIGH);
  163.     delay(1000);
  164.     digitalWrite ( C, HIGH );
  165.     digitalWrite ( B, HIGH );
  166.     digitalWrite ( A, HIGH );
  167.     delay(1000);
  168.     tt = millis();
  169.   }
  170.  
  171.  
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement