1 #include <LightChrono.h>
4 const int digits[] = {9, 10, 11, 12};
5 const int segments[] = {2, 8, 4, 5, 6, 7, 3};
7 const bool one[7] = {false, true, true, false, false, false, false};
8 const bool two[7] = {true, true, false, true, true, false, true};
9 const bool three[7] = {true, true, true, true, false, false, true};
10 const bool four[7] = {false, true, true, false, false, true, true};
11 const bool five[7] = {true, false, true, true, false, true, true};
12 const bool six[7] = {true, false, true, true, true, true, true};
13 const bool seven[7] = {true, true, true, false, false, false, false};
14 const bool eight[7] = {true, true, true, true, true, true, true};
15 const bool nine[7] = {true, true, true, true, false, true, true};
16 const bool zero[7] = {true, true, true, true, true, true, false};
20 void writeDigit(char d, char val, bool dec) {
54 for (int i = 0; i < 7; ++i) {
56 digitalWrite(segments[i], HIGH);
58 digitalWrite(segments[i], LOW);
62 digitalWrite(segments[7], HIGH);
64 digitalWrite(digits[d], LOW);
66 digitalWrite(digits[d], HIGH);
67 digitalWrite(segments[7], LOW);
70 void showNumber(float number) {
72 writeDigit(0, (n/1000U) % 10, false);
73 writeDigit(1, (n/100U) % 10, false);
74 writeDigit(2, (n/10U) % 10, false);
75 writeDigit(3, n % 10, false);
79 for (int i = 0; i < 4; ++i) {
80 pinMode(digits[i], OUTPUT);
81 digitalWrite(digits[i], HIGH);
83 for (int i = 0; i < 7; ++i) {
84 pinMode(segments[i], OUTPUT);
85 digitalWrite(segments[i], LOW);
91 showNumber(timer.elapsed()/1000);