#define GND0 16
#define SW1 17
void setup() {
for(int i = 2; i < 9; i++) {
pinMode(i, OUTPUT); // GP2 -> GP8
}
pinMode(GND0, OUTPUT); // GND
pinMode(SW1, INPUT); // SW1
}
bool segmentPattern[][7] = {
// a, b, c, d, e, f, g
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1}, // 9
{1, 1, 1, 0, 1, 1, 1}, // A -> 10
{0, 0, 1, 1, 1, 1, 1}, // B -> 11
{1, 0, 0, 1, 1, 1, 0}, // C -> 12
{0, 1, 1, 1, 1, 0, 1}, // D -> 13
{1, 0, 0, 1, 1, 1, 1}, // E -> 14
{1, 0, 0, 0, 1, 1, 1}, // F -> 15
{0, 0, 0, 0, 0, 0, 0}, // NONE -> 16
};
void segmentActive(int s) {
// // segmentPattern[10][0 -> 6]
// digitalWrite(2, segmentPattern[s][0]);
// digitalWrite(3, segmentPattern[s][1]);
// digitalWrite(4, segmentPattern[s][2]);
// digitalWrite(5, segmentPattern[s][3]);
// digitalWrite(6, segmentPattern[s][4]);
// digitalWrite(7, segmentPattern[s][5]);
// digitalWrite(8, segmentPattern[s][6]);
for(int index = 0; index < 7; index++) {
digitalWrite(index + 2, segmentPattern[s][index]);
}
digitalWrite(GND0, LOW);
}
bool sw_stat;
bool sw_pressOut = true;
bool mode = 0;
void loop() {
sw_stat = digitalRead(SW1);
if(sw_stat == 1) {
if(sw_pressOut == 1) {
mode = !mode;
sw_pressOut = 0;
}
} else {
sw_pressOut = 1;
}
if(mode == 1) {
segmentActive(10); // -> A
} else {
segmentActive(16); // NONE
}
delay(10);
}
// if((mode == 0) && (sw_pressOut == 1)) {
// mode = 1;
// sw_pressOut = 0;
// }
// if((mode == 1) && (sw_pressOut == 1)) {
// mode = 0;
// sw_pressOut = 0;
// }