esercizio_05_temperatura_reset.ino
#define LEDPIN 13
#define APIN 10
#define BPIN 9
#define CPIN 6
#define DPIN 5
#define EPIN 4
#define FPIN 11
#define GPIN 12
#define DPPIN 7
#define S1PIN 8
#define S2PIN 3
#define S3PIN 2
#define LUCE 1
#define TEMP 0
#define NUMSEGS 8
char segments [] = {
APIN,
BPIN,
CPIN,
DPIN,
EPIN,
FPIN,
GPIN,
DPPIN
};
boolean cifre [16][7] = {
{true, true, true, true, true, true, false }, {false, true, true, false, false, false, false }, {true, true, false, true, true, false, true }, {true, true, true, true, false, false, true }, {false, true, true, false, false, true, true }, {true, false, true, true, false, true, true }, {true, false, true, true, true, true, true }, {true, true, true, false, false, false, false }, {true, true, true, true, true, true, true }, {true, true, true, true, false, true, true }, {true, true, true, false, true, true, true }, {false, false, true, true, true, true, true }, {true, false, false, true, true, true, false }, {false, true, true, true, true, false, true }, {true, false, false, true, true, true, true }, {true, false, false, false, true, true, true }, };
void setup () {
int i;
Serial.begin (9600);
for (i = 0; i < NUMSEGS; i++) {
pinMode(segments [i], OUTPUT); digitalWrite(segments [i], HIGH); }
}
void digit (int n) {
int i;
n = n % 16; for (i = 0; i < 7; i++) {
digitalWrite(segments [i], (cifre[n][i]) ? LOW : HIGH); }
}
int preset = 504;
void loop () {
int i;
i = analogRead(TEMP);
if (!digitalRead(S2PIN)) { preset = i - 8;
}
if (i < preset) {
digit (0);
} else if (i > preset+15) {
digit (15);
} else {
digit (i - preset); }
Serial.print ("Valore di luce: ");
Serial.println (i);
delay (500);
}