Advertisement
Braulio777

5 Digit Arduino Counter

Nov 20th, 2013
1,240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1.  
  2.  //5 Digit Arduino Counter
  3. #define A A4
  4. #define B 13
  5. #define C 10
  6. #define D 9
  7. #define E 8
  8. #define F A1
  9. #define G 11
  10. // Pins driving common anodes
  11. #define CA1 12
  12. #define CA2 A3
  13. #define CA3 A2
  14. #define CA4 A5
  15. #define CA5 7
  16. // Pins for A B C D E F G, in sequence
  17. const int segs[7] = {A4, 13, 10, 9, 8, A1, 11};
  18. // Segments that make each number
  19. const byte numbers[10] = {0b1000000,0b1111001,0b0100100,0b0110000,0b0011001,0b0010010,0b0000010,0b1111000,0b0000000,0b0010000};
  20. void setup() {
  21.   pinMode(A4, OUTPUT);
  22.   pinMode(13, OUTPUT);
  23.   pinMode(10, OUTPUT);
  24.   pinMode(9, OUTPUT);
  25.   pinMode(8, OUTPUT);
  26.   pinMode(A1, OUTPUT);
  27.   pinMode(11, OUTPUT);
  28.   pinMode(12, OUTPUT);
  29.   pinMode(A3, OUTPUT);
  30.   pinMode(A2, OUTPUT);
  31.   pinMode(A5, OUTPUT);
  32.   pinMode(7, OUTPUT);
  33. }
  34. void loop() {
  35.   for (int digit1=0; digit1 < 10; digit1++) {
  36.     for (int digit2=0; digit2 < 10; digit2++) {
  37.       for (int digit3=0; digit3 < 10; digit3++) {
  38.         for (int digit4=0; digit4 < 10; digit4++) {
  39.           for (int digit5=0; digit5 < 10; digit5++) {
  40.       unsigned long startTime = millis();
  41.       for (unsigned long elapsed=0; elapsed < 600; elapsed = millis() - startTime) {
  42.        lightDigit1(numbers[digit1]);
  43.         delay(3);
  44.         lightDigit2(numbers[digit2]);
  45.         delay(3);
  46.         lightDigit3(numbers[digit3]);
  47.         delay(3);
  48.         lightDigit4(numbers[digit4]);
  49.         delay(3);
  50.         lightDigit5(numbers[digit5]);
  51.         delay(3);
  52.       }
  53.           }
  54.         }
  55.       }
  56.     }
  57.   }
  58. }
  59.   void lightDigit1(byte number) {  
  60.    digitalWrite(CA1, LOW);
  61.   digitalWrite(CA2, LOW);
  62.   digitalWrite(CA3, LOW);
  63.   digitalWrite(CA4, LOW);
  64.   digitalWrite(CA5, HIGH);
  65.   lightSegments(number);
  66.  }
  67. void lightDigit2(byte number) {
  68.   digitalWrite(CA1, LOW);
  69.   digitalWrite(CA2, LOW);
  70.   digitalWrite(CA3, LOW);
  71.   digitalWrite(CA4, HIGH);
  72.    digitalWrite(CA5, LOW);
  73.   lightSegments(number);
  74. }
  75. void lightDigit3(byte number) {
  76.   digitalWrite(CA1, LOW);
  77.   digitalWrite(CA2, LOW);
  78.   digitalWrite(CA3, HIGH);
  79.   digitalWrite(CA4, LOW);
  80.   digitalWrite(CA5, LOW);
  81.   lightSegments(number);
  82. }
  83. void lightDigit4(byte number){
  84.   digitalWrite(CA1, LOW);
  85.   digitalWrite(CA2, HIGH);
  86.   digitalWrite(CA3, LOW);
  87.   digitalWrite(CA4, LOW);
  88.   digitalWrite(CA5, LOW);
  89.   lightSegments(number);
  90. }
  91. void lightDigit5(byte number) {
  92.   digitalWrite(CA1, HIGH);
  93.   digitalWrite(CA2, LOW);
  94.   digitalWrite(CA3, LOW);
  95.   digitalWrite(CA4, LOW);
  96.    digitalWrite(CA5, LOW);
  97.   lightSegments(number);
  98.  
  99. }
  100. void lightSegments(byte number){
  101.   for (int i = 0;i < 7;i++) {
  102.     int bit = bitRead(number, i);
  103.     digitalWrite(segs[i], bit);
  104.   }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement