Advertisement
Braulio777

7 Digit LED Matrix Arduino Binary Counter

Aug 26th, 2018 (edited)
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.79 KB | None | 0 0
  1. //7 Digit Arduino LED Matrix Binary Counter
  2. //Counter 1-9999999
  3. /* I did this project by using 5x7 LED Matrix with its pins 7, 10, 3, 1 for common cathodes to Arduino pins 9, 6, 17(A3) & 19(A5) respectively while anodes matrix pins 12, 11, 2, 9, 4, 5 & 6 to Arduino pins 4, 5, 18(A4), 7, 16, 15 & 14 correspondingly. */
  4. #define A 9
  5. #define B 6
  6. #define C 17
  7. #define D 19
  8. // Pins driving common cathodes
  9. #define CC1 4
  10. #define CC2 5
  11. #define CC3 18
  12. #define CC4 7
  13. #define CC5 16
  14. #define CC6 15
  15. #define CC7 14
  16. // Pins for A, B, C, D in sequence
  17. const int segs[4] = {9, 6, 17, 19};
  18. // Segments that make each number
  19. const byte numbers[10] = {0b1111, 0b1110, 0b1101, 0b1100, 0b1011, 0b1010, 0b1001, 0b1000, 0b0111, 0b0110};
  20.  void setup() {
  21.   pinMode(9, OUTPUT);
  22.   pinMode(6, OUTPUT);
  23.   pinMode(17, OUTPUT);
  24.   pinMode(19, OUTPUT);
  25.   pinMode(4, OUTPUT);
  26.   pinMode(5, OUTPUT);
  27.   pinMode(18, OUTPUT);
  28.   pinMode(7, OUTPUT);
  29.   pinMode(16, OUTPUT);
  30.   pinMode(15, OUTPUT);
  31.   pinMode(14, OUTPUT);
  32. }
  33. void loop() {
  34.   for (int digit1=0; digit1 < 10; digit1++) {
  35.     for (int digit2=0; digit2 < 10; digit2++) {
  36.       for(int digit3=0; digit3 < 10; digit3++) {
  37.         for(int digit4=0; digit4 < 10; digit4++) {
  38.           for(int digit5=0; digit5 < 10; digit5++) {
  39.              for(int digit6=0; digit6 < 10; digit6++) {
  40.                for(int digit7=0; digit7 < 10; digit7++) {
  41.       unsigned long startTime = millis();
  42.       for (unsigned long elapsed=0; elapsed < 200; elapsed = millis() - startTime) {
  43.         lightDigit1(numbers[digit1]);
  44.         delay(5);
  45.         lightDigit2(numbers[digit2]);
  46.         delay(5);
  47.         lightDigit3(numbers[digit3]);
  48.         delay(5);
  49.         lightDigit4(numbers[digit4]);
  50.         delay(5);
  51.         lightDigit5(numbers[digit5]);
  52.         delay(5);
  53.         lightDigit6(numbers[digit6]);
  54.         delay(5);
  55.         lightDigit7(numbers[digit7]);
  56.         delay(5);  
  57.   }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }
  64. }
  65. }
  66.  
  67. void lightDigit1(byte number) {
  68.   digitalWrite(CC1, LOW);
  69.   digitalWrite(CC2, LOW);
  70.   digitalWrite(CC3, LOW);
  71.   digitalWrite(CC4, LOW);
  72.   digitalWrite(CC5, LOW);
  73.   digitalWrite(CC6, LOW);
  74.   digitalWrite(CC7, HIGH);
  75.   lightSegments(number);
  76. }
  77. void lightDigit2(byte number) {
  78.   digitalWrite(CC1, LOW);
  79.   digitalWrite(CC2, LOW);
  80.   digitalWrite(CC3, LOW);
  81.   digitalWrite(CC4, LOW);
  82.   digitalWrite(CC5, LOW);
  83.   digitalWrite(CC6, HIGH);
  84.   digitalWrite(CC7, LOW);
  85.   lightSegments(number);
  86. }
  87. void lightDigit3(byte number) {
  88.   digitalWrite(CC1, LOW);
  89.   digitalWrite(CC2, LOW);
  90.   digitalWrite(CC3, LOW);
  91.   digitalWrite(CC4, LOW);
  92.   digitalWrite(CC5, HIGH);
  93.   digitalWrite(CC6, LOW);
  94.   digitalWrite(CC7, LOW);
  95.   lightSegments(number);
  96. }
  97. void lightDigit4(byte number) {
  98.   digitalWrite(CC1, LOW);
  99.   digitalWrite(CC2, LOW);
  100.   digitalWrite(CC3, LOW);
  101.   digitalWrite(CC4, HIGH);
  102.   digitalWrite(CC5, LOW);
  103.   digitalWrite(CC6, LOW);
  104.   digitalWrite(CC7, LOW);
  105.   lightSegments(number);
  106. }
  107. void lightDigit5(byte number) {
  108.   digitalWrite(CC1, LOW);
  109.   digitalWrite(CC2, LOW);
  110.   digitalWrite(CC3, HIGH);
  111.   digitalWrite(CC4, LOW);
  112.   digitalWrite(CC5, LOW);
  113.   digitalWrite(CC6, LOW);
  114.   digitalWrite(CC7, LOW);
  115.   lightSegments(number);
  116. }
  117. void lightDigit6(byte number) {
  118.   digitalWrite(CC1, LOW);
  119.   digitalWrite(CC2, HIGH);
  120.   digitalWrite(CC3, LOW);
  121.   digitalWrite(CC4, LOW);
  122.   digitalWrite(CC5, LOW);
  123.   digitalWrite(CC6, LOW);
  124.   digitalWrite(CC7, LOW);
  125.   lightSegments(number);
  126. }
  127. void lightDigit7(byte number) {
  128.   digitalWrite(CC1, HIGH);
  129.   digitalWrite(CC2, LOW);
  130.   digitalWrite(CC3, LOW);
  131.   digitalWrite(CC4, LOW);
  132.   digitalWrite(CC5, LOW);
  133.   digitalWrite(CC6, LOW);
  134.   digitalWrite(CC7, LOW);
  135.   lightSegments(number);
  136. }
  137.  
  138. void lightSegments(byte number) {
  139.   for (int i = 0; i < 4; i++) {
  140.     int bit = bitRead(number, i);
  141.     digitalWrite(segs[i], bit);
  142.   }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement