Advertisement
duaron

Arduino Project 001 7 segment display 4 digits

Oct 29th, 2014
5,658
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.36 KB | None | 0 0
  1. //arduino 4 digit 7 segment project
  2.  
  3. #define DIGIT_ON  HIGH
  4. #define DIGIT_OFF  LOW
  5.  
  6. int time = 1;
  7.  
  8. int x=100;
  9.  
  10. int a = 1;
  11. int b = 2;
  12. int c = 3;
  13. int d = 4;
  14. int e = 5;
  15. int f = 6;
  16. int g = 7;
  17. //segments
  18. char seg[]= {a,b,c,d,e,f,g};
  19. //numbers and others
  20. int one[] = {0,0,1,1,0,0,0};
  21. int two[] = {1,1,0,1,1,0,1};
  22. int three[] = {0,1,1,1,1,0,1};
  23. int four[] = {0,0,1,1,0,1,1};
  24. int five[] = {0,1,1,0,1,1,1};
  25. int six[] = {1,1,1,0,1,1,1};
  26. int seven[] = {0,0,1,1,1,0,0};
  27. int eight[] = {1,1,1,1,1,1,1};
  28. int nine[] = {0,0,1,1,1,1,1};
  29. int zero[] = {1,1,1,1,1,1,0};
  30.  
  31. int hifen[] = {0,0,0,0,0,0,1};
  32. int o[] = {1,1,1,0,0,0,1};
  33. int eye[] = {1,1,1,1,1,0,0};
  34.  
  35. int t;
  36.  
  37. void setup(){
  38.  pinMode(13, OUTPUT);// 4 digit
  39.  pinMode(12, OUTPUT);// 3 digit
  40.  pinMode(11, OUTPUT);// 2 digit
  41.  pinMode(10, OUTPUT);// 1 digit
  42.  
  43.  pinMode(g, OUTPUT);
  44.  pinMode(f, OUTPUT);
  45.  pinMode(e, OUTPUT);
  46.  pinMode(d, OUTPUT);
  47.  pinMode(c, OUTPUT);
  48.  pinMode(b, OUTPUT);
  49.  pinMode(a, OUTPUT);
  50. }
  51.  
  52. void loop(){
  53.   //counter
  54.   /*
  55.   for(int i=0; i<10; i++){
  56.     for(int j=0; j<10; j++){
  57.       for(int k=0; k<10; k++){
  58.         for(int l=0; l<10; l++){
  59.           t=120;
  60.           while(t!=0){
  61.             printNumber(i,3);
  62.             delay(time);
  63.             printNumber(j,2);
  64.             delay(time);
  65.             printNumber(k,1);
  66.             delay(time);
  67.             printNumber(l,0);
  68.             delay(time);
  69.             t--;  
  70.           }
  71.         }
  72.       }
  73.     }  
  74.   }*/
  75.  
  76.  
  77.   //loop
  78.   for(int i =0 ; i<8 ; i++){
  79.      lightNumber(o);
  80.      digitalWrite((10),LOW);
  81.      delay(200);
  82.      lightNumber(hifen);
  83.      digitalWrite((11),LOW);
  84.      delay(200);
  85.      lightNumber(hifen);
  86.      digitalWrite((12),LOW);
  87.      delay(200);
  88.      lightNumber(o);
  89.      digitalWrite((13),LOW);
  90.      delay(200);
  91.      lightNumber(hifen);
  92.      digitalWrite((12),LOW);
  93.      delay(200);
  94.      lightNumber(hifen);
  95.      digitalWrite((11),LOW);
  96.      delay(200);
  97.  
  98.   }
  99. }
  100.  
  101. void printNumber(int n, int index){
  102.   clearLeds();
  103.  
  104.   switch (n){
  105.     case 1:
  106.       lightNumber(one);
  107.       digitalWrite((10+index),LOW);
  108.       break;
  109.     case 2:
  110.       lightNumber(two);
  111.       digitalWrite((10+index),LOW);
  112.       break;
  113.     case 3:
  114.       lightNumber(three);
  115.       digitalWrite((10+index),LOW);
  116.       break;  
  117.     case 4:
  118.       lightNumber(four);
  119.       digitalWrite((10+index),LOW);
  120.       break;
  121.     case 5:
  122.       lightNumber(five);
  123.       digitalWrite((10+index),LOW);
  124.       break;
  125.     case 6:
  126.       lightNumber(six);
  127.       digitalWrite((10+index),LOW);
  128.       break;
  129.     case 7:
  130.       lightNumber(seven);
  131.       digitalWrite((10+index),LOW);
  132.       break;  
  133.     case 8:
  134.       lightNumber(eight);
  135.       digitalWrite((10+index),LOW);
  136.       break;
  137.     case 9:
  138.       lightNumber(nine);
  139.       digitalWrite((10+index),LOW);
  140.       break;
  141.     case 0:
  142.       lightNumber(zero);
  143.       digitalWrite((10+index),LOW);
  144.       break;
  145.     case 99:
  146.       int test[] = {1,1,0,1,1,0,1};  
  147.       lightNumber(test);
  148.       digitalWrite((10+index),LOW);
  149.       break;  
  150.   }
  151. }
  152.  
  153. void lightNumber(int c[]){
  154.   clearLeds();
  155.   for(int i=0; i<7; i++){
  156.     if(c[i]==1){
  157.       digitalWrite(seg[i], HIGH);
  158.     }
  159.   }
  160. }
  161.  
  162.  
  163.  
  164. void clearLeds(){
  165.   for(int i=0; i<7; i++){
  166.     digitalWrite(seg[i], LOW);
  167.   }
  168.   digitalWrite(13, HIGH);
  169.   digitalWrite(12, HIGH);
  170.   digitalWrite(11, HIGH);
  171.   digitalWrite(10, HIGH);
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement