60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
#include <Arduino.h>
|
|
#include "segman.hh"
|
|
#include "ParallelTask.hh"
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
|
|
pinMode(PIN_D1, OUTPUT);
|
|
pinMode(PIN_D2, OUTPUT);
|
|
pinMode(PIN_D3, OUTPUT);
|
|
pinMode(PIN_D4, OUTPUT);
|
|
|
|
pinMode(PIN_SA, OUTPUT);
|
|
pinMode(PIN_SB, OUTPUT);
|
|
pinMode(PIN_SC, OUTPUT);
|
|
pinMode(PIN_SD, OUTPUT);
|
|
pinMode(PIN_SE, OUTPUT);
|
|
pinMode(PIN_SF, OUTPUT);
|
|
pinMode(PIN_SG, OUTPUT);
|
|
|
|
digitalWrite(PIN_D1, HIGH);
|
|
digitalWrite(PIN_D2, HIGH);
|
|
digitalWrite(PIN_D3, HIGH);
|
|
digitalWrite(PIN_D4, HIGH);
|
|
|
|
// digitalWrite(PIN_SA, HIGH);
|
|
}
|
|
|
|
int displayedValue = 0;
|
|
void displayValue() {
|
|
int temp = displayedValue;
|
|
|
|
for (int i = 0; i < 3; ++i) {
|
|
int digit = temp % 10;
|
|
|
|
writeDigit(3 - i, digit);
|
|
|
|
temp /= 10;
|
|
}
|
|
}
|
|
|
|
void measureLight() {
|
|
int value = analogRead(PIN_LDR);asdfasdf
|
|
displayedValue = 100 - (int)(value / 10);
|
|
}
|
|
|
|
unsigned long lastMillis = 0;
|
|
const int minDelta = 10;
|
|
|
|
void loop() {
|
|
if (millis() - lastMillis >= minDelta) {
|
|
measureLight();
|
|
lastMillis = millis();
|
|
}
|
|
|
|
displayValue();
|
|
}
|