Advertisement
Braulio777

2 Digit Arduino Counter

Nov 4th, 2013
1,406
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.41 KB | None | 0 0
  1. //2 Digit Arduino Counter
  2. #define A A4
  3. #define B 13
  4. #define C 10
  5. #define D 9
  6. #define E 8
  7. #define F A1
  8. #define G 11
  9. // Pins driving common anodes
  10. #define CA1 12
  11. #define CA2 A3
  12. // Pins for A B C D E F G, in sequence
  13. const int segs[7] = {A4, 13, 10, 9, 8, A1, 11};
  14. // Segments that make each number
  15. const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000};
  16. void setup() {
  17.   pinMode(A4, OUTPUT);
  18.   pinMode(13, OUTPUT);
  19.   pinMode(10, OUTPUT);
  20.   pinMode(9, OUTPUT);
  21.   pinMode(8, OUTPUT);
  22.   pinMode(A1, OUTPUT);
  23.   pinMode(11, OUTPUT);
  24.   pinMode(12, OUTPUT);
  25.   pinMode(A3, OUTPUT);
  26. }
  27.  
  28. void loop() {
  29.   for (int digit1=0; digit1 < 10; digit1++) {
  30.     for (int digit2=0; digit2 < 10; digit2++) {
  31.       unsigned long startTime = millis();
  32.       for (unsigned long elapsed=0; elapsed < 600; elapsed = millis() - startTime) {
  33.         lightDigit1(numbers[digit1]);
  34.         delay(5);
  35.         lightDigit2(numbers[digit2]);
  36.         delay(5);
  37.       }
  38.     }
  39.   }
  40. }
  41.  
  42.  
  43. void lightDigit1(byte number) {
  44.   digitalWrite(CA1, LOW);
  45.   digitalWrite(CA2, HIGH);
  46.   lightSegments(number);
  47. }
  48. void lightDigit2(byte number) {
  49.   digitalWrite(CA1, HIGH);
  50.   digitalWrite(CA2, LOW);
  51.   lightSegments(number);
  52. }
  53. void lightSegments(byte number) {
  54.   for (int i = 0; i < 7; i++) {
  55.     int bit = bitRead(number, i);
  56.     digitalWrite(segs[i], bit);
  57.   }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement