esempio_08_up_down.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;
for (i = 0; i < NUMSEGS; i++) {
pinMode(segments [i], OUTPUT); digitalWrite(segments [i], HIGH); }
pinMode(S1PIN, INPUT);
pinMode(S2PIN, INPUT);
pinMode(S3PIN, INPUT);
}
void digit (int n) {
int i;
n = n % 16; for (i = 0; i < 7; i++) {
digitalWrite(segments [i], (cifre[n][i]) ? LOW : HIGH); }
}
void loop () {
static unsigned int i = 0;
digit (i);
if (!digitalRead(S1PIN)) { delay(10); if (!digitalRead(S1PIN)) { i = (i + 1) % 16;
digit (i);
while (!digitalRead(S1PIN)); }
}
if (!digitalRead(S2PIN)) { delay(10); if (!digitalRead(S2PIN)) { i = 0;
digit (i);
while (!digitalRead(S2PIN)); }
}
if (!digitalRead(S3PIN)) { delay(10); if (!digitalRead(S3PIN)) { i = (i - 1) % 16;
digit (i);
while (!digitalRead(S3PIN)); }
}
}