Advertisement
Braulio777

3 Digit Arduino Binary Counter

Jun 26th, 2017
514
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. //3 Digit Arduino Binary Counter
  2. //Counter 1-999
  3. #define A 2
  4. #define B 3
  5. #define C 4
  6. #define D 5
  7. // Pins driving common anodes
  8. #define CA1 6
  9. #define CA2 7
  10. #define CA3 8
  11. // Pins for A, B, C, D in sequence
  12. const int segs[4] = {2, 3, 4, 5};
  13. // Segments that make each number
  14. const byte numbers[10] = {0b1111, 0b1110, 0B1101, 0b1100, 0b1011, 0b1010, 0b1001, 0b1000, 0b0111, 0b0110};
  15.  void setup() {
  16.   pinMode(2, OUTPUT);
  17.   pinMode(3, OUTPUT);
  18.   pinMode(4, OUTPUT);
  19.   pinMode(5, OUTPUT);
  20.   pinMode(6, OUTPUT);
  21.   pinMode(7, OUTPUT);
  22.   pinMode(8, OUTPUT);
  23. }
  24. void loop() {
  25.   for (int digit1=0; digit1 < 10; digit1++) {
  26.     for (int digit2=0; digit2 < 10; digit2++) {
  27.       for(int digit3=0; digit3 < 10; digit3++) {
  28.       unsigned long startTime = millis();
  29.       for (unsigned long elapsed=0; elapsed < 600; elapsed = millis() - startTime) {
  30.         lightDigit1(numbers[digit1]);
  31.         delay(5);
  32.         lightDigit2(numbers[digit2]);
  33.         delay(5);
  34.         lightDigit3(numbers[digit3]);
  35.         delay(5);
  36.  
  37.       }
  38.     }
  39.   }
  40. }
  41. }
  42. void lightDigit1(byte number) {
  43.   digitalWrite(CA1, LOW);
  44.   digitalWrite(CA2, LOW);
  45.   digitalWrite(CA3, HIGH);
  46.   lightSegments(number);
  47. }
  48. void lightDigit2(byte number) {
  49.   digitalWrite(CA1, LOW);
  50.   digitalWrite(CA2, HIGH);
  51.   digitalWrite(CA3, LOW);
  52.   lightSegments(number);
  53. }
  54. void lightDigit3(byte number) {
  55.   digitalWrite(CA1, HIGH);
  56.   digitalWrite(CA2, LOW);
  57.   digitalWrite(CA3, LOW);
  58.   lightSegments(number);
  59. }
  60.  
  61. void lightSegments(byte number) {
  62.   for (int i = 0; i < 4; i++) {
  63.     int bit = bitRead(number, i);
  64.     digitalWrite(segs[i], bit);
  65.   }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement