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 float photosensor_voltage = 0;
23 void writeDigit(char d, char val, bool dec) {
57 for (int i = 0; i < 7; ++i) {
59 digitalWrite(segments[i], HIGH);
61 digitalWrite(segments[i], LOW);
65 digitalWrite(segments[7], HIGH);
67 digitalWrite(digits[d], LOW);
69 digitalWrite(digits[d], HIGH);
70 digitalWrite(segments[7], LOW);
73 void showNumber(float number) {
75 writeDigit(0, (n/1000U) % 10, false);
76 writeDigit(1, (n/100U) % 10, false);
77 writeDigit(2, (n/10U) % 10, false);
78 writeDigit(3, n % 10, false);
82 // put your setup code here, to run once:
85 for (int i = 0; i < 4; ++i) {
86 pinMode(digits[i], OUTPUT);
87 digitalWrite(digits[i], HIGH);
89 for (int i = 0; i < 7; ++i) {
90 pinMode(segments[i], OUTPUT);
91 digitalWrite(segments[i], LOW);
96 if (timer.hasPassed(100)) {
98 photosensor_voltage = readMinVoltage(A5);
100 showNumber(photosensor_voltage);
104 float readMinVoltage(int pin) {
105 float minvolts = 5000;
107 for (int i = 0; i < 100; ++i) {
108 volts = analogRead(A7) * (4.8/1.023);
109 if (volts < minvolts) {