Advertisement
Braulio777

3 Digit Arduino Counter

Nov 4th, 2013
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. //3 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 A2
  8. #define G 11
  9. // Pins driving common anodes
  10. #define CA1 12
  11. #define CA2 A3
  12. #define CA3 A2
  13. // Pins for A B C D E F G, in sequence
  14. const int segs[7] = {A4, 13, 10, 9, 8, A1, 11};
  15. // Segments that make each number
  16. const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000};
  17.  
  18.  
  19. void setup() {
  20.   pinMode(A4, OUTPUT);
  21.   pinMode(13, OUTPUT);
  22.   pinMode(10, OUTPUT);
  23.   pinMode(9, OUTPUT);
  24.   pinMode(8, OUTPUT);
  25.   pinMode(A1, OUTPUT);
  26.   pinMode(11, OUTPUT);
  27.   pinMode(12, OUTPUT);
  28.   pinMode(A3, OUTPUT);
  29.   pinMode(A2, OUTPUT);
  30. }
  31. void loop() {
  32.   for (int digit1=0; digit1 < 10; digit1++) {
  33.     for (int digit2=0; digit2 < 10; digit2++) {
  34.       for(int digit3=0; digit3 < 10; digit3++) {
  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.  
  44.       }
  45.     }
  46.   }
  47. }
  48. }
  49. void lightDigit1(byte number) {
  50.   digitalWrite(CA1, LOW);
  51.   digitalWrite(CA2, LOW);
  52.   digitalWrite(CA3, HIGH);
  53.   lightSegments(number);
  54. }
  55. void lightDigit2(byte number) {
  56.   digitalWrite(CA1, LOW);
  57.   digitalWrite(CA2, HIGH);
  58.   digitalWrite(CA3, LOW);
  59.   lightSegments(number);
  60. }
  61. void lightDigit3(byte number) {
  62.   digitalWrite(CA1, HIGH);
  63.   digitalWrite(CA2, LOW);
  64.   digitalWrite(CA3, LOW);
  65.   lightSegments(number);
  66. }
  67.  
  68. void lightSegments(byte number) {
  69.   for (int i = 0; i < 7; i++) {
  70.     int bit = bitRead(number, i);
  71.     digitalWrite(segs[i], bit);
  72.   }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement