Advertisement
Braulio777

5 Digit Arduino Nano Binary Counter/ LED Matrix

Aug 24th, 2018
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.72 KB | None | 0 0
  1. //5 Digit Arduino Nano Binary Counter
  2. //Counter 1-99999
  3. /* I did this project by using 5x7 LED Matrix with its pins 1, 3, 10, 7, 8 for common cathodes to Arduino pins 8, 9, 6, 17(A3) & 19(A5) respectively while anodes matrix pins 9, 2, 11 & 12 to Arduino pins 7, 18(A4), 5 & 4 correspondingly. */
  4. #define A 7
  5. #define B 18
  6. #define C 5
  7. #define D 4
  8. // Pins driving common cathodes
  9. #define CC1 8
  10. #define CC2 9
  11. #define CC3 6
  12. #define CC4 17
  13. #define CC5 19
  14. // Pins for A, B, C, D in sequence
  15. const int segs[4] = {7, 18, 5, 4};
  16. // Segments that make each number
  17. const byte numbers[10] = {0b0000, 0b0001, 0b0010, 0b0011, 0b0100, 0b0101, 0b0110, 0b0111, 0b1000, 0b1001};
  18.  void setup() {
  19.   pinMode(7, OUTPUT);
  20.   pinMode(18, OUTPUT);
  21.   pinMode(5, OUTPUT);
  22.   pinMode(4, OUTPUT);
  23.   pinMode(8, OUTPUT);
  24.   pinMode(9, OUTPUT);
  25.   pinMode(6, OUTPUT);
  26.   pinMode(17, OUTPUT);
  27.   pinMode(19, OUTPUT);
  28. }
  29. void loop() {
  30.   for (int digit1=0; digit1 < 10; digit1++) {
  31.     for (int digit2=0; digit2 < 10; digit2++) {
  32.       for(int digit3=0; digit3 < 10; digit3++) {
  33.         for(int digit4=0; digit4 < 10; digit4++) {
  34.           for(int digit5=0; digit5 < 10; digit5++) {
  35.       unsigned long startTime = millis();
  36.       for (unsigned long elapsed=0; elapsed < 600; elapsed = millis() - startTime) {
  37.         lightDigit1(numbers[digit1]);
  38.         delay(5);
  39.         lightDigit2(numbers[digit2]);
  40.         delay(5);
  41.         lightDigit3(numbers[digit3]);
  42.         delay(5);
  43.         lightDigit4(numbers[digit4]);
  44.         delay(5);
  45.         lightDigit5(numbers[digit5]);
  46.         delay(5);
  47.       }
  48.       }
  49.     }
  50.   }
  51. }
  52. }
  53. }
  54. void lightDigit1(byte number) {
  55.   digitalWrite(CC1, HIGH);
  56.   digitalWrite(CC2, HIGH);
  57.   digitalWrite(CC3, HIGH);
  58.   digitalWrite(CC4, HIGH);
  59.   digitalWrite(CC5, LOW);
  60.   lightSegments(number);
  61. }
  62. void lightDigit2(byte number) {
  63.   digitalWrite(CC1, HIGH);
  64.   digitalWrite(CC2, HIGH);
  65.   digitalWrite(CC3, HIGH);
  66.   digitalWrite(CC4, LOW);
  67.   digitalWrite(CC5, HIGH);
  68.   lightSegments(number);
  69. }
  70. void lightDigit3(byte number) {
  71.   digitalWrite(CC1, HIGH);
  72.   digitalWrite(CC2, HIGH);
  73.   digitalWrite(CC3, LOW);
  74.   digitalWrite(CC4, HIGH);
  75.   digitalWrite(CC5, HIGH);
  76.   lightSegments(number);
  77. }
  78. void lightDigit4(byte number) {
  79.   digitalWrite(CC1, HIGH);
  80.   digitalWrite(CC2, LOW);
  81.   digitalWrite(CC3, HIGH);
  82.   digitalWrite(CC4, HIGH);
  83.   digitalWrite(CC5, HIGH);
  84.   lightSegments(number);
  85. }
  86. void lightDigit5(byte number) {
  87.   digitalWrite(CC1, LOW);
  88.   digitalWrite(CC2, HIGH);
  89.   digitalWrite(CC3, HIGH);
  90.   digitalWrite(CC4, HIGH);
  91.   digitalWrite(CC5, HIGH);
  92.   lightSegments(number);
  93. }
  94.  
  95.  
  96. void lightSegments(byte number) {
  97.   for (int i = 0; i < 4; i++) {
  98.     int bit = bitRead(number, i);
  99.     digitalWrite(segs[i], bit);
  100.   }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement